VRSystemController
VR System Controller Front end UI[edit | edit source]
Major sections are represented along the top ... Home ... Apps ... RFID ... Network ... System ...
Home[edit | edit source]
Display dashboard page. Machine-specific dashboard pages (include machine-specific.js? or separate in gulp somehow)
- Editable on device?
- Should include any real-time or interactive elements here, and try to keep inner pages static (i.e. no polling or websockets on other tabs, only home tab)
RFID Terminal[edit | edit source]
- Allow Telnet API commands here? Similar to old vrreader-config (python) RFID terminal interface
I/O[edit | edit source]
More detailed than the dashboard page. ALL sensors should be reported here, with real-time updating (poll/ws)
- Inputs
- Outputs
- ADC
- Battery
- GPS
- CAN Bus / VRProto devices
- temperature sensors
SSH console[edit | edit source]
File browser[edit | edit source]
- for file upload download to SD card
Apps[edit | edit source]
Run client-uploaded applications. Similar to Impinj support for client bundles of python scripting. We would probably support nodejs as well. Target apps: Encoder app (Thomas's scanner to tag encoding project), Super-Triggermode apps, LLRP app!!!
May want to look into container support for hard limits on cpu, memory, disk, network.
Add ability to write applications on the device itself (!!!) https://aws.amazon.com/cloud9/
See also: Resin.IO - Ubuntu Snappy on Devices(No longer Works)
Status[edit | edit source]
- show running apps (client-side apps)
App: First[edit | edit source]
- The first app, some logs, start stop? ...
- start on startup
- delete app
New App[edit | edit source]
- Figure out a UI for adding stuff
- upload app bundle
RFID[edit | edit source]
name: RFID Service? what to do about multiple readers at the same time ? UHF / HF / LF
RFID Status[edit | edit source]
- current tagtable? rfid terminal?
- model, serial, etc.
RFID settings?[edit | edit source]
talk to RFID service?[edit | edit source]
Network[edit | edit source]
Pretty much done with this section...
Status[edit | edit source]
Show current status, similar to ifconfig? but flashy? Pull from /api/1/net/devices
Ethernet[edit | edit source]
Wi-Fi[edit | edit source]
Cellular[edit | edit source]
System[edit | edit source]
Status[edit | edit source]
/api/1/sys/core
- Hostname
- CPU Load (aka load average, available through /proc/loadavg, already exists, but we should probably use the sysinfo() call) https://man7.org/linux/man-pages/man2/sysinfo.2.html
- Memory
- total / free / buffers / cached (through sysinfo() syscall)
- Uptime (seconds)
- really, everything in sysinfo(), didn't know about that call before today!
/api/1/sys/sensors (or move to IO section)
- temperature / sensors / inputs / outputs?
- GPS most recent location??? num satellites / rssi? speed / HDOP information (maybe we can copy gps-vr.c from the rfid service)
- battery
- don't conflict too much with the RFID service… these are things that should be available from the linux kernel side only (battery slight exception)
Storage[edit | edit source]
- Disk example:
root@vr-13e781:~# df -kP Filesystem 1024-blocks Used Available Capacity Mounted on rootfs 223408 153372 70036 69% / ubi0:rootfs 223408 153372 70036 69% / devtmpfs 126532 0 126532 0% /dev tmpfs 126640 528 126112 1% /run tmpfs 126640 416 126224 1% /var/volatil
- may want to parse this into JSON instead of leaving to the frontend to deal with? :-P
- SD card information ???
- UBIFS pre-fail counters
Processes[edit | edit source]
- running processes / top (just dump top -b -n 1 for now? parse ps into JSON?)
Logs[edit | edit source]
- tail of /var/log/messages (or whole file?)
- logrotate configuration / viewing?
- log purging?
Services[edit | edit source]
- allow disable / restart of some system services
- disable openvpn
- 'monit status' output (to JSON?)
- cron ?
- reboot the whole device
Software tab[edit | edit source]
name: maybe Versions? Updates? instead
- Image information (danny / dora / dizzy?)
- Version numbers of processes
- RFID service + build
- /etc/venture-build-info (prefirstrun and firstrun information)
- timestamp of /var/lib/opkg/all (last opkg upgrade timestamp)
- Maybe here put some opkg update / upgrade buttons???
- Or an Install X opkg package… ???
VRPackager[edit | edit source]
or other name? VR Enterprise software connection???
- dump vrpackager.db
- load up vrpackage to run
- see current agent status (agent in vr-system-controller?)
Time[edit | edit source]
- Current Date Time
- Time zone selection
- NTP server information
- sync now (run ntpdate -u)
REBOOT[edit | edit source]
- boom!