Difference between revisions of "Bot test"

From Flowcode Help
Jump to navigationJump to search
 
(One intermediate revision by the same user not shown)
Line 5: Line 5:
 
|-
 
|-
 
| width="20%" style="color:gray;" | Version
 
| width="20%" style="color:gray;" | Version
| 1.4
+
| 2.0
 
|-
 
|-
 
| width="20%" style="color:gray;" | Category
 
| width="20%" style="color:gray;" | Category
| Comms: Interface
+
| Wireless
 
|}
 
|}
  
  
==I2C Master component==
+
==Bluetooth (EB024, Generic AT) component==
Generic Two Wire I2C Communications Interface
+
Low level routines for controlling a standard AT Bluetooth interface. Also available in the form of the EB024 Bluetooth E-block.
  
 
==Detailed description==
 
==Detailed description==
  
 
+
''No detailed description exists yet for this component''
 
 
{| width="50%"
 
|-
 
| width="20%" style="color: gray;" | Author
 
| Matrix Ltd.
 
|-
 
| width="20%" style="color: gray;" | Version
 
| 1.4 (Release)
 
|-
 
| width="20%" style="color: gray;" | Category
 
| Comms: Interface
 
|}
 
 
 
 
 
 
 
==[[File:Component Icon 24219805_113d_4b12_b6bd_e1b0b0c33981.png|Image]] I2C Master component==
 
Generic Two Wire I2C Communications Interface
 
 
 
 
 
  
 
==Examples==
 
==Examples==
  
  
More information on I2C can be found here,
+
===Making a device discoverable===
  
[http://www.matrixtsl.com/blog/simplified-communications-i%c2%b2c-and-spi/ Matrix Flowcode Blog: Simplified communications I2C and SPI]
+
Example program to set up the Bluetooth module to be discoverable with a pair key. Any data received is then output onto the LCD component. You can connect to the Bluetooth device using a PC with Bluetooth connection and using software such as Flowcode 6, RealTerm or HyperTerminal. Alternatively you can connect using a smart phone running a terminal emulator app or via another embedded Bluetooth board.
 +
{{Fcfile|BluetoothDiscover.fcfx|Bluetooth Discover}}
 +
Script 1 contains the AT commands to setup the Bluetooth device to be discoverable with pair key "1234".
  
 +
[[File:DiscoverableScript.jpg]]
  
===Generic I2C EEPROM===
 
  
Example file demonstrating how to read and write bytes from a generic I2C EEPROM device.
+
===Searching for a device===
{{Fcfile|I2CEEPROM.fcfx|I2CEEPROM}}
 
===Simulated I2C devices===
 
  
This example uses the I2C master component combined with the DS1307 injector to simulate an I2C communications bus between the target Microcontroller and the virtual DS1307 device.
+
Example program to scan for local discoverable Bluetooth devices. For each device found the MAC address is displayed on to the LCD.
{{Fcfile|DS1307InjectorTest.fcfx|I2C DS1307 Example}}
+
{{Fcfile|BluetoothInquire.fcfx|Bluetooth Inquiry}}
The panel displays the current time from the DS1307 RAM which is populated to match the system time.
+
===Connecting to a device===
  
[[File:DS1307Panel.jpg]]
+
Example program to connect to a specific Bluetooth device address and send data to the device.
 +
{{Fcfile|BluetoothConnect.fcfx|Bluetooth Connect}}
 +
The device MAC address is specified using the "CreateCommandString" and "SendCommand" macros.
  
 
+
[[File:ConnectToMAC.jpg]]
The I2C console shows the communications between the target microcontroller and simulated I2C device.
 
 
 
[[File:DS1307Data.jpg]]
 
 
 
 
 
The DS1307 console shows the contents of RAM memory on the simulated I2C device.
 
 
 
[[File:DS1307Ram.jpg]]
 
  
  
Line 75: Line 50:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''ReceiveByte'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''StringRead'''
 
|-
 
|-
| colspan="2" | Receives a byte from the I²C bus.  
+
| colspan="2" | Returns the ASCII value of character idx of the Response string. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Last
+
| width="90%" | idx
 
|-
 
|-
| colspan="2" | Used to signify the last byte when streaming incoming data. 0=Not last byte, 1=Last Byte 
+
| colspan="2" | Needs to be a equal to or less than the string length of the response in order to retrieve a valid character. 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
Line 93: Line 68:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Restart'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendScript'''
 
|-
 
|-
| colspan="2" | Outputs a restart condition onto the I²C bus. 
+
| colspan="2" | Sends Script idx  Note that the general property Number of Scripts needs to be set so that it allows the scripts to be accessed and sent. Returns 0 for success and 1 for error  
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | idx
|}
 
 
 
 
 
