VRSystemController

From VentureResearchWiki
Jump to navigation Jump to search

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!