Difference between revisions of "Component: Visi (4DSystems) (Comms: System)"
(XML import) |
|||
(9 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {| style="width:50%" | |
− | |||
− | {| | ||
|- | |- | ||
− | | width="20%" style="color: gray;" | Author | + | | width="20%" style="color:gray;" | Author |
| Matrix Ltd. | | Matrix Ltd. | ||
|- | |- | ||
− | | width="20%" style="color: gray;" | Version | + | | width="20%" style="color:gray;" | Version |
− | | | + | | 2.0 |
|- | |- | ||
− | | width="20%" style="color: gray;" | Category | + | | width="20%" style="color:gray;" | Category |
| Comms: System | | Comms: System | ||
|} | |} | ||
+ | ==Visi (4DSystems) component== | ||
+ | A way of interacting with the VISI interface designed by 4D systems. VISI firmware must be pre-loaded onto the SD card connected to the display to allow everything to work correctly. | ||
− | == | + | ==Component Pack== |
− | |||
− | |||
− | + | COMMSA | |
− | |||
+ | ==Detailed description== | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | '' | + | ''No detailed description exists yet for this component'' |
− | + | ==Examples== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | These examples are designed to work with a 4D systems display pre-programmed with the VISI Genie runtime files. These files are also included in the example archives to allow you to easily replicate the project. | |
− | |||
− | + | The 4D display can either be connected to the PC running Flowcode using the 4D USB cable or connected to an embedded Microcontroller using a hardware or software UART. If you are using the Flowcode simulation to communicate with the Visi component then be sure to set the Visi COM port property to the COM port assigned by Windows to the 4D USB Cable. | |
− | + | The Console window should also show some helpful information to aid in debugging any problems. | |
− | |||
− | |||
+ | The first example demonstrates a simple rocker switch Visi component. | ||
+ | {{fcfile|RockerSwitch.zip|RockerSwitch}} | ||
+ | The second example demonstrates controlling the colour of an RGB LED using the Visi colour picker component. | ||
+ | {{fcfile|ColourPicker.zip|ColourPicker}} | ||
− | + | ==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;" | '''VisiWriteString''' | ||
+ | |- | ||
+ | | colspan="2" | Writes a string to a specific Visi object. Returns 0 for a succesful write operation. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | StringIndex | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | StringData | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | === | + | {| 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;" | '''VisiWriteObject''' | ||
+ | |- | ||
+ | | colspan="2" | Writes a value to a specific Visi object. Returns 0 for a succesful write operation. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | ObjectID | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | ObjectIndex | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Value | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | ''' | + | {| 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;" | '''ChangeHWBaud''' | ||
+ | |- | ||
+ | | colspan="2" | Changes the hardware UART baud rate allowing for dynamic speed changes. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | NewBaud | ||
+ | |- | ||
+ | | colspan="2" | 0=1200, 1=2400, 2=4800, 3=9600, 4=19200, 5=38400, 6=57600, 7=115200 | ||
+ | |- | ||
+ | | 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;" | '''VisiReceive''' | ||
+ | |- | ||
+ | | colspan="2" | Waits for an incoming Visi Report Object or Report Event to be sent from the display. A detected incoming message returns 0 and can be read using the VisiReadByteFromMessage macro. | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''VisiWriteContrast''' | ||
+ | |- | ||
+ | | colspan="2" | Updates the display contrast. Returns 0 for a succesful write operation. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Contrast | ||
+ | |- | ||
+ | | colspan="2" | Range 0-15, 0=Backlight Off | ||
+ | |- | ||
+ | | 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;" | '''VisiWriteVolume''' | ||
+ | |- | ||
+ | | colspan="2" | Updates the display volume. Returns 0 for a succesful write operation. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Volume | ||
+ | |- | ||
+ | | colspan="2" | Range 8-127 | ||
+ | |- | ||
+ | | 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;" | '''VisiReadByteFromMessage''' | ||
+ | |- | ||
+ | | colspan="2" | Reads a byte from a succesful VisiReceive macro. Index: 0=Command, 1=ObjectID, 2=ObjectIndex, 3=ValueMSB, 4=ValueLSB | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Index | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
+ | {| 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;" | '''VisiReadObject''' | ||
+ | |- | ||
+ | | colspan="2" | Reads the value from a specific Visi object. Returns 0 for a sucessful read. Use the VisiReadByteFromMessage macro to pull out the incoming data. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | ObjectID | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | ObjectIndex | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
− | |||
− | : | + | {| 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 RS232 peripheral, must be called at the start of your program or at least before you start calling any other RS232 macros. | |
− | + | |- | |
− | + | |- | |
− | + | | 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'' | |
− | + | |} | |
− | |||
− | |||
− | |||
− | : | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Sets up the RS232 peripheral, must be called at the start of your program or at least before you start calling any other RS232 macros. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
− | |||
− | = | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Line 173: | Line 239: | ||
==Property reference== | ==Property reference== | ||
− | |||
− | + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |
− | + | |- | |
− | + | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] | |
− | + | | 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;" | Comms Settings | |
− | + | |- | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Channel | |
− | + | |- | |
− | + | | 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. | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | |
− | + | | width="90%" | Baud Options | |
− | + | |- | |
− | + | | colspan="2" | Baud rate option selector | |
− | + | |- | |
− | Receive | + | | width="10%" align="center" | [[File:Fc9-type-14-icon.png]] |
− | + | | width="90%" | Baud Rate | |
− | + | |- | |
− | + | | colspan="2" | | |
− | + | |- | |
− | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |
− | Label shown on the communications flasher component | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections |
− | + | |- | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | TX | |
− | + | |- | |
− | + | | colspan="2" | Pin to be used for Transmit data | |
− | + | |- | |
− | + | | width="10%" align="center" | [[File:Fc9-type-5-icon.png]] | |
− | + | | width="90%" | RX | |
− | + | |- | |
− | + | | colspan="2" | Pin to be used for Receive data | |
− | Simulation | + | |- |
+ | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
+ | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]] | ||
+ | | width="90%" | Label | ||
+ | |- | ||
+ | | colspan="2" | Label shown on the communications flasher component | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Scope Traces | ||
+ | |- | ||
+ | | 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. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
+ | | width="90%" | Console Data | ||
+ | |- | ||
+ | | colspan="2" | Selects if the console data is automatically generated or not | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
+ | | width="90%" | Console Columns | ||
+ | |- | ||
+ | | colspan="2" | Number of characters that can be displayed on a single line of the console. | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
+ | | 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. | ||
+ | |} |
Latest revision as of 17:24, 9 November 2022
Author | Matrix Ltd. |
Version | 2.0 |
Category | Comms: System |
Contents
Visi (4DSystems) component
A way of interacting with the VISI interface designed by 4D systems. VISI firmware must be pre-loaded onto the SD card connected to the display to allow everything to work correctly.
Component Pack
COMMSA
Detailed description
No detailed description exists yet for this component
Examples
These examples are designed to work with a 4D systems display pre-programmed with the VISI Genie runtime files. These files are also included in the example archives to allow you to easily replicate the project.
The 4D display can either be connected to the PC running Flowcode using the 4D USB cable or connected to an embedded Microcontroller using a hardware or software UART. If you are using the Flowcode simulation to communicate with the Visi component then be sure to set the Visi COM port property to the COM port assigned by Windows to the 4D USB Cable.
The Console window should also show some helpful information to aid in debugging any problems.
The first example demonstrates a simple rocker switch Visi component.
RockerSwitch
The second example demonstrates controlling the colour of an RGB LED using the Visi colour picker component.
ColourPicker
Downloadable macro reference
![]() |
VisiWriteString |
Writes a string to a specific Visi object. Returns 0 for a succesful write operation. | |
![]() |
StringIndex |
![]() |
StringData |
![]() |
Return |
![]() |
VisiWriteObject |
Writes a value to a specific Visi object. Returns 0 for a succesful write operation. | |
![]() |
ObjectID |
![]() |
ObjectIndex |
![]() |
Value |
![]() |
Return |
![]() |
ChangeHWBaud |
Changes the hardware UART baud rate allowing for dynamic speed changes. | |
![]() |
NewBaud |
0=1200, 1=2400, 2=4800, 3=9600, 4=19200, 5=38400, 6=57600, 7=115200 | |
![]() |
Return |
![]() |
VisiWriteContrast |
Updates the display contrast. Returns 0 for a succesful write operation. | |
![]() |
Contrast |
Range 0-15, 0=Backlight Off | |
![]() |
Return |
![]() |
VisiWriteVolume |
Updates the display volume. Returns 0 for a succesful write operation. | |
![]() |
Volume |
Range 8-127 | |
![]() |
Return |
![]() |
VisiReadByteFromMessage |
Reads a byte from a succesful VisiReceive macro. Index: 0=Command, 1=ObjectID, 2=ObjectIndex, 3=ValueMSB, 4=ValueLSB | |
![]() |
Index |
![]() |
Return |
![]() |
Initialise |
Sets up the RS232 peripheral, must be called at the start of your program or at least before you start calling any other RS232 macros. | |
![]() |
Return |