1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
/******************************************************************************
* Copyright (c) 2000-2021 Ericsson Telecom AB
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
*
* Contributors:
* Balasko, Jeno
* Raduly, Csaba
*
******************************************************************************/
/*
//AUTHOR: ezolmed
//DATE: 2012-10-08
//VERSION:
*/
module Module {
external function enc_PDU(in PDU pl_pdu) return octetstring
with {
extension "prototype(convert)"
extension "encode(RAW)"
};
external function dec_PDU(in octetstring pl_octetstring) return PDU
with {
extension "prototype(convert)"
extension "decode(RAW)"
}
type hexstring HEX1 length(1) with {variant "FIELDLENGTH(1)"};
type hexstring HEX5 length(5) with {variant "FIELDLENGTH(5)"};
type octetstring OCT1 length(1) with {variant "FIELDLENGTH(1)"};
type record My_Type{
OCT1 id,
HEX1 spare,
HEX5 hex,
octetstring o
} with {
variant(spare,hex) "FIELDORDER(msb)";
}
type record PDU {
OCT1 msg_type,
U u
} with {
variant (u) "CROSSTAG(h1, msg_type = '01'O;
h5, msg_type = '02'O;
my_type, msg_type = '03'O;
unknonw, OTHERWISE;)";
}
type union U {
HEX1 h1,
HEX5 h5,
My_Type my_type,
octetstring unknonw
}
} with { encode "RAW" } // end of module
|