Commit 4247c175 authored by mullers's avatar mullers
Browse files

creation of new asn.1 files

parent 6d32bfaf
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line

-- TPMS-TPG Notification message definitions
-- ASN.1 Start Definition

TPG-Notification-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5)
wg1 (1) i2vApplications (101556) tpg (2) notification (0) version (1)}  
DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

IMPORTS
ItsPduHeader, StationID, ReferencePosition, TimestampIts 
FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cc (2) version (1) 
};

-- Root Message PDU: TpgNotificationPdu

TpgNotificationPdu ::= SEQUENCE {
	header	ItsPduHeader, 
	tpgnPOI	TpgNotificationPOIMessage
}

TpgNotificationPOIMessage ::= SEQUENCE {
	poiHeader	ItsPOIHeader, -- Specific POI Message Header
	tpgServiceNotification	TpgServiceNotification  -- TPG Service Notification Data Elements
}

ItsPOIHeader ::= SEQUENCE {
	poiType                 POIType, -- set to "TPG POI ID"
    	timeStamp               TimestampIts,
	relayCapable            BOOLEAN
}

POIType ::= INTEGER(0..65535)

-- TPG Service Notification Message
TpgServiceNotification ::= SEQUENCE {
	management ManagementContainer,
	tpgStation TpgSlist
}

ManagementContainer ::= SEQUENCE {
	totalNumberTpg INTEGER(0..255),
	currentNumberTpg INTEGER(0..7)
}

TpgSlist ::= SEQUENCE (SIZE(0..7)) OF TpgSContainer

TpgSContainer ::= SEQUENCE {
	tpgStationID StationID,
	tpgProviderID IA5String(SIZE(1..32)),
	tpgStationLocation ReferencePosition,
	tpgAddress  TpgAddress,
	tpgTelephone IA5String(SIZE(1..32)),
	tpgAccessConditions ENUMERATED {none (0),trucksOnly (1),carsOnly (2)},
	digitalMapAccess SEQUENCE (SIZE(1..31)) OF ReferencePosition, 
	openingDays BIT STRING {monday (0),tuesday (1),wednesday (2), thursday (3), friday (4), saturday (5), sunday (6)} (SIZE(7)),
	ipv6Address OCTET STRING (SIZE(16)),
	numberTpgCars INTEGER(0..15),
	numberTpgTrucks INTEGER(0..15)
}

TpgAddress ::= SEQUENCE {
	streetName IA5String(SIZE(1..32)),
	streetNumber IA5String(SIZE(1..4)),
	cityName IA5String(SIZE(1..16)),
	country IA5String(SIZE(1..16))
}


END
+198 −0
Original line number Diff line number Diff line

-- TPMS-TPG Transactions message definitions
-- ASN.1 Start Definition

TPG-Transactions-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5)
wg1 (1) i2vApplications (101556) tpg (2) transactions (1) version (1)}
DEFINITIONS AUTOMATIC TAGS ::= 

BEGIN

IMPORTS
ItsPduHeader, StationID, ReferencePosition, StationType, VehicleSpeed, Direction, TimestampIts 
FROM ITS-Container {
 itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102894) cc (2) version (1) 
};


-- Root Message PDU: TpgTransactionsPdu

TpgTransactionsPdu ::= SEQUENCE {
	header		ItsPduHeader, 
	tpgTransaction	TpgTransaction
}

TpgTransaction ::= CHOICE {
	tpgDRM	TpgDRM,
	tpgSRM	TpgSRM,
	tpgSCM	TpgSCM,
	tpgVDRM TpgVDRM,
	tpgVDPM TpgVDPM
}


TpgDRM ::= SEQUENCE {
 management TpgDRM-Management,
 situation TpgDRM-Situation,
 location ReferencePosition
}

TpgDRM-Management ::= SEQUENCE {
 vehicleType StationType,
 costumercontract CustomerContract OPTIONAL
}

TpgDRM-Situation ::= SEQUENCE {
 vehicleSpeed VehicleSpeed
}


TpgSRM ::= SEQUENCE {
 management TpgSRM-Management,
 situation TpgSRM-Situation,
 location ReferencePosition,
 srm-Container SRM-Container
}

TpgSRM-Management ::= SEQUENCE {
 stationType StationType,
 costumercontract CustomerContract OPTIONAL
}

TpgSRM-Situation ::= SEQUENCE {
 vehicleSpeed VehicleSpeed OPTIONAL,
 vehicleHeading Direction OPTIONAL
}

