ERROR DESCRIPTION
There seems to be an error in the document
BS EN 15722:2011 "Intelligent transport systems —eSafety — eCall minimum set of data (MSD)"
on page 18.
The example MSD message is decoded wrongly: the Decoding in the document mentions value
"<isowmi>WMI</isowmi>", while it shall
be "<isowmi>WM9</isowmi>".
We have found the error while working on development of our Encoder/Decoder
for eCall MSD Messages.
You can check the correct Decoding using our online tool: http://www.3gpp-message-analyser.com/decoder/msd.htm
ANALYSIS of ERROR
(1) ORIGINAL example MSD message from page 18.
ASN.1 PER unaligned example MSD message
=
"0x015C0681D54970D65C3597CA0420C41464583ADE68AC52E9BB8413F149C07414FB414F6010180813E82181823230"
"0x015C0681D54970D65C3597CA0420C41464583ADE68AC52E9BB8413F149C07414FB414F6010180813E82181823230"
(2) WRONG decoding on page 18.
<vehicleIdentificationNumber>
<isowmi>WMI</isowmi>
...
</vehicleIdentificationNumber>
<isowmi>WMI</isowmi>
...
</vehicleIdentificationNumber>
(3) REASONS, why "I" Symbol is not allowed
(3.A) the ASN.1 Grammar stops at "H" and starts from "J", it means "I" is excluded.
isowmi PrintableString (SIZE(3))
(FROM("A".."H"|"J".."N"|"P"|"R".."Z"|"0".."9")),
(3.B) Wiki page about WMI also Shows that "I" is no used in WMI
see the 2nd table at the following link. The "WMI" is not defined and is not allowed.
(4) CORRECT DECODING by 3GPP Message Analyser (http://www.3gpp-message-analyser.com/decoder/msd.htm)
Standard Specification Version: 3GPP Rel12:Jun
2015
Message name: ECallMessage
Message PDU(46octets):015C0681D54970D65C3597CA0420C41464583ADE68AC52E9BB8413F149C07414FB414F6010180813E82181823230
Message name: ECallMessage
Message PDU(46octets):015C0681D54970D65C3597CA0420C41464583ADE68AC52E9BB8413F149C07414FB414F6010180813E82181823230
ECallMessage:
01 00000001 id = 1
msd(MSDMessage):
5C 0....... Extension of MSDMessage = 0 :Absent
.1...... optionalAdditionalData = 1 :Present
MSDStructure:
..0..... Extension of MSDStructure = 0 :Absent
...1.... recentVehicleLocationN1 = 1 :Present
....1... recentVehicleLocationN2 = 1 :Present
.....1.. numberOfPassengers = 1 :Present
......00 messageIdentifier = 1
06 000001..
control(ControlType):
......1. automaticActivation = 1 :True
.......0 testCall = 0 :False
81 1....... positionCanBeTrusted = 1 :True
VehicleType:
.0...... VehicleType ENUMERATED value from = 0 :before Extension marker
..0000.. VehicleType = 0 :passengerVehicleClassM1
vehicleIdentificationNumber(VIN):
......01 isowmi[0] = 29 :"W"
D5 1101....
....0101 isowmi[1] = 21 :"M"
49 01......
..001001 isowmi[2] = 9 :"9"
70 011100.. isovds[0] = 28 :"V"
......00 isovds[1] = 13 :"D"
D6 1101....
....0110 isovds[2] = 25 :"S"
5C 01......
..011100 isovds[3] = 28 :"V"
35 001101.. isovds[4] = 13 :"D"
......01 isovds[5] = 25 :"S"
97 1001....
....0111 isovisModelyear = 31 :"Y"
CA 11......
..001010 isovisSeqPlant[0] = 10 :"A"
04 000001.. isovisSeqPlant[1] = 1 :"1"
......00 isovisSeqPlant[2] = 2 :"2"
20 0010....
....0000 isovisSeqPlant[3] = 3 :"3"
C4 11......
..000100 isovisSeqPlant[4] = 4 :"4"
14 000101.. isovisSeqPlant[5] = 5 :"5"
......00 isovisSeqPlant[6] = 6 :"6"
64 0110....
VehiclePropulsionStorageType:
....0... Extension of VehiclePropulsionStorageType = 0 :Absent
.....1.. gasolineTankPresent = 1 :Indicated afterward
......0. dieselTankPresent = 0 :DEFAULT FALSE
.......0 compressedNaturalGas = 0 :DEFAULT FALSE
58 0....... liquidPropaneGas = 0 :DEFAULT FALSE
.1...... electricEnergyStorage = 1 :Indicated afterward
..0..... hydrogenStorage = 0 :DEFAULT FALSE
...1.... gasolineTankPresent = 1 :True
....1... electricEnergyStorage = 1 :True
.....000 timestamp = 123456789
3A 00111010
DE 11011110
68 01101000
AC 10101...
VehicleLocation:
.....100 positionLatitude = 2321364848 : 2321364848 - 2147483648 = 173881200
52 01010010
E9 11101001
BB 10111011
84 10000...
.....100 positionLongitude = 2189306168 : 2189306168 - 2147483648 = 41822520
13 00010011
F1 11110001
49 01001001
C0 11000...
.....000 vehicleDirection = 14
74 01110...
recentVehicleLocationN1(VehicleLocationDelta):
.....100 latitudeDelta = 522 : 522 - 512 = 10
14 0001010.
.......0 longitudeDelta = 502 : 502 - 512 = -10
FB 11111011
41 0.......
recentVehicleLocationN2(VehicleLocationDelta):
.1000001 latitudeDelta = 522 : 522 - 512 = 10
4F 010.....
...01111 longitudeDelta = 492 : 492 - 512 = -20
60 01100...
.....000 numberOfPassengers = 2
10 00010...
optionalAdditionalData(AdditionalData):
.....0.. Range of oid length(octet) = 0 :Up to 127
......00 oid length(octet) = 3
18 00011...
.....000 oid = 01027Dh
08 00001000
13 00010011
E8 11101...
.....0.. Range of data length(octet) = 0 :Up to 127
......00 data length(octet) = 4
21 00100...
.....001 data = 30304646h
81 10000001
82 10000010
32 00110010
30 00110...
.....000 Spare Bits = 000b
Copyright (C) 2010-2012 3GPP Message Analyser
01 00000001 id = 1
msd(MSDMessage):
5C 0....... Extension of MSDMessage = 0 :Absent
.1...... optionalAdditionalData = 1 :Present
MSDStructure:
..0..... Extension of MSDStructure = 0 :Absent
...1.... recentVehicleLocationN1 = 1 :Present
....1... recentVehicleLocationN2 = 1 :Present
.....1.. numberOfPassengers = 1 :Present
......00 messageIdentifier = 1
06 000001..
control(ControlType):
......1. automaticActivation = 1 :True
.......0 testCall = 0 :False
81 1....... positionCanBeTrusted = 1 :True
VehicleType:
.0...... VehicleType ENUMERATED value from = 0 :before Extension marker
..0000.. VehicleType = 0 :passengerVehicleClassM1
vehicleIdentificationNumber(VIN):
......01 isowmi[0] = 29 :"W"
D5 1101....
....0101 isowmi[1] = 21 :"M"
49 01......
..001001 isowmi[2] = 9 :"9"
70 011100.. isovds[0] = 28 :"V"
......00 isovds[1] = 13 :"D"
D6 1101....
....0110 isovds[2] = 25 :"S"
5C 01......
..011100 isovds[3] = 28 :"V"
35 001101.. isovds[4] = 13 :"D"
......01 isovds[5] = 25 :"S"
97 1001....
....0111 isovisModelyear = 31 :"Y"
CA 11......
..001010 isovisSeqPlant[0] = 10 :"A"
04 000001.. isovisSeqPlant[1] = 1 :"1"
......00 isovisSeqPlant[2] = 2 :"2"
20 0010....
....0000 isovisSeqPlant[3] = 3 :"3"
C4 11......
..000100 isovisSeqPlant[4] = 4 :"4"
14 000101.. isovisSeqPlant[5] = 5 :"5"
......00 isovisSeqPlant[6] = 6 :"6"
64 0110....
VehiclePropulsionStorageType:
....0... Extension of VehiclePropulsionStorageType = 0 :Absent
.....1.. gasolineTankPresent = 1 :Indicated afterward
......0. dieselTankPresent = 0 :DEFAULT FALSE
.......0 compressedNaturalGas = 0 :DEFAULT FALSE
58 0....... liquidPropaneGas = 0 :DEFAULT FALSE
.1...... electricEnergyStorage = 1 :Indicated afterward
..0..... hydrogenStorage = 0 :DEFAULT FALSE
...1.... gasolineTankPresent = 1 :True
....1... electricEnergyStorage = 1 :True
.....000 timestamp = 123456789
3A 00111010
DE 11011110
68 01101000
AC 10101...
VehicleLocation:
.....100 positionLatitude = 2321364848 : 2321364848 - 2147483648 = 173881200
52 01010010
E9 11101001
BB 10111011
84 10000...
.....100 positionLongitude = 2189306168 : 2189306168 - 2147483648 = 41822520
13 00010011
F1 11110001
49 01001001
C0 11000...
.....000 vehicleDirection = 14
74 01110...
recentVehicleLocationN1(VehicleLocationDelta):
.....100 latitudeDelta = 522 : 522 - 512 = 10
14 0001010.
.......0 longitudeDelta = 502 : 502 - 512 = -10
FB 11111011
41 0.......
recentVehicleLocationN2(VehicleLocationDelta):
.1000001 latitudeDelta = 522 : 522 - 512 = 10
4F 010.....
...01111 longitudeDelta = 492 : 492 - 512 = -20
60 01100...
.....000 numberOfPassengers = 2
10 00010...
optionalAdditionalData(AdditionalData):
.....0.. Range of oid length(octet) = 0 :Up to 127
......00 oid length(octet) = 3
18 00011...
.....000 oid = 01027Dh
08 00001000
13 00010011
E8 11101...
.....0.. Range of data length(octet) = 0 :Up to 127
......00 data length(octet) = 4
21 00100...
.....001 data = 30304646h
81 10000001
82 10000010
32 00110010
30 00110...
.....000 Spare Bits = 000b
Copyright (C) 2010-2012 3GPP Message Analyser
No comments:
Post a Comment