A project log for HTTaP

Test Access Port over HTTP

yann-guidon-ygdesYann Guidon / YGDES 03/28/2017 at 00:570 Comments

This page contains a draft for a uniform/universal URI layout and "vocabulary" that all applications/clients can use. As usual, only stable code will serve as a reference, this page is more of a reminder and declaration of intention.

HTTaP defines two "domains" :

The dynamic domain is split further:

I'm not sure about the following paragraph:
Signals use the object notation (with a dot) to represent hierarchy. As a rule of thumb, if it uses a copy of the circuit or an instance of the code, it will be dot-represented. They will be treated similarly by the handler of the server, for example memory spaces...

URI comments GET POST
/path/filename Static file to serve. *

/? Root of HTTaP, serve a JSON-formatted list of available of valid dynamic resources names *

/?ping A simple key used to keep the connection alive.
Returns the number of seconds before the link is closed.
Note: the ping keyword can be followed by any character, to help with caching servers.
/?invalid Never decoded, always returns an error (if you want to close the session for example)
/?loopback Loopback for JS save/restore (optional)
/?list (for signals)
Return the list of the signals and their hierarchy
/?changes (for signals)
same as /?list but only include signals that have changed
/?REG read the value of all the registers *
/?REG/R1 read the value of register R1 *
/?REG/R1,R2 read the values of registers R1 and R2 (optional?) *
/?MEM Dump the contents of the memory *
/?MEM/123-456 Dump the contents of the memory from locations 123 to 456 *
/?IO.SPI.1/ Read the full status of the first SPI port *

The uppercase names are just examples and are only suggestions.

I'm not sure about the representation/formatting of ranges but they are useful to reduce the bandwidth and CPU load.

Memory ranges should use the #HYX file format to save bandwidth, compared to plain JSON syntax.