{| 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;" | '''Stop'''
 
 
|-
 
|-
| colspan="2" | Outputs a stop condition onto the I²C bus. 
+
| colspan="2" | Refers to the Script page to send (1-4). 
 
|-
 
|-
|-
+
| 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-void-icon.png]] - VOID
 
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
Line 119: Line 86:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Transaction_Write'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendCommand'''
 
|-
 
|-
| colspan="2" | Attempt to write Length number of bytes to the I2C slave from the given Buffer. Ensure that the Buffer is large enough. Returns the number of bytes written, the caller should check that this matches requested Length 
+
| colspan="2" | Sends the command buffer. Returns 1 for success in sending the command. Returns 0 for errors. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Buffer
+
| width="90%" | ExpectEcho
|-
 
| colspan="2" | Buffer of bytes to write to the I2C 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Length
 
|-
 
| 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-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;" | '''TransmitByte'''
 
|-
 
| colspan="2" | Sends a byte on the I²C bus. Returns the acknowledge if any.  0 represents that data was acknowledged and 1 represents no acknowledge was detected. 
 
 
|-
 
|-
 +
| colspan="2" | Remote module automatically echos back data: 1 = On (Expect echo), 0 = off 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Data
+
| width="90%" | SendCR
 
|-
 
|-
| colspan="2" | Data byte to send on the I²C bus. 
+
| colspan="2" | Automatically adds \n to the end of the command data: 1 = append CR, 0 = no CR. 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
Line 160: Line 109:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GenericWriteRegister'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateCommandString'''
 
|-
 
|-
| colspan="2" | Function to perform a generic I2C Write transaction. The 7-bit device ID is automatically shifted up by one bit to make room for the read/write bit. 
+
| colspan="2" | Assigns a string of characters to the Command buffer. Returns 1 for success in adding the characters to the buffer. Returns 0 for errors, including Buffer overflow. 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" | Device_ID
+
| width="90%" | Data
|-
 
| colspan="2" | 7-bit Device Address ID 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
 
|-
 
|-
 
| colspan="2" |  
 
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Data
 
|-
 
| colspan="2" | Data Byte 
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | AddressByteCount
 
|-
 
| colspan="2" | Specifies the number of address bytes, Range: 1 or 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''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
Line 193: Line 127:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Transaction_Uninit'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''StringReceive'''
 
|-
 
|-
| colspan="2" | Uninitialise the I2C interface 
+
| colspan="2" | Checks for a response string. Returns the length of the response string if one is present otherwise returns 0.  
 
|-
 
|-
 
|-
 
|-
| 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-u8-icon.png]] - BYTE
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
| width="90%" style="border-top: 2px solid #000;" | ''Return''
 
|}
 
|}
Line 206: Line 140:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GenericReadRegister'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CreateCommand'''
 
|-
 
|-
| colspan="2" | Function to perform a generic I2C read.  The 7-bit device ID is automatically shifted up by one bit to make room for the read/write bit. Returns the data from the location specified. 
+
| colspan="2" | Adds a single characters to the end of the Command buffer. Returns 1 for success in adding the characters to the buffer. Returns 0 for errors, including Buffer overflow. 
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Device_ID
+
| width="90%" | Character
 
|-
 
|-
| colspan="2" | 7-bit Device Address ID 
+
| colspan="2" | ASCII value or single character, 
|-
 
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
 
| width="90%" | Address
 
|-
 
| colspan="2" |  
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="90%" | AddressByteCount
 
|-
 
| colspan="2" | Specifies the number of address bytes, Range: 1 or 2 
 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
Line 234: Line 158:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Transaction_Read'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Send_byte'''
 
|-
 
|-
| colspan="2" | Attempt to read Length number of bytes from the I2C slave to the given Buffer. Ensure that the Buffer is large enough.  Returns number of bytes read, caller should check that this matches requested Length 
+
| colspan="2" |  
 
|-
 
|-
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Buffer
+
| width="90%" | ByteVal
 
|-
 
|-
| colspan="2" | Buffer to store the incoming byte data 
+
| colspan="2" |  
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-u16-icon.png]] - UINT
+
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
| width="90%" | Length
 
|-
 
| colspan="2" | Number of bytes to read 
 
|-
 
| 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''
 
|}
 
|}
Line 257: Line 176:
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Start'''
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''WaitForResponse'''
 
|-
 
|-
| colspan="2" | Outputs a start condition onto the I²C bus. 
+
| colspan="2" | Waits for a response message of type response_code for timeout ms. Returns: 0 for a Response of type response_code 255 (0xFF) for a timeout or invalid response Response string length for any Response not of type response_code 
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID
+
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" style="border-top: 2px solid #000;" | ''Return''
+
| width="90%" | response_code
|}
 
 
 
 
 
