V1
Dependencies: simple-mbed-client
main.cpp@0:94dec0f696e0, 2017-02-24 (annotated)
- Committer:
- johnlynam2014
- Date:
- Fri Feb 24 15:13:38 2017 +0000
- Revision:
- 0:94dec0f696e0
- Child:
- 1:bb3336b7e953
iug
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
johnlynam2014 | 0:94dec0f696e0 | 1 | #include "mbed.h" |
johnlynam2014 | 0:94dec0f696e0 | 2 | #include "rtos.h" |
johnlynam2014 | 0:94dec0f696e0 | 3 | #include "config.h" |
johnlynam2014 | 0:94dec0f696e0 | 4 | #include "security.h" |
johnlynam2014 | 0:94dec0f696e0 | 5 | #include "easy-connect.h" |
johnlynam2014 | 0:94dec0f696e0 | 6 | #include "simple-mbed-client.h" |
johnlynam2014 | 0:94dec0f696e0 | 7 | |
johnlynam2014 | 0:94dec0f696e0 | 8 | SimpleMbedClient client; |
johnlynam2014 | 0:94dec0f696e0 | 9 | |
johnlynam2014 | 0:94dec0f696e0 | 10 | // Declare our peripherals here |
johnlynam2014 | 0:94dec0f696e0 | 11 | /*PwmOut red(LED_RED); |
johnlynam2014 | 0:94dec0f696e0 | 12 | PwmOut green(LED_GREEN); |
johnlynam2014 | 0:94dec0f696e0 | 13 | PwmOut blue(LED_BLUE);*/ |
johnlynam2014 | 0:94dec0f696e0 | 14 | DigitalOut red(LED_RED); |
johnlynam2014 | 0:94dec0f696e0 | 15 | DigitalOut green(LED_GREEN); |
johnlynam2014 | 0:94dec0f696e0 | 16 | DigitalOut blue(LED_BLUE); |
johnlynam2014 | 0:94dec0f696e0 | 17 | |
johnlynam2014 | 0:94dec0f696e0 | 18 | InterruptIn pir(SW2); |
johnlynam2014 | 0:94dec0f696e0 | 19 | |
johnlynam2014 | 0:94dec0f696e0 | 20 | // We need a way to signal from an interrupt context -> main thread, use a Semaphore for it... |
johnlynam2014 | 0:94dec0f696e0 | 21 | Semaphore updates(0); |
johnlynam2014 | 0:94dec0f696e0 | 22 | |
johnlynam2014 | 0:94dec0f696e0 | 23 | // YOUR CODE HERE |
johnlynam2014 | 0:94dec0f696e0 | 24 | // Fwd declaration |
johnlynam2014 | 0:94dec0f696e0 | 25 | |
johnlynam2014 | 0:94dec0f696e0 | 26 | // Variable that holds whether the light is on because the PIR sensor triggered (and timeout didn't happen yet) |
johnlynam2014 | 0:94dec0f696e0 | 27 | bool ledOnBecauseOfPir = false; |
johnlynam2014 | 0:94dec0f696e0 | 28 | |
johnlynam2014 | 0:94dec0f696e0 | 29 | // Timeout based on led/0/timeout, disables the light after a set interval |
johnlynam2014 | 0:94dec0f696e0 | 30 | Timeout pirTimeout; |
johnlynam2014 | 0:94dec0f696e0 | 31 | |
johnlynam2014 | 0:94dec0f696e0 | 32 | // Permanent statuses (set by led/0/permanent_status) |
johnlynam2014 | 0:94dec0f696e0 | 33 | #define STATUS_NONE 0 |
johnlynam2014 | 0:94dec0f696e0 | 34 | #define STATUS_ON 1 |
johnlynam2014 | 0:94dec0f696e0 | 35 | #define STATUS_OFF 2 |
johnlynam2014 | 0:94dec0f696e0 | 36 | |
johnlynam2014 | 0:94dec0f696e0 | 37 | |
johnlynam2014 | 0:94dec0f696e0 | 38 | |
johnlynam2014 | 0:94dec0f696e0 | 39 | // Here are our resources: |
johnlynam2014 | 0:94dec0f696e0 | 40 | |
johnlynam2014 | 0:94dec0f696e0 | 41 | SimpleResourceString name = client.define_resource("device/0/name", "jan", M2MBase::GET_PUT_ALLOWED, true);//User name |
johnlynam2014 | 0:94dec0f696e0 | 42 | SimpleResourceString sensorName = client.define_resource("device/0/sensorName", "jan", M2MBase::GET_PUT_ALLOWED, true);//Module Name |
johnlynam2014 | 0:94dec0f696e0 | 43 | SimpleResourceInt UltraSonicData = client.define_resource("device/0/USdata", 0, M2MBase::GET_ALLOWED);//UltraSonicData |
johnlynam2014 | 0:94dec0f696e0 | 44 | //SimpleResourceInt pirCount = client.define_resource("pir/0/count", 0, M2MBase::GET_ALLOWED); |
johnlynam2014 | 0:94dec0f696e0 | 45 | |
johnlynam2014 | 0:94dec0f696e0 | 46 | // Registered callback for mbed Client |
johnlynam2014 | 0:94dec0f696e0 | 47 | DigitalOut statusLed(LED1, 1); |
johnlynam2014 | 0:94dec0f696e0 | 48 | void registered() { |
johnlynam2014 | 0:94dec0f696e0 | 49 | printf("Welcome John Lynam"); |
johnlynam2014 | 0:94dec0f696e0 | 50 | statusLed = 0; |
johnlynam2014 | 0:94dec0f696e0 | 51 | } |
johnlynam2014 | 0:94dec0f696e0 | 52 | |
johnlynam2014 | 0:94dec0f696e0 | 53 | int main(int, char**) { |
johnlynam2014 | 0:94dec0f696e0 | 54 | |
johnlynam2014 | 0:94dec0f696e0 | 55 | sensorName = "Front Window 2"; |
johnlynam2014 | 0:94dec0f696e0 | 56 | name = "John Lynam"; |
johnlynam2014 | 0:94dec0f696e0 | 57 | UltraSonicData = 20; |
johnlynam2014 | 0:94dec0f696e0 | 58 | /* |
johnlynam2014 | 0:94dec0f696e0 | 59 | int i; |
johnlynam2014 | 0:94dec0f696e0 | 60 | for( i = 0; i < 20; i++) |
johnlynam2014 | 0:94dec0f696e0 | 61 | { |
johnlynam2014 | 0:94dec0f696e0 | 62 | wait(0.5); |
johnlynam2014 | 0:94dec0f696e0 | 63 | i = UltraSonicData; |
johnlynam2014 | 0:94dec0f696e0 | 64 | }*/ |
johnlynam2014 | 0:94dec0f696e0 | 65 | |
johnlynam2014 | 0:94dec0f696e0 | 66 | |
johnlynam2014 | 0:94dec0f696e0 | 67 | red=1; |
johnlynam2014 | 0:94dec0f696e0 | 68 | green=1; |
johnlynam2014 | 0:94dec0f696e0 | 69 | blue=1; |
johnlynam2014 | 0:94dec0f696e0 | 70 | |
johnlynam2014 | 0:94dec0f696e0 | 71 | |
johnlynam2014 | 0:94dec0f696e0 | 72 | NetworkInterface* network = easy_connect(true); |
johnlynam2014 | 0:94dec0f696e0 | 73 | if (!network) { |
johnlynam2014 | 0:94dec0f696e0 | 74 | printf("Connect to internet failed... See serial output.\n"); |
johnlynam2014 | 0:94dec0f696e0 | 75 | return 1; |
johnlynam2014 | 0:94dec0f696e0 | 76 | } |
johnlynam2014 | 0:94dec0f696e0 | 77 | |
johnlynam2014 | 0:94dec0f696e0 | 78 | struct MbedClientOptions options = client.get_default_options(); |
johnlynam2014 | 0:94dec0f696e0 | 79 | options.DeviceType = "Wifi_Sonic_Test"; |
johnlynam2014 | 0:94dec0f696e0 | 80 | if (!client.setup(options, network)) { |
johnlynam2014 | 0:94dec0f696e0 | 81 | printf("Setting up mbed_client failed...\n"); |
johnlynam2014 | 0:94dec0f696e0 | 82 | return 1; |
johnlynam2014 | 0:94dec0f696e0 | 83 | } |
johnlynam2014 | 0:94dec0f696e0 | 84 | |
johnlynam2014 | 0:94dec0f696e0 | 85 | client.on_registered(®istered); |
johnlynam2014 | 0:94dec0f696e0 | 86 | |
johnlynam2014 | 0:94dec0f696e0 | 87 | } |