TODO - Work that need to be done and work that is in progress

build

  • Makefile should be fixed so that all files compile correctly with dependency. (see changes in vscpd)
  • debian package for pc and arm.
  • Make windows build package up to date.

vscpd

  • Extra security for tcp/ip. Add variable key that is listed after user command. (sid has been added, need logic)
  • Sensible defaults should be used for empty tags in dm.xml and other reads.I have added some of the default in the read for the dm but have not tested.
  • Dinesh problem.
  • class/type should be possible to select from drop down boxes in web i/f
  • tcp/ip measurement command.
  • Received Level I measurement events should be possible to automatically convert to CLASS2 float/string versions. Either both versions or just the converted version is sent further on the wire.
  • discovery variable. Last date/time for new discovery
  • Driver translation: TEST
  • Is it possible to have a configuration that prevent Level I drivers from sending there events to other Level I drivers. Can this be driver specific? Translation prevent the first case.
  • Drivers should be possible to load/unload from repository on the fly.
  • Variable hooks in websocket interface. 1.) Create hook. 2.) Get value automatically when it has been changed (or info that variable has been deleted).
  • New stock variables: wxGetBatteryState(), wxGetPowerType (), wxGetDisplayName ()

vscpd DM

  • DM moving avarage.
  • Add test for actions and escapes..
  • New escape: %sql:db-name:sql-expression Loads result.
  • dl/dll interface “name-of-dll;free param's” dl/dll loaded on startup.

Tables

dbname:tablename must be system unique
Can labels be in variables?
Is unit needed?

Size of table If a size is set he table will have max. this number of records. Every time a new record is inserted the oldest record will be removed to full fill this size constraint.

  <tables>
      <table>...</table>
      <table>...</table>
  </tables>
  • Databases created if they don't exists when vscpd starts.
  • Tables created if they don't exist when vscpd starts.
  • Escape to fetch data from table %sql:unique-name:sql-expression (to slow???) Return value/comma separated list)
  • Action to write data to table. Action parameter: unique-name;sql-expression.
  • SQL support in JavaScript and LUA. Result in JSON.
<table bmemory="true|false"
  name="dbname"
  size="0|n"

  owner="name-of-owner"
  rights="permissions"

  vscp-class="class"
  vscp-type="type"
  vscp-sensor-index="idx"
  vscp-unit="unit"
  vscp-zone="zone"
  vscp-subzone="subzone"

  title="diagram title"
  labelx="diagram x-name"
  labely="diagram y-name"
  note="diagram note"

  sql-create="SQL expression to create table"
  sql-insert="SQL expression to insert value into table"
  sql-delete="SQL expression to delete table"

  description="Description of database"
/>

The insert value string shall have a %f representing the value and a %s representing the date/time and in that order. The rest of the string is just a standard INSERT sql expression.

Fora static table: after an insert one or several sql-deletes will be carried out until the count is below or equal to size.

max(date1,date2) min(date1,date2) avarage(date1,date2) median(date1,date2)

Drivers

JavaScript

  • Variables containing JavaScript should be possible to check for validity. Websocket interface / tcp/ip interface. “just parse”

LUA Script

vscp works

  • Saving loading filters.
  • When configuration is loaded over remote server the grid is not expanded.
  • VSCP bootloader algorithm.
  • Discover interface should be finished.
  • Variable interface.
  • MDF interface
  • Wizard interface.
  • DM: Mask for class shown as 0xff, should be 0x1ff
  • DM: Filter build dialog does not appear to work.
  • Session window: Class/types are out of order.
  • Config window: Change “node data” ⇒ “device data”
  • Make it possible to search registers (clear text search)
  • When loading registers, registers that have the same value as the loaded value should not be marked as altered.
  • Update context sensitive help info
  • Check about and help paths

Bootloader

  • Bootloader needs some slack when used with slow interfaces over tcp/ip. Fails from time to time otherwise.
  • When bootloader wizard loads data from a device it should give information about what device it is and what firmware version that is currently loader.
  • Problem can occur if a module change processor over time. Different firmware. Also different firmware may be loaded to the wrong device. At least the VSCP algorithm should handle this.
  • Wizard should have option that backup register space before bootloading.