{| 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;" | '''Transaction_Initialise'''
 
|-
 
| colspan="2" | Initialise the I2C interface to communicate with a Slave device at Address Returns 0 on fail, 1 on success 
 
 
|-
 
|-
 +
| colspan="2" | 1:OK / 2:ERROR / 3:CONNECT / 4:NO CARRIER / 5:AUDIO / 6:PAIR / 7:RING 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE
| width="90%" | Address
+
| width="90%" | timeout
 
|-
 
|-
| colspan="2" | 7-bit I2C Address without the shift for the R/W bit 
+
| colspan="2" | The timeout value will need to set to allow sufficient time for the response to arrive. 
 
|-
 
|-
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
 
| width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-u8-icon.png]] - BYTE
Line 290: Line 201:
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise'''
 
|-
 
|-
| colspan="2" | Enables the I²C hardware and performs some initialization. Should be called at the start of the program or at least before any of the other I²C functions are called. 
+
| colspan="2" | Required to be used whenever the Bluetooth component is used in a program. Initialises the Bluetooth component ready for use. 
 
|-
 
|-
 
|-
 
|-
Line 308: Line 219:
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | Channel
+
| width="90%" | Command Buffer Size
 +
|-
 +
| colspan="2" | Maximum number of bytes that can be stored in the outgoing command buffer. 
 +
|-
 +
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 +
| width="90%" | Response Buffer Size
 
|-
 
|-
| colspan="2" | Channel selection 
+
| colspan="2" | Maximum number of bytes that can be stored in the incoming response buffer. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | Baud Select
+
| width="90%" | Script Count
 
|-
 
|-
| colspan="2" | Baud rate option selector 
+
| colspan="2" | Controls how many AT scripts are stored into non-volatile memory 
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-11-icon.png]]
| width="90%" | Baud Rate
+
| width="90%" | Script 1
 
|-
 
|-
| colspan="2" | Baud rate to be used 
+
| colspan="2" | Data to send for script 0, each command should be terminated with a carriage return 
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
+
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
| width="90%" | Stop Delay
+
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
 
|-
 
|-
| colspan="2" | On older microcontroller devices there is a potential for the I2C hardware channel to lock up if there is not  a 10ms delay between an I2C stop event and the next I2C start event.  Most modern microcontrollers will not have a problem so this property can be disabled to speed up the  I2C communications.  
 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | Slew Rate Control
+
| width="90%" | Channel
 
|-
 
|-
| colspan="2" | Slew Rate Control Enabled or Disabled 
+
| 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="10%" align="center" | [[File:Fc9-type-5-icon.png]]
| width="90%" | SMBus Inputs
+
| 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" | When Enabled input logic thresholds are compliant with SMBus specification 
+
| colspan="2" | Pin to be used for Receive data 
 
|-
 
|-
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Connections'''
+
| width="90%" | Use Flow Control
 
|-
 
|-
 +
| colspan="2" | Flow Control (Handshake) enable or disable.    On: Two I/O pins are used to control the flow of data in and out of the device.    Off: Flow control is disabled. 
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | SDA
+
| width="90%" | Baud Options
 
|-
 
|-
| colspan="2" | Pin used for SDA (data signal) 
+
| colspan="2" | Baud rate option selector 
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-5-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-14-icon.png]]
| width="90%" | SCL
+
| width="90%" | Baud Rate
 
|-
 
|-
| colspan="2" | Pin used for SCL (clock signal) 
+
| colspan="2" |  
 
|-
 
|-
 
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
 
| width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-conn-icon.png]]
Line 356: Line 277:
 
|-
 
|-
 
|-
 
|-
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
+
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | Label
+
| 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-7-icon.png]]
 +
| width="90%" | Console Data
 
|-
 
|-
| colspan="2" | Label shown on the comms flasher on the simulation panel. 
+
| colspan="2" | Selects if the console data is automatically generated or not 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
 
| width="90%" | Scope Traces
 
| width="90%" | Scope Traces
 
|-
 
|-
| colspan="2" | Selects if the scope traces are automatically generated or not 
+
| 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="10%" align="center" | [[File:Fc9-type-16-icon.png]]
| width="90%" | Console Data
+
| width="90%" | Data Source
 
|-
 
|-
| colspan="2" | Selects if the console data is automatically generated or not 
+
| 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      API - Routes the communication data via a data API component on the Panel. 
 
|-
 
|-
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | API
 
| width="90%" | API
 
|-
 
|-
| colspan="2" |  
+
| colspan="2" | Selects whichAPI component to route the communication data via. Add API components to the panel before they will be available in this list. API components are available from the Comms component category. 
 
|}
 
|}

Latest revision as of 13:33, 31 August 2021

Author Matrix Ltd.
Version 2.0
Category Wireless


Bluetooth (EB024, Generic AT) component

Low level routines for controlling a standard AT Bluetooth interface. Also available in the form of the EB024 Bluetooth E-block.

Detailed description

