README.md
author Tero Marttila <terom@paivola.fi>
Thu, 29 Jan 2015 23:11:44 +0200
changeset 107 05707929ff6f
parent 99 b1f2b34d4f8c
permissions -rw-r--r--
qmsk.web.async: handle HTTPExceptions
47
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
## Dependencies
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
* avrdude
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
* avra
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
* picocom
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
* gcc-avr
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
* avr-libc
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
## USB
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
Configure udev for the `/dev/arduino` symlink.
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
### /etc/udev/rules.d/09-arduino.rules
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
    # /dev/arduino
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    SUBSYSTEMS=="usb", ATTRS{product}=="FT232R USB UART", ATTRS{idProduct}=="6001", ATTRS{idVendor}=="0403", SYMLINK+="arduino arduino_$attr{serial}"
7f930a94ee1e bravely step into the modern world of C-programming, using avr-gcc for a hello world...
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
99
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    15
## Protocol
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    16
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    17
The protocol used is ASCII with decimal.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    18
Commands are given as a command character, followed by command-specific arguments, and terminated by a newline character.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    19
The implementation supports up to 8 arguments.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    20
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    21
### Syntax (EBNF)
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    22
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    23
    dmx-command:
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    24
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    25
        cmd { sep arg  } eol
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    26
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    27
    cmd:
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    28
        'a'..'z' | 'A'..'Z'
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    29
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    30
    arg:
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    31
        '0'..'9' [ arg ]
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    32
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    33
    sep:
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    34
        '\t' | ' ' | ','
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    35
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    36
    eol:
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    37
        '\r' | '\n'
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    38
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    39
### Commands
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    40
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    41
The output state keeps track of both channel values, as well as the number of active channels. Only the channels up to
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    42
the highest active channel are output. Up to 255 channels are supported.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    43
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    44
All commands ensure that any modified channels will become active.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    45
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    46
#### *c*lear
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    47
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    48
    c
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    49
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    50
Reset to initial state, with all channels inactive.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    51
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    52
#### *o*ut
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    53
    o <value0> ... <valueN>
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    54
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    55
Set active channels 0..N to given $value0..$valueN. All remaining channels will be marked inactive.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    56
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    57
#### *f*ill
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    58
    f <start> <end> <value0> ... <valueN>
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    59
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    60
Set channel $start+0 = $value0, ... $start+N = $valueN, up to $end, repeating $value0..N as needed.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    61
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    62
#### *r*ange
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    63
    r <start> <stop> <step> <value>
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    64
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    65
Set channels $start, $start + $step, ..., $end (inclusive) to the given $value.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    66
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    67
#### *s*et
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    68
    s <start> <value0> ... <valueN>
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    69
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    70
Set channels start..start+N to the given $value0..$valueN. Ensures channels up to N are valid.
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    71
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    72
#### *z*ero
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    73
    z [<count>]
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    74
b1f2b34d4f8c README: docdoc serial commands
Tero Marttila <terom@paivola.fi>
parents: 47
diff changeset
    75
Set channels 1..$count to zero, and null all following channels.