Thanks for the new build Ian. I have confirmed that the site I am monitoring is showing a Site ID of 10:
1010 000011001010 00001010 0000 (Network 202, Site 10)
Still not sure what the 1010 at the start is for. We know the next 12 bits are ok for the Network ID. So given this info I propose we change the Site ID to the 8 bits after the Network ID.
Well Forts, I just couldn't stay away. I took a hiatus from staring at Connect Plus binary code, but I'm back.
From the quote above, was that taken from an SLCO=10 or 9 message? Looking back in my logs, all of my SLCO messages seem to be four bits shorter than that (24 bits total).
I went back and took a fresh look at some of my old logs armed with this new information:
Network ID: 1-255 (8 bit block)
Site ID: 1-35 (6 bit block)
We now know that the channel grant system used by the XCR9000 site controller does indeed use both a Repeater Radio ID number (from 1-15, 4 bits) and a time slot (1 or 2).
We also know that each control channel broadcasts an adjacent Neighbor List, which contains up to 5 site ID numbers for the five closest adjacent sites.
I went back and looked at some SLCO=10 (and 9) packets from my logs and changed them to 6-bit (1-35) side IDs:
SLCO=10 - Network ID & Site ID
(SLCO=10 for control channel, SLCO=9 for voice channel)
Control Channel frequency on the left, corresponding SLCO=10 packet on the right.
Code:
454.0375 0000 01110111 00 000100 0000
454.0500 0000 01110111 00 000001 0000
454.5250 0000 01110111 00 000011 0000
461.3000 0000 01110111 00 000010 0000
463.4375 0000 01110111 00 000101 0000
453.0125 0000 01110111 00 000110 0000
^ ^
(Network ID) (Site ID)
Corresponds to this list of control channels and their Network & Site IDs:
454.0500 - Network: 119 - Site: 1
461.3000 - Network: 119 - Site: 2
454.5250 - Network: 119 - Site: 3
454.0375 - Network: 119 - Site: 4
463.4375 - Network: 119 - Site: 5
453.0125 - Network: 119 - Site: 6
I also long suspected that CSBKO=1 FID=6 packets were the adjacent neighbor list, because they are broadcast so often on the control channel. Tonight I was able to confirm this!
CSBKO=1 FID=6 - Neighbor List
I took the CSBKO=1 packets from two different site control channels that were part of the same system and compared them. Knowing the site ID corresponding to each frequency, it became super obvious what was going on. The CSBKO=1 packet excludes the current Site ID, and shows a list of up to the 5 nearest neighboring Site IDs!
Code:
461.300 MHz: CSBKO=1 + FID=6 0000 000100 000011 000001 0000 000101 00 000110 000000000000000000001101 (On Site 2)
4 3 1 5 6 13
454.525 MHz: CSBKO=1 + FID=6 0000 000100 000010 000001 0000 000101 00 000110 000000000000000000000100 (On Site 3)
4 2 1 5 6 4
This says:
Site 2 neighbors: 4, 3, 1, 5, 6
Site 3 neighbors: 4, 2, 1, 5, 6
I'm still not sure what the last 4 bits do. I thought it might have to do with the registration process, but I really don't know. It stays consistent per site control channel over long periods of time in my log files. However I was able to compare the neighbor list for the same site and control channel (461.300, site 2) from two different log files for two different days, and noticed an interesting result:
Code:
CSBKO=1 + FID=6 0000 000100 000011 000001 0000 000101 00 000110 000000000000000000001101
4 3 1 5 6 13
CSBKO=1 + FID=6 0000 000100 000011 000001 0000 000101 00 000110 000000000000000000001011
4 3 1 5 6 11
As you can see the adjacent neighboring Site IDs didn't change, but that end value did. Any theories on what it might do?
The site neighbor list is used is used for roaming when the radio loses contact with the current site. If this happens, there are four layers of priority for the radio to find a new site.
1. Check the pre-programmed control channel of the "Preferred Site."
2. Check the control channel of the last site ID the radio was registered to.
3. The radio periodically saves the neighbor list of the last-registered site into memory, so if the first two don't work the radio will start checking the control channels for each neighbor. It does this by taking the neighbor site IDs and correlating them to pre-programmed control channels in the radio's "Network Frequency File."
4. If it can't find anything from the neighbor list, it will finally go through every control channel in the radio's pre-programmed "Network Frequency File" until it finds something.
Unfortunately, I'm not exactly sure how the last four digits of the neighbor list packet assist in this process.