-
Notifications
You must be signed in to change notification settings - Fork 2
Simple C library for access to DyIO robot controller.
License
NeuronRobotics/c-bowler-pc
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Examples of dyio utility ~~~~~~~~~~~~~~~~~~~~~~~~ Generic information about DyIO device: $ dyio /dev/ttyACM0 Port name: /dev/ttyACM0 DyIO device address: 74-f7-26-0d-05-00 Firmware Revision: 3.13.5 Power Input: 0.0V, Override=1 Rail Power Source: Right=External, Left=External Matrix of channel features and status: $ dyio /dev/ttyACM0 -c -v Port name: /dev/ttyACM0 DyIO device address: 74-f7-26-0d-05-00 Channel Features: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 Digital Input + + + + + + + + + + + + + + + + + + + + + + + + Digital Output + + + + + + + + + + + + + + + + + + + + + + + + Analog Input . . . . . . . . + + + + + + + + . . . . . . . . Analog Output . . . . . . . . . . . . . . . . . . . . . . . . PWM . . . . + + + + . . . . . . . . . . . . . . . . Servo + + + + + + + + + + + + + + + + + + + + + + + + UART Transmit . . . . . . . . . . . . . . . . + . . . . . . . UART Receive . . . . . . . . . . . . . . . . . + . . . . . . SPI MOSI . . + . . . . . . . . . . . . . . . . . . . . . SPI MISO . + . . . . . . . . . . . . . . . . . . . . . . SPI SCK + . . . . . . . . . . . . . . . . . . . . . . . Counter Input INT . . . . . . . . . . . . . . . . . + . + . + . + Counter Input DIR . . . . . . . . . . . . . . . . + . + . + . + . Counter Input HOME + + + + . . . . . . . . . . . . . . . . . . . . Counter Output INT . . . . . . . . . . . . . . . . . + . + . + . + Counter Output DIR . . . . . . . . . . . . . . . . + . + . + . + . Counter Output HOME + + + + . . . . . . . . . . . . . . . . . . . . DC Motor VEL . . . . + + + + . . . . . . . . . . . . . . . . DC Motor DIR . . . . + + + + + + + + . . . . . . . . . . . . PPM Input . . . . . . . . . . . . . . . . . . . . . . . + Channel Status: 0: Digital Output = 0 1: Digital Output = 1 2: Digital Input = 1 3: Digital Input = 1 4: Servo = 92 5: Digital Input = 1 6: Digital Input = 1 7: Servo = 124 8: Digital Input = 1 9: Digital Input = 1 10: Digital Input = 1 11: Digital Input = 1 12: Analog Input = 134 13: Digital Input = 1 14: Digital Input = 1 15: Analog Input = 133 16: Digital Input = 1 17: Digital Input = 1 18: Digital Input = 1 19: Digital Input = 1 20: Digital Input = 1 21: Digital Input = 1 22: Digital Input = 1 23: Digital Input = 1 Namespaces ~~~~~~~~~~ Namespace 0: bcs.core ~~~~~~~~~~~~~~~~~~~~~ _png GET() -> POST() Ping the device _nms GET(byte) -> POST(asciiz, byte) Get the number of namespaces. Get the description of namespace. Namespace 1: bcs.rpc ~~~~~~~~~~~~~~~~~~~~ _rpc GET(byte, byte) -> POST(byte, byte, byte, asciiz) Get number of methods (RPCs) and RPC value by namespace index and method index. args GET(byte, byte) -> POST(byte, byte, byte, byte[], byte, byte[]) Get number and types of arguments for a method and it's response by namespace index and method index. Namespace 2: bcs.io ~~~~~~~~~~~~~~~~~~~ gchc GET() -> POST(int) Get number of i/o channels. gcml GET(byte) -> POST(byte[]) Get a list of channel modes. gchm GET(byte) -> POST(byte, byte) Get channel mode. gacm GET() -> POST(byte[]) Get current modes for all channels. gchv GET(byte) -> POST(byte, int) Get channel value. gacv GET() -> POST(int[]) Get current values of all channels. asyn GET(byte) -> POST(byte, byte) Query whether the channel can generate asynchronous data (counter and servo modes). strm GET(byte) -> POST(byte, byte[]) Read data from input stream. (UART receive, SPI receive, PPM input) strm POST(byte, byte[]) -> POST(byte, byte) Write data to output stream. (UART transmit, SPI transmit, PPM configuration) schv POST(byte, int, int) -> POST(byte, byte) Set channel value. Third parameter is time in milliseconds, for counter output. schv CRITICAL(byte, int[]) -> POST() Set channel value (deprecated version). sacv POST(int, int[]) -> POST(int[]) Set values of all channels. First parameter is time in milliseconds, for counter output. cchn CRITICAL(byte, bool, int[]) -> POST(int[]) Configure channel. Looks buggy. asyn CRITICAL(pin: byte, mode: byte, time: int, value: int, edge: byte) -> POST() Set the pin to advanced async mode. Parameters: pin - channel number mode - one of AUTOSAMP, NOTEQUAL, DEADBAND or THRESHHOLD time - value - for THRESHOLD mode edge - for THRESHOLD mode Namespace 3: bcs.io.setmode ~~~~~~~~~~~~~~~~~~~~~~~~~~~ schm POST(byte, byte, byte) -> POST(byte[]) Set channel mode. Third parameter ignored. Return a list of all channel modes. sacm POST(byte[]) -> POST(byte[]) Set all channel modes. Return a list of all channel modes. Namespace 4: neuronrobotics.dyio ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ _rev GET() -> POST(byte, byte, byte, byte, byte, byte) Get firmware revision numbers. _pwr GET() -> POST(byte, byte, int16, bool) Get external power input voltage and power source for right and left rails. _mac CRITICAL(byte, byte, byte, byte, byte, byte) -> POST(byte, byte) _pwr CRITICAL(byte) -> POST(byte, byte) Namespace 5: bcs.pid ~~~~~~~~~~~~~~~~~~~~ apid GET() -> POST(int[]) _pid GET(byte) -> POST(byte, int) cpid GET(byte) -> POST(byte, byte, byte, byte, f100, f100, f100, int, byte, byte, fixed, fixed, fixed) cpdv GET(byte) -> POST(byte, f100, f100) gpdc GET() -> POST(int) apid POST(int, int[]) -> STATUS(byte, byte) _pid POST(byte, int, int) -> STATUS(byte, byte) _vpd POST(byte, int, int) -> STATUS(byte, byte) rpid POST(byte, int) -> STATUS(byte, byte) kpid CRITICAL() -> STATUS(byte, byte) cpid CRITICAL(byte, byte, byte, byte, f100, f100, f100, int, byte, byte, fixed, fixed, fixed) -> STATUS(byte, byte) cpdv CRITICAL(byte, f100, f100) -> STATUS(byte, byte) acal CRITICAL(byte) -> STATUS(byte, byte) Namespace 6: bcs.pid.dypid ~~~~~~~~~~~~~~~~~~~~~~~~~~ dpid GET(byte) -> POST(byte, byte, byte, byte, byte) dpid CRITICAL(byte, byte, byte, byte, byte) -> POST() Namespace 7: bcs.safe ~~~~~~~~~~~~~~~~~~~~~ safe GET() -> POST(byte, int16) safe POST(byte, int16) -> POST(byte, byte)
About
Simple C library for access to DyIO robot controller.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published