Difference between revisions of "Component: MQTT Client (Comms: IoT/Cloud)"
(Created page with "{| style="width:50%" |- | width="20%" style="color:gray;" | Author | Matrix TSL |- | width="20%" style="color:gray;" | Version | 1.1 |- | width="20%" style="color:gray...") |
|||
Line 16: | Line 16: | ||
==Detailed description== | ==Detailed description== | ||
+ | |||
+ | |||
''No detailed description exists yet for this component'' | ''No detailed description exists yet for this component'' | ||
==Examples== | ==Examples== | ||
+ | |||
+ | |||
Line 311: | Line 315: | ||
|- | |- | ||
| colspan="2" | Starts up the MQTT component - call this after initialising the NetworkComms component. | | colspan="2" | Starts up the MQTT component - call this after initialising the NetworkComms component. | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''Initialise''' | ||
+ | |- | ||
+ | | colspan="2" | Sets up the GSM module. Returns 0 for OK, 255 for no reply and 254 for command fail. | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''Left''' | ||
+ | |- | ||
+ | | colspan="2" | Rotates the robot left - waits for the angle to be traversed before returning | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Angle | ||
+ | |- | ||
+ | | colspan="2" | Angle to turn in degrees | ||
+ | |- | ||
+ | | 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;" | '''ReadIR''' | ||
+ | |- | ||
+ | | colspan="2" | Reads an IR sensor 0=Left, 1=FrontLeft, 2=Front, 3=FrontRight, 4=Right, 5=RearRight, 6=Rear, 7=RearLeft | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | index | ||
+ | |- | ||
+ | | colspan="2" | 0=Left, 1=FrontLeft, 2=Front, 3=FrontRight, 4=Right, 5=RearRight, 6=Rear, 7=RearLeft | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| 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;" | '''LCDDrawPixel''' | ||
+ | |- | ||
+ | | colspan="2" | Allows a single pixel on the LCD to be set or cleared | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | X | ||
+ | |- | ||
+ | | colspan="2" | X Pixel 0-127 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Y | ||
+ | |- | ||
+ | | colspan="2" | Y Pixel 0-31 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | State | ||
+ | |- | ||
+ | | colspan="2" | 0=White (Off), 1=Black (On) | ||
+ | |- | ||
+ | | 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;" | '''ServoSetPosition''' | ||
+ | |- | ||
+ | | colspan="2" | Allows one of the servo positions to be assigned | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Channel | ||
+ | |- | ||
+ | | colspan="2" | Range 0-3 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Position | ||
+ | |- | ||
+ | | colspan="2" | Range 0-255 | ||
+ | |- | ||
+ | | 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;" | '''CardBitmap''' | ||
+ | |- | ||
+ | | colspan="2" | Displays a monochrome bitmap read from the card on the LCD | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | X | ||
+ | |- | ||
+ | | colspan="2" | Range 0-127 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Y | ||
+ | |- | ||
+ | | colspan="2" | Range 0-31 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | Filename | ||
+ | |- | ||
+ | | 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;" | '''CardRecordMic''' | ||
+ | |- | ||
+ | | colspan="2" | Records an audio stream on the card from the microphone | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | BitDepth | ||
+ | |- | ||
+ | | colspan="2" | 0=8-bit, 1=16-bit | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | SampleRate | ||
+ | |- | ||
+ | | colspan="2" | Sample Rate 0=8KHz, 1=16KHz | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | RecordTime | ||
+ | |- | ||
+ | | colspan="2" | Time to record for in seconds, Range 0-65535 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | Filename | ||
+ | |- | ||
+ | | 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;" | '''CardOpen''' | ||
+ | |- | ||
+ | | colspan="2" | Attempts to open an existing file on the SD card 255=Error, 1=File not found, 0=Open OK | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | Filename | ||
+ | |- | ||
+ | | 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;" | '''Forwards''' | ||
+ | |- | ||
+ | | colspan="2" | Drives the robot forwards - waits for the distance to be traversed before returning | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Distance | ||
+ | |- | ||
+ | | colspan="2" | Distance in mm | ||
+ | |- | ||
+ | | 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;" | '''ReadBearing''' | ||
+ | |- | ||
+ | | colspan="2" | Reads the compass bearing based on the degrees clockwise from magnetic north. | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''GetConsoleHandle''' | ||
+ | |- | ||
+ | | colspan="2" | Gets the handle to the console allowing data displaying on the panel etc. | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''LCDDrawLine''' | ||
+ | |- | ||
+ | | colspan="2" | Allows a single pixel width line to be drawn on the LCD | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | X1 | ||
+ | |- | ||
+ | | colspan="2" | X Pixel 0-127 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Y1 | ||
+ | |- | ||
+ | | colspan="2" | Y Pixel 0-31 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | X2 | ||
+ | |- | ||
+ | | colspan="2" | X Pixel 0-127 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Y2 | ||
+ | |- | ||
+ | | colspan="2" | Y Pixel 0-31 | ||
+ | |- | ||
+ | | 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;" | '''ServoAutoMoveToPosition''' | ||
+ | |- | ||
+ | | colspan="2" | Allows one of the servo positions to move gradually to a new position | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Channel | ||
+ | |- | ||
+ | | colspan="2" | Range 0-3 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Position | ||
+ | |- | ||
+ | | colspan="2" | Range 0-255 | ||
+ | |- | ||
+ | | 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;" | '''ReadAllValue''' | ||
+ | |- | ||
+ | | colspan="2" | Reads a single value stored from the read all command Index dictates which sensor value to read | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Index | ||
+ | |- | ||
+ | | colspan="2" | 0=SW, 1-8=IR, 9-10=Line, 11=Light, 12=Mic, 13-15=Accel | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| 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;" | '''LCDBacklight''' | ||
+ | |- | ||
+ | | colspan="2" | Allows the LCD backlight brighntess to be adjusted | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Intensity | ||
+ | |- | ||
+ | | colspan="2" | Range 0-100, 0=Off, 1=Min Brightness, 100=Max Brightness | ||
+ | |- | ||
+ | | 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;" | '''LCDDrawRect''' | ||
+ | |- | ||
+ | | colspan="2" | Allows a rectangle to be drawn on the LCD | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | X1 | ||
+ | |- | ||
+ | | colspan="2" | X Pixel 0-127 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Y1 | ||
+ | |- | ||
+ | | colspan="2" | Y Pixel 0-31 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | X2 | ||
+ | |- | ||
+ | | colspan="2" | X Pixel 0-127 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Y2 | ||
+ | |- | ||
+ | | colspan="2" | Y Pixel 0-31 | ||
+ | |- | ||
+ | | 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;" | '''ReadLine''' | ||
+ | |- | ||
+ | | colspan="2" | Reads one of the IR line sensors 0-1 0=Left, 1=Right | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | index | ||
+ | |- | ||
+ | | colspan="2" | 0=Left, 1=Right | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| 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;" | '''ServoDisable''' | ||
+ | |- | ||
+ | | colspan="2" | Allows one of the servo outputs 0-3 to be disabled | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Channel | ||
+ | |- | ||
+ | | colspan="2" | Range 0-3 | ||
+ | |- | ||
+ | | 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;" | '''ServoEnable''' | ||
+ | |- | ||
+ | | colspan="2" | Allows one of the servo outputs 0-3 to be enabled | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Channel | ||
+ | |- | ||
+ | | colspan="2" | Range 0-3 | ||
+ | |- | ||
+ | | 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;" | '''CardReadByte''' | ||
+ | |- | ||
+ | | colspan="2" | Reads a byte from the currently open file. Starts at the beginning of the file and auto increments to the end | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''CardErase''' | ||
+ | |- | ||
+ | | colspan="2" | Attempts to delete an existing file on the SD card 255=Error, 1=File not found, 0=Delete OK | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | Filename | ||
+ | |- | ||
+ | | 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;" | '''CardWriteByte''' | ||
+ | |- | ||
+ | | colspan="2" | Appends a byte to the end of the currently open file | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | Data | ||
+ | |- | ||
+ | | 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;" | '''EncoderRead''' | ||
+ | |- | ||
+ | | colspan="2" | Reads one of the motor encoder counters. Approx 0.328296mm of travel per encoder unit. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | index | ||
+ | |- | ||
+ | | colspan="2" | 0=Left, 1=Right | ||
+ | |- | ||
+ | | 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | {| 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;" | '''SetMotors''' | ||
+ | |- | ||
+ | | colspan="2" | Sets the motor speeds without feedback Range -100 to 100 | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:]] - | ||
+ | | width="90%" | Left | ||
+ | |- | ||
+ | | colspan="2" | Range -100 to 100 | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:]] - | ||
+ | | width="90%" | Right | ||
+ | |- | ||
+ | | colspan="2" | Range -100 to 100 | ||
+ | |- | ||
+ | | 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;" | '''Backwards''' | ||
+ | |- | ||
+ | | colspan="2" | Drives the robot backwards - waits for the distance to be traversed before returning | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | ||
+ | | width="90%" | Distance | ||
+ | |- | ||
+ | | colspan="2" | Distance in mm | ||
+ | |- | ||
+ | | 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;" | '''EncoderReset''' | ||
+ | |- | ||
+ | | colspan="2" | Resets the motor encoder counters | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''LCDVerbose''' | ||
+ | |- | ||
+ | | colspan="2" | Allows the LCD to automatically report the API commands as they get processed. Default - verbose on | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
+ | | width="90%" | State | ||
+ | |- | ||
+ | | colspan="2" | 0=Off 1=On | ||
+ | |- | ||
+ | | 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;" | '''SetProp''' | ||
+ | |- | ||
+ | | colspan="2" | Allows the COM port property to be set from a parent component. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | PropName | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-u32-icon.png]] - ULONG | ||
+ | | width="90%" | PropVal | ||
+ | |- | ||
+ | | 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;" | '''CardInit''' | ||
+ | |- | ||
+ | | colspan="2" | Attempts to startup the SD card 255=No Card, 254=Init Fail, 0=Init OK | ||
+ | |- | ||
+ | |- | ||
+ | | 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;" | '''GetProp''' | ||
+ | |- | ||
+ | | colspan="2" | Allows the property filter for the COM port list to be copied to a parent component. | ||
+ | |- | ||
+ | |- | ||
+ | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | width="90%" | PropName | ||
+ | |- | ||
+ | | colspan="2" | | ||
+ | |- | ||
+ | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING | ||
+ | | 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;" | '''LCDClear''' | ||
+ | |- | ||
+ | | colspan="2" | Clears the LCD | ||
|- | |- | ||
|- | |- |
Revision as of 10:36, 17 November 2021
Author | Matrix TSL |
Version | 1.1 |
Category | Comms: IoT/Cloud |
Contents
MQTT Client component
A component providing access to MQTT IoT client. The client can connect to a MQTT server such as ThingSpeak. Allowing IoT type data to be published and read back.
Detailed description
No detailed description exists yet for this component
Examples
The MQTT component requires connection to a Network Comms component via the "Network Component" property, to provide the bridge for simulated TCP/IP communication.
The Network Comms component can then be linked to an embedded TCP/IP component to provide embedded TCP/IP support.
Here is a typical setup for using MQTT on a Raspberry Pi.
Local Weather
A simple example demonstrating how to use MQTT with Flowcode SCADA to get the local weather conditions.
The example shows temperatures from Halifax in the UK and from Sydney in Australia.
Publish
Raspberry Pi
Here we have an embedded Raspberry Pi project connected to an I2C Sensor, the sensor is sampled and the data is published to a MQTT server.
ESP8266 Module
Here we have an embedded project using an ESP8266 wifi module, an analogue input is sampled and the data is published to a MQTT server.
Subscribe
ESP8266 Module
Here we subscribe to a topic and receive it back into Flowcode embedded using an ESP8266 module.
Flowcode App Developer
Here we subscribe to a topic and receive it back into Flowcode App Developer.
Making your own Raspberry Pi based MQTT Broker
Click here for instructions on creating your own Raspberry Pi MQTT Broker.
Downloadable macro reference
![]() |
GetTopic |
Get the Topic of the last received (Read) packet. Returns the number of bytes for the Topic | |
![]() |
Topic |
![]() |
Size |
Byte count the Topic buffer | |
![]() |
Return |
![]() |
ErrorAsString |
![]() |
Error |
![]() |
Return |
![]() |
Connect |
Connect to the MQTT Server. Returns the connected state. 0 if not connected, 1 if successful connection, or already connected. | |
![]() |
Return |
![]() |
Publish |
Publish data to the server (broker) Returns non-zero if successful | |
![]() |
Topic |
![]() |
Payload |
![]() |
Return |
![]() |
LastError |
Returns the last error | |
![]() |
Return |
![]() |
Read |
Read incoming data. Returns non-zero if packet received. Use GetTopic and GetPayload to read the contents. | |
![]() |
Return |
![]() |
Disconnect |
Disconnects from the MQTT server and the network | |
![]() |
Return |
![]() |
Ping |
Ping packet is sent to the Server and checks for a reply. Returns non-zero value if successful | |
![]() |
Return |
![]() |
GetPayload |
Get the Payload of the last received (Read) packet. Returns the number of bytes for the Payload | |
![]() |
Payload |
![]() |
Size |
Byte count the Payload buffer | |
![]() |
Return |
![]() |
Subscribe |
Subscribe to a Topic. Must be Connected first Returns non-zero if successful | |
![]() |
Topic |
![]() |
Return |
![]() |
Unsubscribe |
Unsubscribe from a Topic. Must be Connected first Returns non-zero if successful | |
![]() |
Topic |
![]() |
Return |
![]() |
Initialise |
![]() |
Return |
![]() |
GetPayloadString |
Get the Payload of the last received (Read) packet as a string value | |
![]() |
Payload |
![]() |
Size |
![]() |
Return |
![]() |
Initialise |
Starts up the MQTT component - call this after initialising the NetworkComms component. | |
![]() |
Return |
![]() |
Initialise |
Sets up the GSM module. Returns 0 for OK, 255 for no reply and 254 for command fail. | |
![]() |
Return |
![]() |
Left |
Rotates the robot left - waits for the angle to be traversed before returning | |
![]() |
Angle |
Angle to turn in degrees | |
![]() |
Return |
![]() |
LCDDrawPixel |
Allows a single pixel on the LCD to be set or cleared | |
![]() |
X |
X Pixel 0-127 | |
![]() |
Y |
Y Pixel 0-31 | |
![]() |
State |
0=White (Off), 1=Black (On) | |
![]() |
Return |
![]() |
ServoSetPosition |
Allows one of the servo positions to be assigned | |
![]() |
Channel |
Range 0-3 | |
![]() |
Position |
Range 0-255 | |
![]() |
Return |
![]() |
CardBitmap |
Displays a monochrome bitmap read from the card on the LCD | |
![]() |
X |
Range 0-127 | |
![]() |
Y |
Range 0-31 | |
![]() |
Filename |
![]() |
Return |
![]() |
CardOpen |
Attempts to open an existing file on the SD card 255=Error, 1=File not found, 0=Open OK | |
![]() |
Filename |
![]() |
Return |
![]() |
Forwards |
Drives the robot forwards - waits for the distance to be traversed before returning | |
![]() |
Distance |
Distance in mm | |
![]() |
Return |
![]() |
ReadBearing |
Reads the compass bearing based on the degrees clockwise from magnetic north. | |
[[File:]] - | Return |
![]() |
GetConsoleHandle |
Gets the handle to the console allowing data displaying on the panel etc. | |
[[File:]] - | Return |
![]() |
LCDDrawLine |
Allows a single pixel width line to be drawn on the LCD | |
![]() |
X1 |
X Pixel 0-127 | |
![]() |
Y1 |
Y Pixel 0-31 | |
![]() |
X2 |
X Pixel 0-127 | |
![]() |
Y2 |
Y Pixel 0-31 | |
![]() |
Return |
![]() |
ServoAutoMoveToPosition |
Allows one of the servo positions to move gradually to a new position | |
![]() |
Channel |
Range 0-3 | |
![]() |
Position |
Range 0-255 | |
![]() |
Return |
![]() |
ReadAllValue |
Reads a single value stored from the read all command Index dictates which sensor value to read | |
![]() |
Index |
0=SW, 1-8=IR, 9-10=Line, 11=Light, 12=Mic, 13-15=Accel | |
![]() |
Return |
![]() |
LCDBacklight |
Allows the LCD backlight brighntess to be adjusted | |
![]() |
Intensity |
Range 0-100, 0=Off, 1=Min Brightness, 100=Max Brightness | |
![]() |
Return |
![]() |
LCDDrawRect |
Allows a rectangle to be drawn on the LCD | |
![]() |
X1 |
X Pixel 0-127 | |
![]() |
Y1 |
Y Pixel 0-31 | |
![]() |
X2 |
X Pixel 0-127 | |
![]() |
Y2 |
Y Pixel 0-31 | |
![]() |
Return |
![]() |
ReadLine |
Reads one of the IR line sensors 0-1 0=Left, 1=Right | |
![]() |
index |
0=Left, 1=Right | |
![]() |
Return |
![]() |
ServoDisable |
Allows one of the servo outputs 0-3 to be disabled | |
![]() |
Channel |
Range 0-3 | |
![]() |
Return |
![]() |
ServoEnable |
Allows one of the servo outputs 0-3 to be enabled | |
![]() |
Channel |
Range 0-3 | |
![]() |
Return |
![]() |
CardReadByte |
Reads a byte from the currently open file. Starts at the beginning of the file and auto increments to the end | |
![]() |
Return |
![]() |
CardErase |
Attempts to delete an existing file on the SD card 255=Error, 1=File not found, 0=Delete OK | |
![]() |
Filename |
![]() |
Return |
![]() |
CardWriteByte |
Appends a byte to the end of the currently open file | |
![]() |
Data |
![]() |
Return |
![]() |
EncoderRead |
Reads one of the motor encoder counters. Approx 0.328296mm of travel per encoder unit. | |
![]() |
index |
0=Left, 1=Right | |
![]() |
Return |
![]() |
SetMotors |
Sets the motor speeds without feedback Range -100 to 100 | |
[[File:]] - | Left |
Range -100 to 100 | |
[[File:]] - | Right |
Range -100 to 100 | |
![]() |
Return |
![]() |
Backwards |
Drives the robot backwards - waits for the distance to be traversed before returning | |
![]() |
Distance |
Distance in mm | |
![]() |
Return |
![]() |
EncoderReset |
Resets the motor encoder counters | |
![]() |
Return |
![]() |
LCDVerbose |
Allows the LCD to automatically report the API commands as they get processed. Default - verbose on | |
![]() |
State |
0=Off 1=On | |
![]() |
Return |
![]() |
SetProp |
Allows the COM port property to be set from a parent component. | |
![]() |
PropName |
![]() |
PropVal |
![]() |
Return |
![]() |
CardInit |
Attempts to startup the SD card 255=No Card, 254=Init Fail, 0=Init OK | |
![]() |
Return |
![]() |
GetProp |
Allows the property filter for the COM port list to be copied to a parent component. | |
![]() |
PropName |
![]() |
Return |
![]() |
LCDClear |
Clears the LCD | |
![]() |
Return |