|
|
(5 intermediate revisions by 2 users not shown) |
Line 14: |
Line 14: |
| ==DMX-512 Slave component== | | ==DMX-512 Slave component== |
| A serial based communications protocol designed for controlling theatrical equipment such as dimmers, fog machines and intelligent lights. DMX-512 Slave devices are daisy chained together with a final 180R terminating resistor at the end of the chail. DMX requires the signal to be level shifted from VCC and GND to +2.5V and -2.5V. | | A serial based communications protocol designed for controlling theatrical equipment such as dimmers, fog machines and intelligent lights. DMX-512 Slave devices are daisy chained together with a final 180R terminating resistor at the end of the chail. DMX requires the signal to be level shifted from VCC and GND to +2.5V and -2.5V. |
| + | |
| + | ==Component Pack== |
| + | |
| + | COMMSC |
| | | |
| ==Detailed description== | | ==Detailed description== |
Line 19: |
Line 23: |
| | | |
| | | |
− | ''No detailed description exists yet for this component''
| |
| | | |
− | ==Examples==
| |
| | | |
| | | |
| | | |
| | | |
− | DMX Master Example, reads the value of two ports using switch arrays to set the values and then transmits the data in a DMX packet.
| |
− | {{Fcfile|DMX_Master_Example1.fcfx|DMX Master Example1}}
| |
− | DMX Slave Example, captures the first DMX data channel sent from the Master and outputs the value onto a Port using the LED array component.
| |
− | {{Fcfile|DMX_Slave_Example1.fcfx|DMX Slave Example1}}
| |
| | | |
− | ==Downloadable macro reference==
| |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetDataChannel'''
| |
− | |-
| |
− | | colspan="2" | Gets the data byte from a data channel
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | Channel
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| + | ''No detailed description exists yet for this component'' |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | ==Examples== |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveDataChain'''
| |
− | |-
| |
− | | colspan="2" | Waits for a BREAK, MAB and StartCode followed by the contents of the data channels. Returns 0 to indicate a timeout and 1 to indicate succesful reception.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" | Timeout
| |
− | |-
| |
− | | colspan="2" | 0 = Don't wait, 1 - 254 = 1ms - 254ms, 255 = Wait forever
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
| |
− | |-
| |
− | | colspan="2" | Configures the UART serial interface.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Send'''
| |
− | |-
| |
− | | colspan="2" | Send the Character
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | Char
| |
− | |-
| |
− | | colspan="2" | The Character to send
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetConsoleHandle'''
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendByteArray'''
| |
− | |-
| |
− | | colspan="2" | Transmits an array of bytes via the UART peripheral
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" | Data
| |
− | |-
| |
− | | colspan="2" | Data to transmit
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | NumBytes
| |
− | |-
| |
− | | colspan="2" | Number of bytes to send from the array
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Init'''
| |
− | |-
| |
− | | colspan="2" | Initialize the component with the specified properties
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | DMX Slave Example, captures the first DMX data channel sent from the Master and outputs the value onto a Port using the LED array component. |
− | |-
| + | {{Fcfile|DMX_Slave_Example1.fcfx|DMX Slave Example1}} |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Uninit'''
| |
− | |-
| |
− | | colspan="2" | Un-initialize the UART and release the resources
| |
− | |-
| |
− | |- | |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |} | |
| | | |
| | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| + | For DMX 512 Master example see [[Component: DMX 512 Master (Comms: System)]] |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByteArray'''
| |
− | |-
| |
− | | colspan="2" | Receives an array of bytes and returns the number of bytes received.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" | Data
| |
− | |-
| |
− | | colspan="2" | A byte array variable to hold the received data
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | NumBytes
| |
− | |-
| |
− | | colspan="2" | Maximum number of bytes to try and receive
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | Timeout
| |
− | |-
| |
− | | colspan="2" | Max amount of time in ms to wait between bytes
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
| | | |
| + | ==Downloadable macro reference== |
| | | |
| {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" |
| |- | | |- |
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveString''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetDataChannel''' |
| |- | | |- |
− | | colspan="2" | Receives a string of bytes and returns the number of bytes received. | + | | colspan="2" | Gets the data byte from a data channel |
| |- | | |- |
| |- | | |- |
− | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | + | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT |
− | | width="90%" | StringData | + | | width="90%" | Channel |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | NumBytes
| |
− | |-
| |
− | | colspan="2" | Maximum number of bytes to try and receive
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
| |
− | | width="90%" | Timeout
| |
− | |-
| |
− | | colspan="2" | Max amount of time in ms to wait between bytes
| |
| |- | | |- |
| | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE | | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE |
Line 221: |
Line 75: |
| |- | | |- |
| | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Start''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveDataChain''' |
| |- | | |- |
− | | colspan="2" | Startup routine required by the hardware device. Automatically clears the display after initialising. | + | | colspan="2" | Waits for a BREAK, MAB and StartCode followed by the contents of the data channels. Returns 0 to indicate a timeout and 1 to indicate succesful reception. |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
− | | |
− | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SetLEDState'''
| |
− | |-
| |
− | | colspan="2" | Sets the state of a single LED
| |
| |- | | |- |
| |- | | |- |
| | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
− | | width="90%" | Port | + | | width="90%" | Timeout |
| |- | | |- |
− | | colspan="2" | 0 = PortA, 1 = PortB | + | | colspan="2" | 0 = Don't wait, 1 - 254 = 1ms - 254ms, 255 = Wait forever |
| |- | | |- |
− | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE |
− | | width="90%" | LED
| |
− | |-
| |
− | | colspan="2" | 0 = LED0, 7 = LED7
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" | State
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| |
− | | width="90%" style="border-top: 2px solid #000;" | ''Return''
| |
− | |}
| |
− | | |
− | | |
− | {| class="wikitable" style="width:60%; background-color:#FFFFFF;"
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetRxIdent'''
| |
− | |-
| |
− | | colspan="2" | Gets the Rx ID as a Integer Standard and Extended IDs.
| |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| |
− | | width="90%" | Buffer
| |
− | |-
| |
− | | colspan="2" |
| |
− | |-
| |
− | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u32-icon.png]] - ULONG
| |
| | width="90%" style="border-top: 2px solid #000;" | ''Return'' | | | width="90%" style="border-top: 2px solid #000;" | ''Return'' |
| |} | | |} |
Line 282: |
Line 95: |
| | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' |
| |- | | |- |
− | | colspan="2" | Must be called before any other CAN component macros to enable and initialise the CAN peripheral. | + | | colspan="2" | Configures the UART serial interface. |
| |- | | |- |
| |- | | |- |
Line 298: |
Line 111: |
| | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] | | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] |
| | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' | | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' |
| + | |- |
| + | |- |
| + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] |
| + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Serial Properties |
| |- | | |- |
| |- | | |- |
Line 319: |
Line 136: |
| |- | | |- |
| | colspan="2" | | | | colspan="2" | |
| + | |- |
| + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] |
| + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | DMX Properties |
| + | |- |
| |- | | |- |
| | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] |
Line 340: |
Line 161: |
| | colspan="2" | Start code value to listen out for, range 0-255 | | | colspan="2" | Start code value to listen out for, range 0-255 |
| |- | | |- |
− | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]] | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections''' | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation |
− | |-
| |
− | |-
| |
− | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| |
− | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
| |
| |- | | |- |
| |- | | |- |