Commit 1509dc73 authored by mullers's avatar mullers
Browse files

ASN.1 files to be checked for TPMS (Tyre Pressure Monitoring System) DTS 101 556-2

parent 263bccef
Loading
Loading
Loading
Loading

TPMS/TPG/TPG_DRM.asn

0 → 100644
+45 −0
Original line number Diff line number Diff line

-- TPMS-TPG Message definitions
-- ASN.1 Start Definition

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

BEGIN

 
IMPORTS
StationID, ReferencePosition,
StationType, TimestampIts, VehicleType, VehicleSpeed 
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
};

TpgDRM ::= SEQUENCE {
header TpgDrmHeader,
management ManagementContainer,
situation SituationContainer,
location ReferencePosition
}

TpgDrmHeader ::= SEQUENCE {
protocol INTEGER(0..255),
originatorID StationID,
generationTime TimestampIts,
itsAID	IA5String(SIZE(1..32))
}

ManagementContainer ::= SEQUENCE {
vehicleType VehicleType,
costumercontract CostumerContract OPTIONAL
}
CostumerContract ::= IA5String(SIZE(1..32))

SituationContainer ::= SEQUENCE {
causeCode INTEGER(0..255),
vehicleSpeed VehicleSpeed
}

END

TPMS/TPG/TPG_SCM.asn

0 → 100644
+67 −0
Original line number Diff line number Diff line

-- TPMS-TPG Message : TPG Service Confirmation Message emitted by TPG station
-- ASN.1 Start Definition

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

BEGIN

IMPORTS
StationID, ReferencePosition,
StationType, SpeedLimit, TimestampIts, VehicleType, VehicleSpeed 
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
};

TpgSCM ::= SEQUENCE {
header TpgServiceHeader,
management TpgManagement,
location TpgLocation,
situation TpgSituation
}

TpgServiceHeader ::= SEQUENCE {
protocol INTEGER(0..255),
originatorID StationID,
generationTime TimestampIts,
itsAID	IA5String(SIZE(1..32))
}

ManagementContainer ::= SEQUENCE {
tpgStationID INTEGER(0..4294967295),
reservedTPG INTEGER(0..255)
}

TpgLongitude ::= SEQUENCE {
hemisphere ENUMERATED { east (0), west (1) },
degree INTEGER (0..1800000000) -- multiples of 0.1 microdegree
}

TpgLatitude ::= SEQUENCE {
hemisphere ENUMERATED { north (0), south (1) },
degree INTEGER (0..900000000) -- multiples of 0.1 microdegree
}

TpgElevation ::= INTEGER (-10000..16767215) -- multiples of 0.1 m

TpgLocation ::= SEQUENCE {
longitude TpgLongitude,
latidude TpgLatitude,
elevation TpgElevation
}

TpgSituation ::= SEQUENCE {
causeCode ENUMERATED {  -- Reservation Rejection Cause Code
reservationOK			(0),
noReservationService 	(1),
noTpgFree				(2),
..
}
pairingID INTEGER(0..9999),
reservationTimeLimit DURATION(hh:mm) 
}

END

TPMS/TPG/TPG_SNM.asn

0 → 100644
+67 −0
Original line number Diff line number Diff line

-- TPMS-TPG Message definitions
-- ASN.1 Start Definition

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

BEGIN

IMPORTS
StationID, ReferencePosition,
StationType, SpeedLimit, TimestampIts, VehicleType, VehicleSpeed 
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
};

IMPORTS
TpgLocation
FROM TPGSCM-Descriptions {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (101556-2) tpg (1) version (1)
};

TpgServiceNotification ::= SEQUENCE {
	header TpgSnmHeader,
	management ManagementContainer,
	tpgStation TpgSlist
}

TpgSnmHeader ::= SEQUENCE {
	protocol INTEGER(0..255),
	originatorID StationID,
	generationTime TimestampIts,
	itsAID	IA5String(SIZE(1..32))
}

ManagementContainer ::= SEQUENCE {
	totalNumberTpg INTEGER(0..255),
	currentNumberTpg INTEGER(0..7),
	relayCapableItsS ::= ENUMERATED {none	(0),ok		(1)}
}

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