No detailed description exists yet for this component

Examples

Making a device discoverable

Example program to set up the Bluetooth module to be discoverable with a pair key. Any data received is then output onto the LCD component. You can connect to the Bluetooth device using a PC with Bluetooth connection and using software such as Flowcode 6, RealTerm or HyperTerminal. Alternatively you can connect using a smart phone running a terminal emulator app or via another embedded Bluetooth board. FC6 Icon.png Bluetooth Discover Script 1 contains the AT commands to setup the Bluetooth device to be discoverable with pair key "1234".

DiscoverableScript.jpg


Searching for a device

Example program to scan for local discoverable Bluetooth devices. For each device found the MAC address is displayed on to the LCD. FC6 Icon.png Bluetooth Inquiry

Connecting to a device

Example program to connect to a specific Bluetooth device address and send data to the device. FC6 Icon.png Bluetooth Connect The device MAC address is specified using the "CreateCommandString" and "SendCommand" macros.

ConnectToMAC.jpg


Downloadable macro reference

Fc9-comp-macro.png StringRead
Returns the ASCII value of character idx of the Response string. 
Fc9-u8-icon.png - BYTE idx
Needs to be a equal to or less than the string length of the response in order to retrieve a valid character. 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png SendScript
Sends Script idx Note that the general property Number of Scripts needs to be set so that it allows the scripts to be accessed and sent. Returns 0 for success and 1 for error  
Fc9-u8-icon.png - BYTE idx
Refers to the Script page to send (1-4). 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png SendCommand
Sends the command buffer. Returns 1 for success in sending the command. Returns 0 for errors. 
Fc9-u8-icon.png - BYTE ExpectEcho
Remote module automatically echos back data: 1 = On (Expect echo), 0 = off 
Fc9-u8-icon.png - BYTE SendCR
Automatically adds \n to the end of the command data: 1 = append CR, 0 = no CR. 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png CreateCommandString
Assigns a string of characters to the Command buffer. Returns 1 for success in adding the characters to the buffer. Returns 0 for errors, including Buffer overflow. 
Fc9-string-icon.png - STRING Data
 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png StringReceive
Checks for a response string. Returns the length of the response string if one is present otherwise returns 0.  
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png CreateCommand
Adds a single characters to the end of the Command buffer. Returns 1 for success in adding the characters to the buffer. Returns 0 for errors, including Buffer overflow. 
Fc9-u8-icon.png - BYTE Character
ASCII value or single character, 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png Send_byte
 
Fc9-u8-icon.png - BYTE ByteVal
 
Fc9-void-icon.png - VOID Return


Fc9-comp-macro.png WaitForResponse
Waits for a response message of type response_code for timeout ms. Returns: 0 for a Response of type response_code 255 (0xFF) for a timeout or invalid response Response string length for any Response not of type response_code 
Fc9-u8-icon.png - BYTE response_code
1:OK / 2:ERROR / 3:CONNECT / 4:NO CARRIER / 5:AUDIO / 6:PAIR / 7:RING 
Fc9-u8-icon.png - BYTE timeout
The timeout value will need to set to allow sufficient time for the response to arrive. 
Fc9-u8-icon.png - BYTE Return


Fc9-comp-macro.png Initialise
Required to be used whenever the Bluetooth component is used in a program. Initialises the Bluetooth component ready for use. 
Fc9-void-icon.png - VOID Return



Property reference

Fc9-prop-icon.png Properties
Fc9-type-21-icon.png Command Buffer Size
Maximum number of bytes that can be stored in the outgoing command buffer. 
Fc9-type-21-icon.png Response Buffer Size
Maximum number of bytes that can be stored in the incoming response buffer. 
Fc9-type-16-icon.png Script Count
Controls how many AT scripts are stored into non-volatile memory 
Fc9-type-11-icon.png Script 1
Data to send for script 0, each command should be terminated with a carriage return 
Fc9-conn-icon.png Connections
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 TX
Pin to be used for Transmit data 
Fc9-type-5-icon.png RX
Pin to be used for Receive data 
Fc9-type-16-icon.png Use Flow Control
Flow Control (Handshake) enable or disable. On: Two I/O pins are used to control the flow of data in and out of the device. Off: Flow control is disabled. 
Fc9-type-16-icon.png Baud Options
Baud rate option selector 
Fc9-type-14-icon.png Baud Rate
 
Fc9-conn-icon.png Simulations
Fc9-type-21-icon.png Console Columns
Number of characters that can be displayed on a single line of the console. 
Fc9-type-7-icon.png Console Data
Selects if the console data is automatically generated or not 
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-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 API - Routes the communication data via a data API component on the Panel. 
Fc9-type-16-icon.png API
Selects whichAPI component to route the communication data via. Add API components to the panel before they will be available in this list. API components are available from the Comms component category.