Still decoding, I was editing when you posted. So can you code up the interpretation, and I guess we set timers with LCNs on the PHP side? It will probably take me a week to code something to parse the svc.dat file, esp with the endians screwed up (to me).
I actually think I got the offset of the svcId info out by a bit, but the size is right. If I work backwards from the 0x90BE at the end of the service table (normal HEX endian...) with the 0x24 times number of services, it takes me back to a little before where I said the services start.
Then the offset from the end of 0x90BE to the beginning of the RF channel info is
0x26bytes.
So the only thing I am missing is how to link the RF with the services... will edit this post in a few mins when i work it out
Ok, this is a better serviceID record, at 0x50offset from the end of the servicecount.
I can see if you delete a channel, the text string dissapears, but the channel remains in the service list, and the 0x0103 is 0x0000 with a deleted channel.
0000 0103 0000 0002 2005 0102 0202 0102 0100 0000 0000 0000 0000 0000 0400 0400 0700 0000:- 2005=svcId 0700=LCN
0000 0103 0000 1002 2105 0102 0202 0102 0100 0000 0A00 0000 0000 0000 1900 1900 4700 0000:-2105=svcid 4700=LCN
Convert endedness before converting to decimal.
Yay, worked out the final piece in the jigsaw.
The third 2 byte integer in the 0x24byte service recording is the offset to RF channel 6 (well, offset to the table that follows the SVCId table really).
So my 7 records are (VHF6) 0000 0103 0000
vhf7
my 9 records are (VHF8) 0000 0103 0200
vhf9
vhf9a
vhf10
my 10records are (VHF11) 0000 0103 0600
etc
Regards