TpgSContainer ::= SEQUENCE {
	tpgStationID StationID,
	tpgProviderID IA5String(SIZE(1..32)),
	tpgStationLocation TpgLocation,
	tpgAddress  TpgAddress,
	tpgTelephone IA5String(SIZE(1..32)),
	tpgAccessConditions ::= ENUMERATED {none (0),trucks only (1),cars only (2),..}
	digitalMapAccess SEQUENCE (SIZE(1..31)) OF Waypoint  
	openingDays BIT STRING {monday (0),thuesday (1),wednesday (2), thursday (3), friday (4), saturday (5), sunday (6)} 
	ipv6Address IA5String(SIZE(1..32)),
	numberTpgCars INTEGER(0..15),
	numberTpgTrucks INTEGER(0..15)
}

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

END

TPMS/TPG/TPG_SRM.asn

0 → 100644
+61 −0
Original line number Diff line number Diff line

-- TPMS-TPG Message definitions
-- ASN.1 Start Definition

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

BEGIN

IMPORTS
StationID, ReferencePosition,
StationType, SpeedLimit, TimestampIts, VehicleType, VehicleSpeed 
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
};

IMPORTS
StationID, ReferencePosition,
StationType, TimestampIts, VehicleType, VehicleSpeed 
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
};

TpgSRM ::= SEQUENCE {
header TpgSrmHeader,
management ManagementContainer,
situation SituationContainer,
location ReferencePosition,
reservation Reservation
}

TpgSrmHeader ::= SEQUENCE {
protocol INTEGER(0..255),
originatorID StationID,
generationTime TimestampIts,
itsAID	IA5String(SIZE(1..32))
}

ManagementContainer ::= SEQUENCE {
vehicleType VehicleType,
costumercontract CostumerContract OPTIONAL
}
CostumerContract ::= IA5String(SIZE(1..32))

SituationContainer ::= SEQUENCE {
causeCode INTEGER(0..255),
vehicleSpeed VehicleSpeed
}

Reservation ::= SEQUENCE {
causeCode INTEGER(0..255),
estArrivalTime TimestampIts,
pairingID INTEGER(0..9999)
}




END

TPMS/TPG/TPG_VDPM.asn

0 → 100644
+158 −0
Original line number Diff line number Diff line

-- TPMS-TPG Message definitions
-- ASN.1 Start Definition

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

BEGIN

IMPORTS
StationID, ReferencePosition,
StationType, SpeedLimit, TimestampIts, VehicleType, VehicleSpeed 
FROM ITS-Container {
itu-t (0) identified-organization (4) etsi (0) itsDomain (5) wg1 (1) ts (102637) denm (3) version2 (2)
};

TpgVDPM ::= SEQUENCE {
	header TpgVdpHeader,
	management ManagementContainer,
	placardTable PlacardTable,
	vehicleSpecific VehicleSpecific OPTIONAL
}

TpgVdpHeader ::= SEQUENCE {
	protocol INTEGER(0..255),
	originatorID StationID,
	generationTime TimestampIts,
	itsAID	IA5String(SIZE(1..32))
}

ManagementContainer ::= SEQUENCE {
	driverLanguage ENUMERATED {english (1) german (2), french (3), italian (4), spanish (5), ..}
	vehicleType VehicleType,
	tyreTempCondition ENUMERATED {pressure cold (0),pressure warm (1), not available (2), reserved (3)}
}

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

PlacardTable ::= SEQUENCE {
	numberTyreSet NumberTyreSet, 
	tyreSetlist SEQUENCE(SIZE(NumberTyreSet)) OF TyreSetVariant,
}
 
ASCII4 ::= ENUMERATED {*(0),+(1),,(2),-(3),.(4),/(5),0(6),1(7),2(8),3(9),4(10),5(11),6(12),7(13),8(14),9(15)}
ASCII5 ::= ENUMERATED {@(0),A(1),B(2),C(3),D(4),E(5),F(6),G(7),H(8),I(9),J(10),K(11),L(12),M(13),N(14),O(15),P(16),
						 Q(17),R(18),S(19),T(20),U(21),V(22),W(23),X(24),Y(25),Z(26),[(27),\(28),](29),^(30),_(31)}

AmountPressureVariant ::= INTEGER(1..15)
PressureVariant ::= SEQUENCE
{
	speedType ENUMERATED { notrelevant(0), speedslot1(1), speedslot2(2), speedslot3(3), reserved(4),reserved(5),reserved(6),reserved(7) }
	drivingType ENUMERATED {notrelevant(0), sport(1),eco(2), confort(3),reserved(4),reserved(5),reserved(6),reserved(7) }
	loadconfig ENUMERATED {notrelevant(0),partiallyload(1),fullyload(2),reserved(3) }
	placardPressureFront INTEGER(0..255), -- 5kPa of resolution 0 to 1275 kPa
	placardPressureRear INTEGER(0..255) 
}
	