helper libs

  • vscp_getVSCPMeasurementAsDouble to test
  • vscp_vscp_getVSCPMeasurementAsString to test
  • vscphlp_writeFilterToString / vscphlp_writeMaskToString to test
  • vscphlp_getMeasurementUnit / vscphlp_isMeasurement to test
  • Register operations should be added.
  • Add Base64Encode/Base64Decode that can handle escaped unicode. (or is this supported in wxWidets?)
  • writeMeasurementValue should be removed (???) or at least be changed to support the db.
  • Complete rewrite of variable functionality.
  • Windows def file should have all exported functions. Check that they all are included.

bindings

  • SWIG (leta upp den borttagna koden eller göra allt från början?)
  • Python
  • Java
  • Python - Stalled work (???) by Salvo Musumeci here here
  • C# - Bas Bongenaar - work in progress
  • Perl
  • LUA
  • PHP
  • node.js - websocket i/f
  • node.js - tcp/ip i/f (helper.dll)
  • node.js - rest i/f
  • node.js - multicast i/f
  • OpenHAB
  • OpenRemote

vscp-ux

  • Admin interface
  • Client interface

database

  • All class/type should be moved to database. vscp data table should be filled with data
  • PHP maintenance interface for “vscpdata” main database.
  • PHP user interface for “vscpdata” main database.
  • Export to vscp_class.h vscp_type.h
  • Export to JSON/XML

docs

  • Action codes should be added to all descriptions in the specification. A table should be available or is it already?
  • Javascript lib should be documented.
  • vscp works should be documented.
  • Update error list for websocket errors (last)
  • Add commands to left side for websockets
  • Add commands to left side for tcp/ip interfaces
  • Add sections to left side for variables.

Demo

  • JavaScript action sample with Raspberry Pi CPU/GPU temperatures.
  • High end node demo (Windows, Linux, RPi).
  • Google calendar demo - node.js

actions

  • Send SMS (web service).
  • Send Email.
  • Weather forecast fetcher.

webserver

  • /vscp/var/[variable-name] pages
  • *.vscp substitution pages.

websockets

  • measurement command should be completed.
  • gt command updates to new functionality.

node-red

Input

Output

  • Output from tcp/ip interface (events)
  • Output from websocket interface (events)
  • Output from REST interface (events)
  • Output from VSCP MQTT interface (events)

Filter

  • Filter (General events)
  • Filter (Event translate to real value measurement {“value”:27.9, “unit”:0, “index”:2, “guid”:“FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF:FF” })

Samples

Hardware demos

MQTT

  • in: Subscribed path → Event (argument substitution)
  • in: Subscribed path → Variable (argument substitution)
  • out: Changed variable → publish on path
  • out: event (filter) → published on path
  • in/out: /vscp/xml → stream from daemon (XML format)
  • in/out: /vscp/json → steam from daemon (JSON format)
  • in/out: /vscp/xml/'interface' → stream to/from daemon but specific interface given as GUID (XML format)
  • in/out: /vscp/json/'interface' → stream to/from daemon but specific interface given as GUID (JSON format)
  • out: /vscp/measurement[/interface] → Easy way to send measurements. Just send numbers. Interface is optional.
  • /interface/origin/class/type/ → event

TCP/IP client interface

* File handling

JavaScript & LUA methods

  • Send event - (fixed for Javascript)
  • Receive event - (fixed for Javascript)
  • Check events in queue - (fixed for Javascript)
  • Read variable - (fixed for Javascript)
  • Write variable - (fixed for Javascript)
  • Create variable - (fixed for Javascript)
  • Delete variable - (fixed for Javascript)

Tools

  • uvscpd (pi, Carmbola etc)

Test cases

  • tcp/ip interface
  • webscocket interface
  • REST interface
  • MQTT interface
  • coap interface
  • Multicast interface
  • Discovery
  • Local bootloading
  • Remote bootloading

Root folder structure

/etc/vscp

  • Main configuration file. vscpd.xml

/srv/vscp

  • — Databases and xml files in the root. —
  • > actions - Preferred place for action scripts on disc
  • certs - Server certificates
  • > drivers - VSCP Level I and Level II drivers.
  • tables - Preferred place for user tables
  • > web - Web root.

Folders marked with “>” can be manipulated by remote file utilities.

 
todo/start.txt · Last modified: 2017/03/28 14:22 by admin
[unknown button type]
 
Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki