annotate Scan/ISSILed/exampleAPI.bash @ 398:63b1d003fd50

Stop requiring editing of example scripts The example scripts include hardcoded values that do not work for everyone. Instead of requiring the files to be edited (and dirtying the git tree), allow them to take command-line arguments. Also adds better guidance for Mac OSX virtual serial ports.
author Joshua Flanagan <joshuaflanagan@gmail.com>
date Tue, 10 Nov 2015 10:32:06 -0600
parents 3e5a95c196f8
children 88814d3c0c8b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
375
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
1 #!/bin/bash
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
2 # ISSILed
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
3 # Virtual Serial Port API Example
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
4 # Jacob Alexander 2015
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
5
398
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
6 if [ $# -eq 0 ]; then
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
7 echo "You must specify your virtual serialport. (/dev/ttyACM0 on linux, /dev/cu.usbmodemXXXX on OSX)"
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
8 echo " ex: $0 /dev/ttyACM0"
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
9 exit 1
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
10 fi
375
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
11 # XXX Set this to match your virtual serialport
398
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
12 # TODO Show examples for Cygwin/Windows
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
13 # For Mac OSX it will be something like /dev/cu.usbmodem1413 (number may differ)
63b1d003fd50 Stop requiring editing of example scripts
Joshua Flanagan <joshuaflanagan@gmail.com>
parents: 375
diff changeset
14 SERIALPORT=$1
375
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
15
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
16 # NOTE: Make sure you don't write too quickly to the serial port, it can get overwhelmed by a modern computer
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
17 # Generally this just means commands will get ignored
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
18 # I'm using 100 ms sleeps here, but much smaller are probably sufficient
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
19
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
20 # Clear out cli buffer
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
21 printf "\r" > $SERIALPORT
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
22
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
23 # Write to ISSI Page
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
24 # Arguments
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
25 # - page
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
26 # - starting address
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
27 # - data (usually brightness) (8 bits)
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
28 #
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
29 # For brightness control, set the starting address to 0x24
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
30 # By default only page 0x00 is used
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
31 # There are 8 pages of memory (these can be cycled through for animiations)
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
32 # 144 led channels
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
33 # Page 0x0A is used for configuration
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
34 # See the datasheet for full details http://www.issi.com/WW/pdf/31FL3731C.pdf
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
35 sleep 0.1
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
36 printf "ledWPage 0x00 0x24 0x10 0x20 0x30 0x40 0x50\r" > $SERIALPORT
3e5a95c196f8 Adding example API scripts
Jacob Alexander <haata@kiibohd.com>
parents:
diff changeset
37