Improve Templated "find & replace" algorithm for IPSC packets
This DECREASES the risk of a false positive replacing TGID and Subscriber ID by 16,581,375 times.
This commit is contained in:
parent
dccbe86fd3
commit
1e1a88fff0
@ -572,7 +572,7 @@ class AMBE_IPSC(AMBE_BASE):
|
|||||||
def send_voice_term(self, _rx_slot):
|
def send_voice_term(self, _rx_slot):
|
||||||
self.rewriteFrame(self._tempTerm, _rx_slot.slot, _rx_slot.dst_id, _rx_slot.rf_src, _rx_slot.repeater_id)
|
self.rewriteFrame(self._tempTerm, _rx_slot.slot, _rx_slot.dst_id, _rx_slot.rf_src, _rx_slot.repeater_id)
|
||||||
pass
|
pass
|
||||||
def rewriteFrame( self, _frame, _newSlot, _newGroup, _newSouceID, _newPeerID ):
|
def rewriteFrame( self, _frame, _newSlot, _newGroup, _newSourceID, _newPeerID ):
|
||||||
|
|
||||||
_peerid = _frame[1:5] # int32 peer who is sending us a packet
|
_peerid = _frame[1:5] # int32 peer who is sending us a packet
|
||||||
_src_sub = _frame[6:9] # int32 Id of source
|
_src_sub = _frame[6:9] # int32 Id of source
|
||||||
@ -581,11 +581,13 @@ class AMBE_IPSC(AMBE_BASE):
|
|||||||
|
|
||||||
########################################################################
|
########################################################################
|
||||||
# re-Write the peer radio ID to that of this program
|
# re-Write the peer radio ID to that of this program
|
||||||
_frame = _frame.replace(_peerid, _newPeerID)
|
_frame = _frame.replace(_peerid, _newPeerID, 1)
|
||||||
# re-Write the source subscriber ID to that of this program
|
# re-Write the source subscriber ID + destination Group ID combo in the IPSC Header
|
||||||
_frame = _frame.replace(_src_sub, _newSouceID)
|
_frame = _frame.replace(_src_sub + _group, _newSourceID + _newGroup, 1)
|
||||||
# Re-Write the destination Group ID
|
# Re-Write the destination Group ID + source subscriber ID combo in the decoded LCs
|
||||||
_frame = _frame.replace(_group, _newGroup)
|
_frame = _frame.replace(_group + _src_sub, _newGroup + _newSourceID, 1)
|
||||||
|
|
||||||
|
|
||||||
_frame = _frame[:5] + struct.pack("i", self.ipsc_seq)[0] + _frame[6:] # ipsc sequence number increments on each transmission (stream id)
|
_frame = _frame[:5] + struct.pack("i", self.ipsc_seq)[0] + _frame[6:] # ipsc sequence number increments on each transmission (stream id)
|
||||||
|
|
||||||
# Re-Write IPSC timeslot value
|
# Re-Write IPSC timeslot value
|
||||||
|
0
dmr_utils/ambe_utils.py
Normal file → Executable file
0
dmr_utils/ambe_utils.py
Normal file → Executable file
Loading…
Reference in New Issue
Block a user