module RAWTest2 { external function enc_data(in Test_data pdu) return octetstring with { extension "prototype(convert)" extension "encode(RAW)" }; external function dec_data(in octetstring stream) return Test_data with { extension "prototype(convert)" extension "decode(RAW)" extension "errorbehavior(ALL:WARNING)" }; type octetstring OCT1 length(1) with { variant "FIELDLENGTH(1)" }; type octetstring OCT2 length(2) with { variant "FIELDLENGTH(2)" }; type record Test_data { OCT2 field1, OCT1 presence_field, OCT2 field2 optional, OCT2 field3 } with {variant (field2) "PRESENCE(presence_field = 'FF'O)" }; template Test_data t1:= { field1:='AABB'O, presence_field:='FF'O, field2:='CCDD'O, field3:='EEFF'O } template Test_data t2:= { field1:='AABB'O, presence_field:='00'O, field2:= omit, field3:='EEFF'O } control { log("Encode ", enc_data(valueof(t1))) log("Decode", dec_data(enc_data(valueof(t1)))) log("----------------------------------------------------------------------------------") log("Encode ", enc_data(valueof(t2))) log("Decode", dec_data(enc_data(valueof(t2)))) log("----------------------------------------------------------------------------------") } }with { encode "RAW" };