library/RSL_Emulation: make use of IpaUnitId codec

Change-Id: I20e1ac35707affc6aab60397a22e33fe2bd1106e
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index 891e565..17e35ab 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -370,9 +370,7 @@
 
 private function f_trx_conn_map_register(integer conn_id, in IpaCcmIdResp id_resp)
 runs on RSL_Emulation_CT return IpaStreamId {
-	var template charstring unit_id_fmt := pattern "(\d+)/(\d+)/(\d+)";
-	var charstring unit_id;
-	var integer trx_nr;
+	var IpaUnitId unit_id;
 	var integer idx;
 
 	/* Check if we have room for a new connection */
@@ -386,29 +384,21 @@
 		testcase.stop("IPA IDENTITY RESPONSE contains no unit-id");
 	}
 
-	/* Make sure that IPA unit-id is valid */
-	unit_id := oct2char(id_resp[idx].data);
-	if (not match(unit_id, unit_id_fmt)) {
-		testcase.stop("IPA unit-id has unknown/unexpected format");
-	}
+	/* Parse IPA unit-id */
+	unit_id := dec_IpaUnitId(oct2char(id_resp[idx].data));
 
-	/* Parse transceiver number (site/bts/trx).
-	 * TODO: implement and use declaratice types. */
-	unit_id := regexp(unit_id, unit_id_fmt, 2);
-	trx_nr  := str2int(unit_id);
-
-	if (trx_nr >= sizeof(TrxConnMap)) {
-		testcase.stop("Transceiver #", trx_nr, " does not fit");
-	} else if (TrxConnMap[trx_nr] != -1) {
-		testcase.stop("Transceiver #", trx_nr, " is already connected?!?");
+	if (unit_id.trx_id >= sizeof(TrxConnMap)) {
+		testcase.stop("Transceiver #", unit_id.trx_id, " does not fit");
+	} else if (TrxConnMap[unit_id.trx_id] != -1) {
+		testcase.stop("Transceiver #", unit_id.trx_id, " is already connected?!?");
 	}
 
 	/* Finally, store the connection ID */
-	log("Mapped TRX#", trx_nr, " to TCP/IP conn_id=", conn_id);
-	TrxConnMap[trx_nr] := conn_id;
+	log("Mapped TRX#", unit_id.trx_id, " to TCP/IP conn_id=", conn_id);
+	TrxConnMap[unit_id.trx_id] := conn_id;
 	TrxConnNum := TrxConnNum + 1;
 
-	return f_streamId_by_trx(trx_nr);
+	return f_streamId_by_trx(unit_id.trx_id);
 }
 
 private function f_trx_conn_map_unregister(integer conn_id)