bash/client software --- database
|
(filesystem)
|
main (FUSE) <<< we are here
|
uhfd
|
uhfman
|
ypdr200
Device files will be stored in /mnt/rscs/uhfX, where X is the device number.
Per-device driver control files will be stored in /custom/uhfX/driver.
Global driver control files will be stored in /mnt/rscs/uhfd
[x] uhfX
[x] --- epc [rw]
[x] --- access_passwd [w]
[x] --- kill_passwd [w]
[x] --- flags [rw]
[x] --- rssi [r] // combine to space-separated string with read_rate?
[x] --- read_rate [r]
[x] --- driver
[ ] ------- delete [w] - write flags to delete
[x] ------- embody [w] - write 1 (anything actually, we don't check it, should we?)
[x] ------- measure [w] - write timeout value to trigger measurement stored in rssi and read_rate
[x] uhfd
[x] --- sid [r] // obtains driver-generated session id for requests (store last N in memory of the driver program to handle max N concurrent tasks using ringbuf)
[x] --- mkdev [w] // Trigger new device directory setup by driver and also the driver would create a file containing output device number at result/$sid/value
The default values are:
epc: 12B (zeroes)
access_passwd: 4B (zeroes)
kill_passwd: 4B (zeroes)
flags: 0x00 (not ignored, not embodied)
[x] --- result
[x] ------- $sid
[x] ---------- value [r] // the device number
[ ] ---------- fin [r] // the device number [WON'T]
Using FUSE (libfuse3)