Difference between revisions of "Component: DMX 512 Slave (Comms: System)"

From Flowcode Help
Jump to navigationJump to search
(XML import - Pre 8.0 release)
Line 1: Line 1:
 
+
{| style="width:50%"
 
 
{| width="50%"
 
 
|-
 
|-
| width="20%" style="color: gray;" | Author
+
| width="20%" style="color:gray;" | Author
 
| MatrixTSL
 
| MatrixTSL
 
|-
 
|-
| width="20%" style="color: gray;" | Version
+
| width="20%" style="color:gray;" | Version
| 2.0 (Release)
+
| 2.0
 
|-
 
|-
| width="20%" style="color: gray;" | Category
+
| width="20%" style="color:gray;" | Category
 
| Comms: System
 
| Comms: System
 
|}
 
|}
  
  
 +
==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.
 +
 +
==Detailed description==
  
==[[File:Component Icon 1be0ac44_3521_402e_a8b7_1faf86c09560.png|Image]] DMX_512 Slave component==
+
''No detailed description exists yet for this 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.
 
  
 
==Examples==
 
==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.
 
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}}
 
{{Fcfile|DMX_Master_Example1.fcfx|DMX Master Example1}}
Line 29: Line 29:
 
==Downloadable macro reference==
 
==Downloadable macro reference==
  
===<span style="font-weight: normal;"><u><tt>GetDataChannel</tt></u></span>===
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
Gets the data byte from a data channel
+
|-
 +
| 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&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| 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''
 +
|}
  
