75 lines
1.8 KiB
Plaintext
75 lines
1.8 KiB
Plaintext
|
module TRXC_Types {
|
||
|
|
||
|
import from Osmocom_Types all;
|
||
|
|
||
|
type charstring TrxcType ("CMD", "RSP", "IND") with {
|
||
|
variant "TEXT_CODING(,convert=upper_case,'((CMD)|(RSP)|(IND))',case_insensitive)"
|
||
|
}
|
||
|
|
||
|
type charstring TrxcVerb ("POWERON", "POWEROFF", "CLOCK",
|
||
|
"RXTUNE", "TXTUNE", "SETSLOT", "SETTSC", "SETBSIC", "SETPOWER",
|
||
|
"SETMAXDLY", "SETMAXDLYNB", "SETSLOT", "HANDOVER", "NOHANDOVER",
|
||
|
"MEASURE", "FAKE_RSSI", "FAKE_TIMING" ) with {
|
||
|
variant "TEXT_CODING(,convert=upper_case,
|
||
|
'((POWERON)|(POWEROFF)|(CLOCK)|(RXTUNE)|(TXTUNE)|(SETSLOT)|(SETTSC)|(SETBSIC)|(SETPOWER)|(SETMAXDLY)|(SETMAXDLYNB)|(HANDOVER)|(NOHANDOVER)|(MEASURE)|(FAKE_RSSI)|(FAKE_TIMING))'
|
||
|
,case_insensitive)"
|
||
|
}
|
||
|
|
||
|
type integer TrxcStatus;
|
||
|
type charstring TrxcParam;
|
||
|
type record of TrxcParam TrxcParams;
|
||
|
|
||
|
type record TrxcCommand {
|
||
|
TrxcVerb verb,
|
||
|
TrxcParams params optional
|
||
|
} with {
|
||
|
variant "SEPARATOR(' ', ' ')"
|
||
|
}
|
||
|
|
||
|
type record TrxcResponse {
|
||
|
TrxcVerb verb,
|
||
|
TrxcStatus status,
|
||
|
TrxcParams params optional
|
||
|
} with {
|
||
|
variant "SEPARATOR(' ', ' ')"
|
||
|
}
|
||
|
|
||
|
type record TrxcIndication {
|
||
|
TrxcVerb verb,
|
||
|
TrxcParams params optional
|
||
|
} with {
|
||
|
variant "SEPARATOR(' ', ' ')"
|
||
|
}
|
||
|
|
||
|
type union TrxcMessage {
|
||
|
TrxcCommand cmd,
|
||
|
TrxcResponse rsp,
|
||
|
TrxcIndication ind
|
||
|
} with {
|
||
|
variant (cmd) "BEGIN('CMD ')"
|
||
|
variant (rsp) "BEGIN('RSP ')"
|
||
|
variant (ind) "BEGIN('IND ')"
|
||
|
}
|
||
|
|
||
|
external function enc_TrxcMessage(in TrxcMessage id) return charstring
|
||
|
with { extension "prototype(convert) encode(TEXT)" };
|
||
|
external function dec_TrxcMessage(in charstring id) return TrxcMessage
|
||
|
with { extension "prototype(convert) decode(TEXT)" };
|
||
|
|
||
|
template (value) TrxcMessage ts_TRXC_FAKE_RSSI(uint8_t rssi) := {
|
||
|
cmd := {
|
||
|
verb := "FAKE_RSSI",
|
||
|
params := { int2str(rssi) }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
template (value) TrxcMessage ts_TRXC_FAKE_TIMING(int16_t timing) := {
|
||
|
cmd := {
|
||
|
verb := "FAKE_TIMING",
|
||
|
params := { int2str(timing) }
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
} with { encode "TEXT" }
|