kellerkindt / asn1rs

Generates Rust Code and optionally compatible Protobuf schema files from ASN.1 definitions.
http://asn1.rs
Apache License 2.0
54 stars 19 forks source link

The following code is not supported #73

Open ouyangbob opened 3 years ago

ouyangbob commented 3 years ago

MessageFrameExt ::= SEQUENCE { messageId MESSAGE-ID-AND-TYPE.&id({MessageTypes}), value MESSAGE-ID-AND-TYPE.&Type({MessageTypes}{@.messageId}), ... }

MESSAGE-ID-AND-TYPE ::= CLASS {
    &id ExtMsgID UNIQUE,
    &Type
} WITH SYNTAX {&Type IDENTIFIED BY &id}

MessageTypes MESSAGE-ID-AND-TYPE ::= {
    { TestMsg IDENTIFIED BY testData } |    
    { RTCMcorrections IDENTIFIED BY rtcmData } |
    { PAMData IDENTIFIED BY pamData } |
    { CLPMM IDENTIFIED BY clpmmData } |
    { PersonalSafetyMessage IDENTIFIED BY psmData } |
    { RoadsideCoordination IDENTIFIED BY rscData } |
    { SensorSharingMsg IDENTIFIED BY ssmData } |
    { VehIntentionAndRequest IDENTIFIED BY virData } |
    { VehiclePaymentMessage IDENTIFIED BY vpmData },
    ...
}

ExtMsgID ::= INTEGER (0..32767) 

-- Test Message
testData ExtMsgID ::= 0

-- DAY II Messages *********************
rtcmData ExtMsgID ::= 10
rscData ExtMsgID ::= 11
ssmData ExtMsgID ::= 12
virData ExtMsgID ::= 13
pamData ExtMsgID ::= 14
psmData ExtMsgID ::= 15
clpmmData ExtMsgID ::= 16
vpmData ExtMsgID ::= 17
ouyangbob commented 1 year ago

The CLASS keyword has implemented encoding and decoding, but not asn.1 file parsing. Can it be merged? https://github.com/ouyangbob/asn1rs/commit/9d5743e2496093753daa17fa3f87632cf9aae831

ouyangbob commented 1 year ago

Plan to add the bitstring setXXX isXXX method for easy setting and getting values

kellerkindt commented 1 year ago

Feel free to post PRs (please in reasonable sizes). If the CI is happy and the changes seem to be useful additions, I will happily merge them.