'''Parameters'''
 
  
:[[Variable Types|UINT]] ''Channel''
+
{| 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;" | '''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.&nbsp;
 +
|-
 +
|-
 +
| 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&nbsp;
 +
|-
 +
| 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''
 +
|}
  
  
'''Return value'''
+
{| 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.&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
:[[Variable Types|BYTE]]
 
  
 +
{| 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.&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
===<span style="font-weight: normal;"><u><tt>ReceiveDataChain</tt></u></span>===
 
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.
+
{| 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;" | '''GetError'''
 +
|-
 +
| colspan="2" | Checks for any errors and returns the error code. 1=ModuleBusy, 2=SleepMode, 3=SerialError, 4=ChecksumError, 5=TrackOutOfScope, 6=TrackNotFound, 7=InsertionError, 8=SDFail, 10=Sleep&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
'''Parameters'''
 
  
:[[Variable Types|BYTE]] ''Timeout''
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
::0 = Don't wait, 1 - 254 = 1ms - 254ms, 255 = Wait forever
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WhilePlaying'''
 +
|-
 +
| colspan="2" | Blocking function that waits for module to stop being busy. Returns true if the module is still busy and the timeout period has passed.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Timeout
 +
|-
 +
| colspan="2" | Number of milliseconds to wait, 0=WaitForever&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -  
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
  
'''Return value'''
+
{| 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;" | '''IsPlaying'''
 +
|-
 +
| colspan="2" | Checks to see if the last played track is still playing&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
:[[Variable Types|BYTE]]
 
  
 +
{| 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;" | '''GetReplyByte'''
 +
|-
 +
| colspan="2" | Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Index
 +
|-
 +
| colspan="2" | Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB&nbsp;
 +
|-
 +
| 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''
 +
|}
  
===<span style="font-weight: normal;"><u><tt>Initialise</tt></u></span>===
 
Configures the UART serial interface.
 
  
'''Parameters'''
+
{| 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;" | '''SkipTrack'''
 +
|-
 +
| colspan="2" | Jump to the next or previous track&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:]] -
 +
| width="90%" | Direction
 +
|-
 +
| colspan="2" | 0=Next, 1=Previous&nbsp;
 +
|-
 +
| 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''
 +
|}
  
:''This macro has no parameters''
 
  
 +
{| 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;" | '''PlayTrack'''
 +
|-
 +
| colspan="2" | Plays track from the selected folder. MP3 & Advert folder track numbers should be 4 characters long e.g. 0001 any name.mp3, Other folder track numbers should be 3 characters long e.g. 001 Any name.mp3, Root the Track played in placement order.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Directory
 +
|-
 +
| colspan="2" | 0=Root, 1=Folder "01" - 99=Folder "99", 100=MP3, 101=Advert&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 +
| width="90%" | Track
 +
|-
 +
| colspan="2" | Track number 1="001*.MP3" / "0001*.MP3", 100="100*.MP3" / "0100*.MP3"&nbsp;
 +
|-
 +
| 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''
 +
|}
  
'''Return value'''
 
  
:''This call does not return a value''
+
{| 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" | Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros.&nbsp;
 +
|-
 +
|-
 +
| 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;" | '''ReadAnalogAsInt'''
 +
|-
 +
| colspan="2" | Reads one of the analogue components as an Integer value&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Channel
 +
|-
 +
| colspan="2" | 0 = LDR, 1 = POT&nbsp;
 +
|-
 +
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:]] -
 +
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 +
|}
  
==Simulation macro reference==
 
  
''This component does not contain any simulation macros''
+
{| 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;" | '''RemapCharacter'''
 +
|-
 +
| colspan="2" | Assigns a remap character allowing the PrintString function to automatically swap between pre-defined characters.  The characters can be custom (in the range 0-9) or can point to an existing character in the LCD character map.&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | RemapIdx
 +
|-
 +
| colspan="2" | Remap Index, Range: 0 to (Remap Characters - 1)&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | SearchCharacter
 +
|-
 +
| colspan="2" | Character to look for a replace&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | ReplacementCharacter
 +
|-
 +
| colspan="2" | New character value to use in place of the search character.&nbsp;
 +
|-
 +
| 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''
 +
|}
  
  
==Property reference==
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
<span style="font-weight: normal;"><u>Channel</u></span>
+
|-
 +
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 +
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Start'''
 +
|-
 +
| colspan="2" | Startup routine required by the hardware device. Automatically clears the display after initialising.&nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_uart::CHANNEL''.
 
  
UART Channel selector
+
{| 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&nbsp;
 +
|-
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | Port
 +
|-
 +
| colspan="2" | 0 = PortA, 1 = PortB&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | LED
 +
|-
 +
| colspan="2" | 0 = LED0, 7 = LED7&nbsp;
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 +
| width="90%" | State
 +
|-
 +
| colspan="2" | &nbsp;
 +
|-
 +
| 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''
 +
|}
  
Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels.
 
  
Hardware channels use the selected peripheral on-board the target microcontroller.
+
{| 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" | Must be called before any other CAN component macros to enable and initialise the CAN peripheral. &nbsp;
 +
|-
 +
|-
 +
| 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''
 +
|}
  
<span style="font-weight: normal;"><u>RX</u></span>
 
  
This property is of type ''Single digital pin'' and can be referenced with the variable name ''cal_uart::RX''.
 
  
Pin to be used for Receive data
 
  
<span style="font-weight: normal;"><u>Baud Options</u></span>
+
==Property reference==
  
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_uart::BAUD_LIST''.
+
{| class="wikitable" style="width:60%; background-color:#FFFFFF;"
 
+
|-
Baud rate option selector
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties'''  
<span style="font-weight: normal;"><u>Baud Rate</u></span>
+
|-
 
+
|-
This property is of type ''Signed integer'' and can be referenced with the variable name ''cal_uart::BAUD''.
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | Channel
''<span style="color:red;">No additional information</span>''
+
|-
 
+
| colspan="2" | UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller.&nbsp;
 
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
<span style="font-weight: normal;"><u>Data Channels</u></span>
+
| width="90%" | RX
 
+
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''DataChannels''.
+
| colspan="2" | Pin to be used for Receive data&nbsp;
 
+
|-
Number of data bytes to receive from the master, Max 512 bytes per transmission.
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
+
| width="90%" | Baud Options
24 Bytes minimum from Master to match minimum 1204us timing requirements, not all channels need to be used.
+
|-
 
+
| colspan="2" | Baud rate option selector&nbsp;
<span style="font-weight: normal;"><u>Start Channel</u></span>
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''StartChannel''.
+
| width="90%" | Baud Rate
 
+
|-
Channel from the master which we want to start taking our data channels
+
| colspan="2" | &nbsp;
 
+
|-
<span style="font-weight: normal;"><u>Use Start Code</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
+
| width="90%" | Data Channels
This property is of type ''True or false'' and can be referenced with the variable name ''UseStart''.
+
|-
 
+
| colspan="2" | Number of data bytes to receive from the master, Max 512 bytes per transmission. 24 Bytes minimum from Master to match minimum 1204us timing requirements, not all channels need to be used.&nbsp;
Do we wait for the start code or simply begin receiving data?
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
<span style="font-weight: normal;"><u>Start Code</u></span>
+
| width="90%" | Start Channel
 
+
|-
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''StartCode''.
+
| colspan="2" | Channel from the master which we want to start taking our data channels&nbsp;
 
+
|-
Start code value to listen out for, range 0-255
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
+
| width="90%" | Use Start Code
<span style="font-weight: normal;"><u>Scope Traces</u></span>
+
|-
 
+
| colspan="2" | Do we wait for the start code or simply begin receiving data?&nbsp;
This property is of type ''True or false'' and can be referenced with the variable name ''cal_uart::ScopeTraces''.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
Selects if the scope traces are automatically added to the data recorder window or not.
+
| width="90%" | Start Code
 
+
|-
     Simulation - draws an approximation of the UART data onto the scope trace.
+
| colspan="2" | Start code value to listen out for, range 0-255&nbsp;
 
+
|-
     ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD.
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''  
<span style="font-weight: normal;"><u>Console Data</u></span>
+
|-
 
+
|-
This property is of type ''True or false'' and can be referenced with the variable name ''cal_uart::ConsoleData''.
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Simulations'''
Selects if the console data is automatically generated or not
+
|-
 
+
|-
<span style="font-weight: normal;"><u>Console Columns</u></span>
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
+
| width="90%" | Scope Traces
This property is of type ''Unsigned integer'' and can be referenced with the variable name ''cal_uart::ConsoleColumns''.
+
|-
 
+
| colspan="2" | Selects if the scope traces are automatically added to the data recorder window or not.    Simulation - draws an approximation of the UART data onto the scope trace.    ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD.&nbsp;
Number of characters that can be displayed on a single line of the console.
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
<span style="font-weight: normal;"><u>Data Source</u></span>
+
| width="90%" | Console Data
 
+
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''cal_uart::DataSource''.
+
| colspan="2" | Selects if the console data is automatically generated or not&nbsp;
 
+
|-
Simulation data source used to allow the component to connect to various remote devices
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
+
| width="90%" | Console Columns
     Nothing - Simulation data is ignored
+
|-
 
+
| colspan="2" | Number of characters that can be displayed on a single line of the console.&nbsp;
     COM port - Routes the communication data to and from a physical or virtual COM port  
+
|-
 
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
    Injector - Routes the communication data via a data injector component on the Panel.
+
| width="90%" | Data Source
 +
|-
 +
| colspan="2" | Simulation data source used to allow the component to connect to various remote devices    Nothing - Simulation data is ignored    COM port - Routes the communication data to and from a physical or virtual COM port     Injector - Routes the communication data via a data injector component on the Panel.&nbsp;
 +
|}

Revision as of 16:53, 16 November 2021

Author MatrixTSL
Version 2.0
Category Comms: System


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.

Detailed description

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. FC6 Icon.png 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. FC6 Icon.png DMX Slave Example1

Downloadable macro reference

Fc9-comp-macro.png GetDataChannel
Gets the data byte from a data channel 
Fc9-u16-icon.png - UINT Channel
 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png ReceiveDataChain
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. 
Fc9-u8-icon.png - BYTE Timeout
0 = Don't wait, 1 - 254 = 1ms - 254ms, 255 = Wait forever 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png Initialise
Configures the UART serial interface. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
Configures the UART serial interface. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png GetError
Checks for any errors and returns the error code. 1=ModuleBusy, 2=SleepMode, 3=SerialError, 4=ChecksumError, 5=TrackOutOfScope, 6=TrackNotFound, 7=InsertionError, 8=SDFail, 10=Sleep 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png WhilePlaying
Blocking function that waits for module to stop being busy. Returns true if the module is still busy and the timeout period has passed. 
Fc9-u16-icon.png - UINT Timeout
Number of milliseconds to wait, 0=WaitForever 
[[File:]] - Return


Fc9-comp-macro.png IsPlaying
Checks to see if the last played track is still playing 
[[File:]] - Return


Fc9-comp-macro.png GetReplyByte
Reads a single byte from the last reply. Each reply contains 4 bytes starting with the command code. 
Fc9-u8-icon.png - BYTE Index
Range: 0-3 / 0=Command, 1=Feedback, 2=Data MSB, 3=Data LSB 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png SkipTrack
Jump to the next or previous track 
[[File:]] - Direction
0=Next, 1=Previous 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png PlayTrack
Plays track from the selected folder. MP3 & Advert folder track numbers should be 4 characters long e.g. 0001 any name.mp3, Other folder track numbers should be 3 characters long e.g. 001 Any name.mp3, Root the Track played in placement order. 
Fc9-u8-icon.png - BYTE Directory
0=Root, 1=Folder "01" - 99=Folder "99", 100=MP3, 101=Advert 
Fc9-u16-icon.png - UINT Track
Track number 1="001*.MP3" / "0001*.MP3", 100="100*.MP3" / "0100*.MP3" 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
Sets up the UART and does some housekeeping. Must be called before calling any of the other component macros. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png ReadAnalogAsInt
Reads one of the analogue components as an Integer value 
Fc9-u8-icon.png - BYTE Channel
0 = LDR, 1 = POT 
[[File:]] - Return


Fc9-comp-macro.png RemapCharacter
Assigns a remap character allowing the PrintString function to automatically swap between pre-defined characters. The characters can be custom (in the range 0-9) or can point to an existing character in the LCD character map. 
Fc9-u8-icon.png - BYTE RemapIdx
Remap Index, Range: 0 to (Remap Characters - 1) 
Fc9-u8-icon.png - BYTE SearchCharacter
Character to look for a replace 
Fc9-u8-icon.png - BYTE ReplacementCharacter
New character value to use in place of the search character. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Start
Startup routine required by the hardware device. Automatically clears the display after initialising. 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png SetLEDState
Sets the state of a single LED 
Fc9-u8-icon.png - BYTE Port
0 = PortA, 1 = PortB 
Fc9-u8-icon.png - BYTE LED
0 = LED0, 7 = LED7 
Fc9-u8-icon.png - BYTE State
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png Initialise
Must be called before any other CAN component macros to enable and initialise the CAN peripheral.  
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-type-16-icon.png Channel
UART Channel selector Software channels are bit banged using generic I/O pins but are not as reliable as hardware channels. Hardware channels use the selected peripheral on-board the target microcontroller. 
Fc9-type-5-icon.png RX
Pin to be used for Receive data 
Fc9-type-16-icon.png Baud Options
Baud rate option selector 
Fc9-type-14-icon.png Baud Rate
 
Fc9-type-21-icon.png Data Channels
Number of data bytes to receive from the master, Max 512 bytes per transmission. 24 Bytes minimum from Master to match minimum 1204us timing requirements, not all channels need to be used. 
Fc9-type-21-icon.png Start Channel
Channel from the master which we want to start taking our data channels 
Fc9-type-7-icon.png Use Start Code
Do we wait for the start code or simply begin receiving data? 
Fc9-type-21-icon.png Start Code
Start code value to listen out for, range 0-255 
Fc9-conn-icon.png Connections
Fc9-conn-icon.png Simulations
Fc9-type-7-icon.png Scope Traces
Selects if the scope traces are automatically added to the data recorder window or not. Simulation - draws an approximation of the UART data onto the scope trace. ICT - sets up the scope trace for incoming data and adds UART packet decoding at the correct BAUD. 
Fc9-type-7-icon.png Console Data
Selects if the console data is automatically generated or not 
Fc9-type-21-icon.png Console Columns
Number of characters that can be displayed on a single line of the console. 
Fc9-type-16-icon.png Data Source
Simulation data source used to allow the component to connect to various remote devices Nothing - Simulation data is ignored COM port - Routes the communication data to and from a physical or virtual COM port Injector - Routes the communication data via a data injector component on the Panel.