Component: API (RPI) (API Slave Devices): Difference between revisions
No edit summary |
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder"" |
||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 183: | Line 183: | ||
|G13 | |G13 | ||
|} | |} | ||
| Line 188: | Line 196: | ||
==Macro reference== | ==Macro reference== | ||
{| class="wikitable | ===ADCSample10=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSample10''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Reads the voltage present on an Alanog pin as an 10-bit value range 0-1023 | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | ADCChannel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Range: 0-12 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===ADCSample8=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''ADCSample8''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Reads the voltage present on an Alanog pin as an 8-bit value range 0-255 | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | ADCChannel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Range: 0-12 | ||
|- | |- | ||
| 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- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable" | ===I2CInitialise=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''I2CInitialise''' | |||
|- | |||
| colspan="2" | Initialsie the I2C module ready for communications | |||
|- | |- | ||
|- | |- | ||
| | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | Channel | |||
|- | |- | ||
| colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Baud | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | 0=100KHz, 1=400KHz, 2=1MHz | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===I2CReceive=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CReceive''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Receive a byte using the I2C bus | ||
|- | |- | ||
|- | |- | ||
| Line 273: | Line 270: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Channel Index: Range 0 - | | colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| width="90%" | | | width="90%" | Last | ||
|- | |- | ||
| colspan="2" | 0 | | colspan="2" | Last byte to receive: Range 0-1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===I2CRestart=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CRestart''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Put the I2C Module into Restart mode | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Range | | colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===I2CSend=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CSend''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Transmit a byte using the I2C bus | ||
|- | |- | ||
|- | |- | ||
| Line 317: | Line 316: | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | DataOut | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===I2CStart=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CStart''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Put the I2C Module into Start mode | ||
|- | |- | ||
|- | |- | ||
| Line 342: | Line 337: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Channel Index: Range 0 - | | colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 349: | Line 344: | ||
{| class="wikitable | ===I2CStop=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CStop''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Put the I2C Module into Stop mode | ||
|- | |- | ||
|- | |- | ||
| Line 360: | Line 356: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===I2CTransInit=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CTransInit''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Initialises the I2C Transaction mode with the 7-bit device address | ||
|- | |- | ||
|- | |- | ||
| Line 380: | Line 377: | ||
| colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | | colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | DeviceAddress | |||
| width="90% | |||
|- | |- | ||
| colspan="2" | 7-bit Device Address | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Baud | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | 0=100KHz, 1=400KHz, 2=1MHz | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 403: | Line 392: | ||
{| class="wikitable | ===I2CTransReceive=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CTransReceive''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Receives an I2C Transaction on the selected I2C channel. Returns the number of bytes received. | ||
|- | |- | ||
|- | |- | ||
| Line 416: | Line 406: | ||
| colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | | colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | Data | |||
|- | |||
| colspan="2" | Data variable to receive into | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Count | |||
|- | |||
| colspan="2" | Number of bytes to receive | |||
|- | |||
| 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===I2CTransSend=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''I2CTransSend''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sends an I2C Transaction on the selected I2C channel. Returns the number of bytes sent. | ||
|- | |- | ||
|- | |- | ||
| Line 432: | Line 433: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Channel Index: Range 0 - | | colspan="2" | Channel Index: Range 0 - I2C Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Data | ||
|- | |||
| colspan="2" | Data to send | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Count | |||
|- | |- | ||
| colspan="2" | | | colspan="2" | Number of bytes to send out, MS bit 0x8000 signifies no Stop if set | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===IOGetInputPin=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''IOGetInputPin''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the selected digital pin to an input and reads the input state. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Pin | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Range: 0-29 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-bool-icon.png]] - BOOL | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===IOSetOutputPin=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''IOSetOutputPin''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the selected digital pin to an output and assigns the output state. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Pin | ||
|- | |||
| colspan="2" | Range: 0-29 | |||
|- | |||
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | |||
| width="90%" | State | |||
|- | |- | ||
| colspan="2" | | | colspan="2" | Range: 0-1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 485: | Line 493: | ||
{| class="wikitable | ===Initialise=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Initialise''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Initialise the comms to the Arduino board ready for commands to be sent. | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 508: | Line 507: | ||
{| class="wikitable | ===PWMDisable=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMDisable''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Disable a PWM output | ||
|- | |- | ||
|- | |- | ||
| Line 519: | Line 519: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Range: 0- | | colspan="2" | Range: 0-1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 531: | Line 526: | ||
{| class="wikitable | ===PWMEnable=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMEnable''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Enable a PWM output | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Range: 0- | | colspan="2" | Range: 0-1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===PWMSetDuty=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMSetDuty''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the duty for the PWM output | ||
|- | |- | ||
|- | |- | ||
| Line 560: | Line 557: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Range: 0-5 | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Duty | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | |||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | |||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===PWMSetPrescaler=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''PWMSetPrescaler''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Sets the prescaler for the PWM output | ||
|- | |- | ||
|- | |- | ||
| Line 588: | Line 581: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Prescaler | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Period | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 605: | Line 598: | ||
{| class="wikitable | ===SPIInitialise=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPIInitialise''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Initialsie the SPI module ready for communications | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Range | | colspan="2" | Channel Index: Range 0 - SPI Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 628: | Line 617: | ||
{| class="wikitable | ===SPIPrescaler=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPIPrescaler''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Modify the speed of the SPI bus | ||
|- | |- | ||
|- | |- | ||
| Line 639: | Line 629: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Channel Index: Range 0 - | | colspan="2" | Channel Index: Range 0 - SPI Bus Count - 1 | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Prescaler | |||
|- | |||
| colspan="2" | Range: 0-2 | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===SPITransfer=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPITransfer''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Transfer a byte using the SPI bus | ||
|- | |- | ||
|- | |- | ||
| Line 659: | Line 655: | ||
| colspan="2" | Channel Index: Range 0 - SPI Bus Count - 1 | | colspan="2" | Channel Index: Range 0 - SPI Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | DataOut | |||
|- | |||
| 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===SPITransferTrans=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''SPITransferTrans''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Transfer an array of bytes using the SPI bus | ||
|- | |- | ||
|- | |- | ||
| Line 675: | Line 677: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Channel Index: Range 0 - | | colspan="2" | Channel Index: Range 0 - SPI Bus Count - 1 | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT | |||
| width="90%" | Count | |||
|- | |||
| colspan="2" | Number of bytes to send and receive | |||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | DataOut | | width="90%" | DataOut | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Outgoing data | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | DataIn | |||
|- | |||
| colspan="2" | Incoming data | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable | ===UARTBaud=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''UARTBaud''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Control the communications rate of the UART module | ||
|- | |- | ||
|- | |- | ||
| Line 701: | Line 714: | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Rate | ||
|- | |- | ||
| colspan="2" | | | 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="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 710: | Line 723: | ||
{| class="wikitable | ===UARTCheckRX=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''UARTCheckRX''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Check to see if the UART module has received any data | ||
|- | |- | ||
|- | |- | ||
| Line 721: | Line 735: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Channel Index: Range 0 - UART Bus Count - 1 | ||
|- | |||
| 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'' | |||
|} | |||
===UARTInitialise=== | |||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''UARTInitialise''' | |||
|- | |- | ||
| | | colspan="2" | Initialise the UART module ready for communications | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90%" | | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Channel Index: Range 0 - UART Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| Line 738: | Line 761: | ||
{| class="wikitable | ===UARTReceive=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''UARTReceive''' | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Receives a data byte from the UART. Recommend calling the UARTCheckRx function first to ensure data is available. | ||
|- | |- | ||
|- | |- | ||
| Line 749: | Line 773: | ||
| width="90%" | Channel | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | Range | | colspan="2" | Channel Index: Range 0 - UART Bus Count - 1 | ||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9- | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
{| class="wikitable" | ===UARTSend=== | ||
{| class="mtx-class-macrotable wikitable" | |||
|- | |||
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]] | |||
| width="90%" class="mtx-class-macrohead" | '''UARTSend''' | |||
|- | |||
| colspan="2" | Send a byte via the UART module | |||
|- | |||
|- | |- | ||
| width="10% | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | ||
| width="90% | | width="90%" | Channel | ||
|- | |- | ||
| colspan="2" | | | colspan="2" | Channel Index: Range 0 - UART Bus Count - 1 | ||
|- | |||
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE | |||
| width="90%" | Data | |||
|- | |- | ||
| colspan="2" | Data Byte to send. Range: 0-255 | |||
|- | |- | ||
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | | 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'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
==Property reference== | ==Property reference== | ||
{| class="wikitable | {| class="mtx-class-macrotable wikitable" | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-macrohead" | '''Properties''' | ||
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Connection | ||
|- | |- | ||
|- | |- | ||
| Line 803: | Line 836: | ||
| colspan="2" | IP Address of the selected network interface. | | colspan="2" | IP Address of the selected network interface. | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | API Peripherals | ||
|- | |- | ||
|- | |- | ||
| Line 847: | Line 880: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
| width="10%" align="center" | | width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]] | ||
| width="90%" | | width="90%" class="mtx-class-propfolder" | Console | ||
|- | |- | ||
|- | |- | ||
Latest revision as of 14:37, 13 July 2026
| Author | Matrix TSL |
| Version | 2.0 |
| Category | API Slave Devices |
API (RPI) component
Connects to a Raspberry Pi running the API Firmware allowing the board to become a slave to the Flowcode Embedded simulation or Flowcode App Developer. Supports: Digital IO / I2C / SPI / PWM / UART See Flowcode Help Wiki for firmware.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_RPI_API_Comp.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_RPI_API_Comp.fcfx
Detailed description
The App Developer (RaspberryPi) component allows an Raspberry Pi to be controlled from within the Flowcode simulation runtime.
To allow Flowcode to communicate and control the Raspberry Pi hardware the board must first be pre-programmed with dedicated firmware.
The firmware file and Flowcode source project can be downloaded from here.
More information about the workings of the firmware project can be found on the FiniteStateMachine page.
The IP Address to the Raspberry Pi hardware is selected via the SCADA_RPI component IP Address property.
When building the component into a App Developer project remember to expose the IP Address property to allow the end user to select the correct address for the hardware.
The console window can display data in two modes which is set via a component property.
- fixed statistics showing IO / ADC inputs / PWM
- scrolling log showing all commands and returns
Examples
Pin Mapping
Here is a table showing how the App Developer Slave digital pins are mapped on the device.
| App Developer Slave Digital Pin | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| Device Port Pin | G2 | G3 | G4 | G5 | G6 | G7 | G8 | G9 | G10 | G11 | G12 | G13 | G14 | G15 | G16 | G17 | G18 | G19 | G20 | G21 | G22 | G23 | G24 | G25 | G26 | G27 |
Here is a table showing how the App Developer Slave peripheral pins are mapped on the device.
| App Developer Slave Peripheral Pin | I2C SDA | I2C SCL | SPI MOSI | SPI MISO | SPI SCK | UART RX | UART TX | PWM 0 | PWM 1 |
| Device Port Pin | G2 | G3 | G10 | G9 | G11 | G15 | G14 | G12 | G13 |
Macro reference
ADCSample10
| ADCSample10 | |
| Reads the voltage present on an Alanog pin as an 10-bit value range 0-1023 | |
| ADCChannel | |
| Range: 0-12 | |
| Return | |
ADCSample8
| ADCSample8 | |
| Reads the voltage present on an Alanog pin as an 8-bit value range 0-255 | |
| ADCChannel | |
| Range: 0-12 | |
| Return | |
I2CInitialise
| I2CInitialise | |
| Initialsie the I2C module ready for communications | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Baud | |
| 0=100KHz, 1=400KHz, 2=1MHz | |
| Return | |
I2CReceive
| I2CReceive | |
| Receive a byte using the I2C bus | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Last | |
| Last byte to receive: Range 0-1 | |
| Return | |
I2CRestart
| I2CRestart | |
| Put the I2C Module into Restart mode | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
I2CSend
| I2CSend | |
| Transmit a byte using the I2C bus | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| DataOut | |
| Return | |
I2CStart
| I2CStart | |
| Put the I2C Module into Start mode | |
| Channel | |
| Channel Index: Range 0 - I2C Bus Count - 1 | |
| Return | |
I2CStop
| I2CStop | |
| Put the I2C Module into Stop mode | |
| Channel | |
| Return | |
I2CTransInit
I2CTransReceive
I2CTransSend
IOGetInputPin
| IOGetInputPin | |
| Sets the selected digital pin to an input and reads the input state. | |
| Pin | |
| Range: 0-29 | |
| Return | |
IOSetOutputPin
| IOSetOutputPin | |
| Sets the selected digital pin to an output and assigns the output state. | |
| Pin | |
| Range: 0-29 | |
| State | |
| Range: 0-1 | |
| Return | |
Initialise
| Initialise | |
| Initialise the comms to the Arduino board ready for commands to be sent. | |
| Return | |
PWMDisable
| PWMDisable | |
| Disable a PWM output | |
| Channel | |
| Range: 0-1 | |
| Return | |
PWMEnable
| PWMEnable | |
| Enable a PWM output | |
| Channel | |
| Range: 0-1 | |
| Return | |
PWMSetDuty
| PWMSetDuty | |
| Sets the duty for the PWM output | |
| Channel | |
| Range: 0-5 | |
| Duty | |
| Return | |
PWMSetPrescaler
| PWMSetPrescaler | |
| Sets the prescaler for the PWM output | |
| Channel | |
| Prescaler | |
| Period | |
| Return | |
SPIInitialise
| SPIInitialise | |
| Initialsie the SPI module ready for communications | |
| Channel | |
| Channel Index: Range 0 - SPI Bus Count - 1 | |
| Return | |
SPIPrescaler
| SPIPrescaler | |
| Modify the speed of the SPI bus | |
| Channel | |
| Channel Index: Range 0 - SPI Bus Count - 1 | |
| Prescaler | |
| Range: 0-2 | |
| Return | |
SPITransfer
| SPITransfer | |
| Transfer a byte using the SPI bus | |
| Channel | |
| Channel Index: Range 0 - SPI Bus Count - 1 | |
| DataOut | |
| Return | |
SPITransferTrans
UARTBaud
UARTCheckRX
| UARTCheckRX | |
| Check to see if the UART module has received any data | |
| Channel | |
| Channel Index: Range 0 - UART Bus Count - 1 | |
| Return | |
UARTInitialise
| UARTInitialise | |
| Initialise the UART module ready for communications | |
| Channel | |
| Channel Index: Range 0 - UART Bus Count - 1 | |
| Return | |
UARTReceive
| UARTReceive | |
| Receives a data byte from the UART. Recommend calling the UARTCheckRx function first to ensure data is available. | |
| Channel | |
| Channel Index: Range 0 - UART Bus Count - 1 | |
| Return | |
UARTSend
| UARTSend | |
| Send a byte via the UART module | |
| Channel | |
| Channel Index: Range 0 - UART Bus Count - 1 | |
| Data | |
| Data Byte to send. Range: 0-255 | |
| Return | |