diff --git a/library/TRXC_Types.ttcn b/library/TRXC_Types.ttcn
new file mode 100644
index 0000000..c12e5d2
--- /dev/null
+++ b/library/TRXC_Types.ttcn
@@ -0,0 +1,74 @@
+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" }
