Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed-rtos mbed VodafoneUSBModem_bleedingedge
Diff: main.cpp.orig
- Revision:
- 21:7068b39d3006
- Parent:
- 20:27f878df6d14
- Parent:
- 18:ad4ae0caf337
- Child:
- 24:e825e2b57d62
--- a/main.cpp.orig Thu Sep 27 13:18:02 2012 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/* net_sms_test.cpp */
-/*
-Copyright (C) 2012 ARM Limited.
-
-Permission is hereby granted, free of charge, to any person obtaining a copy of
-this software and associated documentation files (the "Software"), to deal in
-the Software without restriction, including without limitation the rights to
-use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
-of the Software, and to permit persons to whom the Software is furnished to do
-so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
-*/
-
-#define __DEBUG__ 4 //Maximum verbosity
-#ifndef __MODULE__
-#define __MODULE__ "main.cpp"
-#endif
-
-#define MY_PHONE_NUMBER "+447717275049"
-
-#include "core/fwk.h"
-#include "mbed.h"
-#include "rtos.h"
-#include "VodafoneUSBModem.h"
-
-#include <string>
-
-extern "C" void HardFault_Handler() {
- error("Hard Fault!\n");
-}
-
-DigitalOut led1(LED1); // LED 1 is used to show the state of the door. ON is door open, and OFF is door close.
-DigitalOut led2(LED2);
-DigitalOut led3(LED3); // LED 3 is use to indicate if the relay is being switched on to open the door
-DigitalOut led4(LED4);
-DigitalOut doorContactorRelay(p5); // create a digital pin object to control the door contactor relay
-DigitalIn doorProximitySwitch(p6); // create a digital pin object to sense door position proximity switch, this works in reverse
- // the switch senses positive when the door is closed - need to be sure when it's closed! :-)
-bool openTheDoor = false; // create a state variable which is set to indicate the mbed should open the door
- // this variable will be used hold the latch open until it knows the door has been open.
-int read_digital(void) {
- DigitalIn mydigital(p6);
- return(mydigital.read());
-}
-
-void test(void const*) {
- VodafoneUSBModem connectionManager; // create a connection manager object
-
- DBG("Hello world and Vodafone K3770 test program!");
-
- connectionManager.sendSM(MY_PHONE_NUMBER, "Hello from mbed door controller:)");
-
- char num[17]; // create a buffer to hold the telephone number in
- char msg[160]; // create a buffer to hold the text message in
- size_t count;
-
- while(true)
- {
-
- // if this state variable has been set I need to keep the doorContactor on until the door is open
- if ((openTheDoor) || (doorProximitySwitch.read() == 0))
- {
-
- doorContactorRelay = 0; // door must be open now so switch relay off.
- openTheDoor = false; // the door is open now so set it to false.
- led3 = 0; // switch the LED light off to indicate I'm switching the relay off
-
- }
-
- // check the state of the door and switch the LED light to 'ON' for door open and 'OFF' for door closed.
- //if (doorProximitySwitch.read() == 0)
- if (read_digital() == 0)
- {
- DBG("The door proximity switch is: %d so I think it's open", doorProximitySwitch.read() );
- led1 = 1;
- }
- else
- {
- DBG("The door proximity switch is: %d so I think it's closed", doorProximitySwitch.read() );
- led1 = 0;
- }
-
-
-
- int ret = connectionManager.getSMCount(&count); // check to see if there is an incoming SMS message
- if(ret)
- {
- WARN("getSMCount returned %d", ret);
- Thread::wait(125);
- continue;
- }
-
- DBG("The SMS count is now at: %d for this modem", count);
- if( count > 0) // if there are messages in the mailbox start pulling them off the queue
- {
- DBG("%d SMS to read", count);
- ret = connectionManager.getSM(num, msg, 160);
-
- if(ret)
- {
- WARN("getSM returned %d", ret);
- Thread::wait(125);
- continue;
- }
-
- DBG("The message is from number: %s and the message is: \"%s\"", num, msg);
-
- if (strcmp (msg, "open") ==0)
- {
- DBG("The SMS message indicates I should open the door");
-
- // check the door is not already open if it is do nothing and send a warning back to the sender
- // for this door the switch 'true' then its closed - we have to have an active signal to show it's securely closed
-
- if ( doorProximitySwitch.read() == 0)
- {
- DBG("The door is already open - so I'll do nothing");
- connectionManager.sendSM(num, " WARNING - The door is already open sir! ");
- }
- else
- {
- doorContactorRelay = 1;
- openTheDoor = true; // set the state vairable to let the door contoller know it needs to open the door
- led3 = 1;
- DBG("The relay has been activated to open the door");
- connectionManager.sendSM(num, " Door open sir... Welcome home! " );
- }
- }
- else
- {
- DBG("The SMS message is not recognized");
- connectionManager.sendSM(num, " Wrong password sir... Try 'open' and I'll open! ;-) ");
- }
-
-
-
- }
- Thread::wait(500);
- }
-
-}
-
-void keepAlive(void const*) {
- while(1)
- {
- led2=!led2;
- Thread::wait(500);
- }
-}
-
-void tick()
-{
- led4=!led4;
-}
-
-int main() {
- Ticker t;
- t.attach(tick,1);
- DBG_INIT();
- DBG_SET_SPEED(115200);
-
- Thread testTask(test, NULL, osPriorityNormal, 1024*5);
- keepAlive(NULL);
-
-
- return 0;
-}