SRM-Container ::= SEQUENCE {
 estArrivalTime TimestampIts,
 proposedPairingID PairingID OPTIONAL
}


TpgSCM ::= SEQUENCE {
 management TpgSCM-Management,
 location ReferencePosition,
 scm-Container SCM-Container
}

TpgSCM-Management ::= SEQUENCE {
 tpgStationID StationID,
 reservedTPG INTEGER(0..255)
}

SCM-Container ::= SEQUENCE {
 reservationStatus ReservationStatus,
 pairingID PairingID,
 reservationTimeLimit TimestampIts
}


TpgVDRM ::= NULL


TpgVDPM ::= SEQUENCE {
	management TpgVDPM-Management,
	placardTable PlacardTable,
	frontLeftTyreData TyreData,
	frontRightTyreData TyreData,
	rearLeftTyreData TyreData,
	rearRightTyreData TyreData,
	spareTyreData TyreData
}

TpgVDPM-Management ::= SEQUENCE {
	driverLanguage DriverLanguage, 
	vehicleType StationType,
	tyreTempCondition TyreTempCondition,
	frontAxleDimension TyreDimension,
	frontAxleType TyreType,
	rearAxleDimension TyreDimension,
	rearAxleType TyreType
}

TyreDimension ::= SEQUENCE {
		aspectRatio INTEGER(0..255),
		rimDiameter INTEGER(0..255),
		loadIndex INTEGER(0..4095),
		speedIndex INTEGER(0..31)
	}

TyreType ::= SEQUENCE {
		tyreStatus TyreStatus,
		tyreSeasonality TyreSeasonality,
		tyreLoad TyreLoad
	}	
	
TyreStatus ::= ENUMERATED { standard (0), runningFlat (1) }

TyreSeasonality ::= ENUMERATED { allSeason (0), summer (1), winter (2), severeWinter (3) }

TyreLoad ::= ENUMERATED {normalLoad (0), extraLoad (1)}
	

PlacardTable ::= SEQUENCE {
	numberTyreSet	NumberTyreSet, 
	tyreSetlist	SEQUENCE(SIZE(0..15)) OF TyreSetVariant
}

NumberTyreSet ::= INTEGER(0..15)   -- 0: No specific tyres 1: One specific tyres

TyreSetVariant ::= SEQUENCE 
{
	variantID NumberTyreSet,
	loadConfiguration LoadConfiguration,
	drivingType DrivingType,
	speedType SpeedType,
	frontAxlePressure AxlePlacardPressure,
	rearAxlePressure AxlePlacardPressure
}

LoadConfiguration ::= ENUMERATED {notRelevant(0), partiallyLoaded(1), fullyLoaded(2) }

DrivingType ::= ENUMERATED {notRelevant(0), sport(1), eco(2), comfort(3) }

SpeedType ::= ENUMERATED { notRelevant(0), speedSlot1(1), speedSlot2(2), speedSlot3(3) }

AxlePlacardPressure ::= INTEGER { atmospheric (0), overPressure5kPa (1) } (0..4095)

TyreData ::= SEQUENCE 
{
	tyrePressure TyrePressure,
	tyreDimension TyreDimension,
	insideAirTemperature AirTemperature,
	recommendedTyrePressure AxlePlacardPressure,
	dot DOT OPTIONAL,
	sensorState INTEGER(0..65535) OPTIONAL,
	energyStatus OCTET STRING (SIZE(8)) OPTIONAL	
}

TyrePressure ::= INTEGER { invalid (0), overPressureLessThan100kPa (1), overPressure100kPa (2), overPressure105kPa (3), inflation (4094), overflow(4095)  } (0..4095)

DriverLanguage ::= INTEGER {english (0), german (1), french (2), italian (3), spanish (4) } (0..15)

TyreTempCondition ::= ENUMERATED {pressure-cold (0),pressure-warm (1), not-available (2) }

AirTemperature ::= INTEGER { invalid (0), lessThanMinus50Celsius(1), minus50Celsius(2), minus49Celsius(3), zeroCelsius(52), overflow(255) } (0..255)

DOT ::= SEQUENCE { 
		origin IA5String (SIZE(1..8)),
		week INTEGER(1..52),	-- week number in a year
		year INTEGER(0..99)	-- year since 2000
	}

	
CustomerContract ::= IA5String(SIZE(1..32))

ReservationStatus ::= ENUMERATED { 
 reservationOK (0),
 noReservationService (1),
 noTpgAvailable (2),
 ...
}

PairingID ::= INTEGER(0..9999)


END