TyreSetVariant :: SEQUENCE 
{
	variantNumber INTEGER(0..15),
	frontAxleDimension SEQUENCE {
		dimension SEQUENCE (SIZE 7) OF ASCII4, 
		loadIndex INTEGER(0..127),
		speedIndex ASCII5,
		reserved INTEGER(0..4095)
	}
	frontAxleType SEQUENCE {
		field1 ENUMERATED {standard (0), reserved (1), runflat (2), reserved (3)}
		field2 ENUMERATED {reserved (0), reserved (1), reserved (2), reserved (3)}
		field3 ENUMERATED {allseason (0), summer (1), winter (3), severewinter (4)}
		field4 ENUMERATED {normalLoad (0), extraLoad (1)}
		field5 ENUMERATED {default (0), reserved (1)}
	}
	rearAxleDimension SEQUENCE {
		dimension SEQUENCE (SIZE 7) OF ASCII4, 
		loadIndex INTEGER(0..127),
		speedIndex ASCII5,
		reserved INTEGER(0..4095)
	}
	rearAxleType SEQUENCE {
		field1 ENUMERATED {standard (0), reserved (1), runflat (2), reserved (3)}
		field2 ENUMERATED {reserved (0), reserved (1), reserved (2), reserved (3)}
		field3 ENUMERATED {allseason (0), summer (1), winter (3), severewinter (4)}
		field4 ENUMERATED {normalLoad (0), extraLoad (1)}
		field5 ENUMERATED {default (0), reserved (1)}
	}
	amountPressureVariant AmountPressureVariant,
	pressurelist SEQUENCE(SIZE(AmountPressureVariant)) OF PressureVariant
}
	
VehicleSpecific	::= SEQUENCE 
{
	axleConfiguration INTEGER(0..255),
	speedType ENUMERATED { notrelevant(0), speedslot1(1), speedslot2(2), speedslot3(3),...} (SIZE(1..8))
	drivingType ENUMERATED {notrelevant(0), sport(1),eco(2), confort(3),...} (SIZE(1..8))
	loadconfig ENUMERATED {notrelevant(0),partiallyload(1),fullyload(2),reserved(3) }
	content ContentVehicleData,
	wheelFrontLeft WheelData,
	wheelFrontRight WheelData,
	wheelRearLeft WheelData,
	wheelRearRight WheelData,
	wheelSpare WheelData,
}

ContentVehicleData ::= BIT STRING { 
	currentpressure (0), 
	tyresidewall (1), 
	tyretype (2), 
	currentAirtemperature (3),
	recommendedpressure (4),
	DOT (5),
	sensorstate (6),...
} (SIZE(1..16))

WheelData ::= SEQUENCE {
	currentPressure CurrentPressure,
	sideWallData SEQUENCE {
		dimension SEQUENCE (SIZE 7) OF ASCII4, 
		loadIndex INTEGER(0..127),
		speedIndex ASCII5,
		reserved INTEGER(0..4095)
	}
	currentAirTemp CurrentAirTemp,
	recommendedPressure INTEGER(0..255),
	dot SEQUENCE { 
		origine IA5String(1..8),	-- 
		week INTEGER(1..63),	-- week number in the year
		year INTEGER(0..99)		-- year since 2000
	}
	sensor state INTEGER(0..65535)
}

CurrentPressure ::= INTEGER {invalid (0),underflow (1), overflow(255)} (0..255) -- offset 100kPa resol 2.5kPa  P= 98 + CurrentPressure* 2,5kPa
CurrentAirTemp ::= INTEGER {
	invalid (0),
	underflow (1),
	overflow1 (240), -- >85
	overflow2 (241), -- >90
	overflow3 (242),
	overflow4 (243),
	overflow5 (244),
	overflow6 (245),
	overflow1 (246),
	overflow1 (247),
	overflow1 (248),
	overflow1 (249),
	overflow1 (250),
	overflow1 (251),
	overflow1 (252),
	overflow1 (253),
	overflow1 (254),
	overflow1 (255), -- >165
}

END
Loading