Difference between revisions of "Component: GSM (EB066, Generic AT) (Wireless)"
(11 intermediate revisions by one other user not shown) | |||
Line 15: | Line 15: | ||
Low level routines for controlling a standard AT GSM / GPRS interface Also available in the form of the EB066 GSM E-block. | Low level routines for controlling a standard AT GSM / GPRS interface Also available in the form of the EB066 GSM E-block. | ||
− | ==Component | + | ==Component Source Code== |
− | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_GSM.fcfx FC_Comp_Source_GSM.fcfx] | |
+ | |||
+ | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_GSM.fcfx FC_Comp_Source_GSM.fcfx] | ||
==Detailed description== | ==Detailed description== | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
Line 27: | Line 43: | ||
==Examples== | ==Examples== | ||
+ | Example program that checks for network connection and then allows a number to be texted or voice dialled. | ||
+ | |||
+ | Waits for connection to be established before allowing texts or calls to be made. | ||
+ | |||
+ | The number at the top of the file in the calculation icon needs to be edited to a number to connect to for texts and calls. | ||
− | + | Arduino Connections: | |
− | == | + | D8-D13 - LEDs / D8 = Connection Status - Flashing = Connecting / D9 Text sending / D10 Call Active |
+ | D0-D7 - GSM | ||
+ | |||
+ | A0-A5 - Switches - A0 = Send Text / A1 = Start voice call / A2 = End call | ||
+ | |||
+ | {{Fcfile|GSM_DEMO_Arduino.fcfx|Arduino GSM Example}} | ||
+ | |||
+ | |||
+ | PIC Connections | ||
+ | |||
+ | B0-B7 - LEDs / B0 = Connection Status - Flashing = Connecting / B1 Text sending / B2 Call Active | ||
+ | |||
+ | C0-C7 - GSM | ||
+ | |||
+ | A0-A7 - Switches - A0 = Send Text / A1 = Start voice call / A2 = End call | ||
+ | |||
+ | {{Fcfile|GSM_DEMO.fcfx|PIC GSM Example}} | ||
+ | |||
+ | ==Macro reference== | ||
+ | |||
+ | ===AnswerIncomingCall=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AnswerIncomingCall''' |
− | |||
− | |||
|- | |- | ||
+ | | colspan="2" | Answers the phone for an incoming type call. Returns 0 for success and 255 for failure. | ||
|- | |- | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 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 51: | Line 87: | ||
+ | ===CheckForIncoming=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckForIncoming''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Checks to see if any incoming phone call or SMS message. 0 = Nothing, 1 = Text Received, 2 = Phone Ringing |
|- | |- | ||
|- | |- | ||
− | + | | 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'' | ||
|} | |} | ||
+ | ===CheckNetworkStatus=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''CheckNetworkStatus''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Returns the state of the GSM network. 0 = Not connected, 1 = connected, 255 = no reply from GSM. |
|- | |- | ||
|- | |- | ||
− | + | | 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'' | ||
|} | |} | ||
+ | ===DeleteAllMessages=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DeleteAllMessages''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Removes all pending text messages from the GSM module. Returns 0 for success and 255 for fail. |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | |||
|- | |- | ||
| 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 105: | Line 129: | ||
+ | ===DialNumber=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''DialNumber''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Performs a standard voice call by dialling the number specified. Returns 0 for call in progress and 255 for no response. |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
− | | width="90%" | | + | | width="90%" | Number |
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
Line 128: | Line 148: | ||
+ | ===GetTextNumber=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetTextNumber''' |
+ | |- | ||
+ | | colspan="2" | Collects the sender's phone number from an incoming text message. | ||
+ | |- | ||
|- | |- | ||
− | | | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
+ | | width="90%" | NumBytes | ||
|- | |- | ||
+ | | 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-string-icon.png]] - STRING |
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
+ | ===GetTextString=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetTextString''' |
|- | |- | ||
− | | colspan="2" | Collects the | + | | colspan="2" | Collects the text message data from an incoming text message. |
|- | |- | ||
|- | |- | ||
Line 159: | Line 186: | ||
+ | ===HangUpCall=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
Line 172: | Line 200: | ||
+ | ===Initialise=== | ||
+ | {| 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'' | ||
+ | |} | ||
+ | |||
+ | |||
+ | ===ReadString=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
Line 190: | Line 233: | ||
+ | ===SendCommand=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendCommand''' |
|- | |- | ||
− | | colspan="2" | Sends | + | | colspan="2" | Sends a command string to the GSM module. 0 = Command sent ok, 255 = No Reply |
|- | |- | ||
|- | |- | ||
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
− | | width="90%" | | + | | width="90%" | Command |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" | [[File:Fc9- | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
− | | width="90%" | | + | | width="90%" | SendCR |
|- | |- | ||
| colspan="2" | | | colspan="2" | | ||
Line 213: | Line 257: | ||
+ | ===SendScript=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendScript''' |
+ | |- | ||
+ | | colspan="2" | Send an AT command script. Returns 0 for fail, 1 for success and 255 for unrecognised script idx. | ||
+ | |- | ||
|- | |- | ||
− | | | + | | width="10%" align="center" | [[File:Fc9-u8-icon.png]] - BYTE |
+ | | width="90%" | idx | ||
|- | |- | ||
+ | | colspan="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 226: | Line 276: | ||
+ | ===SendString=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendString''' |
+ | |- | ||
+ | | colspan="2" | Sends a string to the GSM module. | ||
+ | |- | ||
|- | |- | ||
− | | | + | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING |
+ | | width="90%" | Text | ||
|- | |- | ||
+ | | 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'' | ||
|} | |} | ||
+ | ===SendTextMessage=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SendTextMessage''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Sends the text message data specified to the number specified using the SMS protocol. Returns 0 for success and 255 for failure. |
|- | |- | ||
|- | |- | ||
− | | width="10%" align="center | + | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING |
− | | width="90% | + | | width="90%" | Number |
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
− | | | + | | colspan="2" | |
− | |||
|- | |- | ||
− | | | + | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING |
+ | | width="90%" | Message | ||
|- | |- | ||
+ | | colspan="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 265: | Line 319: | ||
+ | ===StringReceive=== | ||
{| class="wikitable" style="width:60%; background-color:#FFFFFF;" | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
|- | |- | ||
| 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;" | ''' | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''StringReceive''' |
|- | |- | ||
− | | colspan="2" | | + | | colspan="2" | Attempts to receive a string from the GSM modem. |
|- | |- | ||
|- | |- | ||
Line 276: | Line 331: | ||
| width="90%" style="border-top: 2px solid #000;" | ''Return'' | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
|} | |} | ||
− | |||
− | |||
Line 313: | Line 366: | ||
| colspan="2" | ASCII based AT command data stored in ROM and used when sending script 1 | | colspan="2" | ASCII based AT command data stored in ROM and used when sending script 1 | ||
|- | |- | ||
− | | width="10%" align="center" style="background-color:# | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] |
− | | width="90%" style="background-color:# | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Connections |
|- | |- | ||
|- | |- | ||
Line 347: | Line 400: | ||
| colspan="2" | | | colspan="2" | | ||
|- | |- | ||
− | | width="10%" align="center" style="background-color:# | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] |
− | | width="90%" style="background-color:# | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation |
|- | |- | ||
|- | |- |
Latest revision as of 12:38, 13 March 2023
Author | Matrix Ltd. |
Version | 2.0 |
Category | Wireless |
Contents
GSM (EB066, Generic AT) component
Low level routines for controlling a standard AT GSM / GPRS interface Also available in the form of the EB066 GSM E-block.
Component Source Code
Please click here to download the component source project: FC_Comp_Source_GSM.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_GSM.fcfx
Detailed description
No detailed description exists yet for this component
Examples
Example program that checks for network connection and then allows a number to be texted or voice dialled.
Waits for connection to be established before allowing texts or calls to be made.
The number at the top of the file in the calculation icon needs to be edited to a number to connect to for texts and calls.
Arduino Connections:
D8-D13 - LEDs / D8 = Connection Status - Flashing = Connecting / D9 Text sending / D10 Call Active
D0-D7 - GSM
A0-A5 - Switches - A0 = Send Text / A1 = Start voice call / A2 = End call
PIC Connections
B0-B7 - LEDs / B0 = Connection Status - Flashing = Connecting / B1 Text sending / B2 Call Active
C0-C7 - GSM
A0-A7 - Switches - A0 = Send Text / A1 = Start voice call / A2 = End call
Macro reference
AnswerIncomingCall
AnswerIncomingCall | |
Answers the phone for an incoming type call. Returns 0 for success and 255 for failure. | |
- BYTE | Return |
CheckForIncoming
CheckForIncoming | |
Checks to see if any incoming phone call or SMS message. 0 = Nothing, 1 = Text Received, 2 = Phone Ringing | |
- BYTE | Return |
CheckNetworkStatus
CheckNetworkStatus | |
Returns the state of the GSM network. 0 = Not connected, 1 = connected, 255 = no reply from GSM. | |
- BYTE | Return |
DeleteAllMessages
DeleteAllMessages | |
Removes all pending text messages from the GSM module. Returns 0 for success and 255 for fail. | |
- BYTE | Return |
DialNumber
DialNumber | |
Performs a standard voice call by dialling the number specified. Returns 0 for call in progress and 255 for no response. | |
- STRING | Number |
- BYTE | Return |
GetTextNumber
GetTextNumber | |
Collects the sender's phone number from an incoming text message. | |
- BYTE | NumBytes |
- STRING | Return |
GetTextString
GetTextString | |
Collects the text message data from an incoming text message. | |
- BYTE | NumBytes |
- STRING | Return |
HangUpCall
HangUpCall | |
Ends a voice based call. Returns 0 for success and 255 for failure. | |
- BYTE | Return |
Initialise
Initialise | |
Sets up the GSM module. Returns 0 for OK, 255 for no reply and 254 for command fail. | |
- BYTE | Return |
ReadString
ReadString | |
Copies the data from the data string array to a local string variable | |
- BYTE | NumBytes |
- STRING | Return |
SendCommand
SendCommand | |
Sends a command string to the GSM module. 0 = Command sent ok, 255 = No Reply | |
- STRING | Command |
- BYTE | SendCR |
- BYTE | Return |
SendScript
SendScript | |
Send an AT command script. Returns 0 for fail, 1 for success and 255 for unrecognised script idx. | |
- BYTE | idx |
- BYTE | Return |
SendString
SendString | |
Sends a string to the GSM module. | |
- STRING | Text |
- VOID | Return |
SendTextMessage
SendTextMessage | |
Sends the text message data specified to the number specified using the SMS protocol. Returns 0 for success and 255 for failure. | |
- STRING | Number |
- STRING | Message |
- BYTE | Return |
StringReceive
StringReceive | |
Attempts to receive a string from the GSM modem. | |
- BYTE | Return |