CSIKit
CSIKit copied to clipboard
Modifying `read_pcap.py` to interpret `Nexmonster's pi-5.4.51-plus`
CSIKit works as expected with captures generated from the nexmonster pi-5.4.51
However, I want to extract RSSI data so I am attempting to modify the read_pcap.py
for Nexmonster's pi-5.4.51-plus
My changes thus far can be seen in my fork
- Warning, I thought it was going to be simply replacing a few offsets, but then after that didn't work I started somewhat arbitrarily changing numbers to see what would happen.
One interesting thing to note is that I was expecting the Chip Version
to be at position 41
into the payload, however instead it was at 42
.
Thanks for bringing this up as I'd like to add support for the increasing nexmon format variants.
I'm away from my desk for a couple of days. Could you provide an example of the file you're trying to parse and I can take a look myself when I'm free. Very possible it can be fixed tweaking a few offsets, just some awkward behaviour on NEXBeamformReader's end.
Here's the capture I'm working with
I'm a fan of this particular format since it reserves space for data to be extracted in the future, and in such a way that should be more backwards compatible.
I'll take a look at NEXBeamformReader and see if I can't make some sense of it and help out.
https://drive.google.com/file/d/12d1n4ALoPQkgeyxyvhwdcfm-eHj7KJ7I/view?usp=sharing
Apologies for the delay. Still away from home but I've thrown together a very quick temporary version which'll parse your files from nexmonster pi-5.4.51-plus. I'll be happy to go through your fork when I've got a bit more time, but there are 3 main points in adding support for this format. First, the BW_SIZES dict needed an additional payload length entry for 20/40MHz with this nexmon_csi version. Second, the payload header length passed to read_payloadHeader_nexmonster
had to be increased for the nexmonster plus format. Third, the payload header format can then be laid out. Each field appears to be present and working. Let me know if you have any issues and I'll try and get them sorted asap. Once I've got some proper time I'll finish properly implementing support for this format so it can be automatically detected alongside the other potential variations. 👍