Mario Bambagini
/
library_ssWi
example for the ssWi library
main.cpp@8:ffe1815b6deb, 2020-04-17 (annotated)
- Committer:
- mariob
- Date:
- Fri Apr 17 15:23:08 2020 +0000
- Revision:
- 8:ffe1815b6deb
- Parent:
- 7:f3ba13c6d56e
updated
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mariob | 1:0c9911bd5715 | 1 | #include "mbed.h" |
mariob | 1:0c9911bd5715 | 2 | |
mariob | 1:0c9911bd5715 | 3 | #include "xbee.hpp" |
mariob | 1:0c9911bd5715 | 4 | #include "ssWiSocket.hpp" |
mariob | 1:0c9911bd5715 | 5 | |
mariob | 8:ffe1815b6deb | 6 | #define TARGET_ID 1 |
mariob | 6:0d434f4c83bd | 7 | |
mariob | 8:ffe1815b6deb | 8 | int readValue = 0; |
mariob | 8:ffe1815b6deb | 9 | int writtenValue = 0; |
mariob | 8:ffe1815b6deb | 10 | |
mariob | 8:ffe1815b6deb | 11 | void code_state(int); |
mariob | 1:0c9911bd5715 | 12 | |
mariob | 8:ffe1815b6deb | 13 | Thread readingThread; |
mariob | 8:ffe1815b6deb | 14 | Thread writingThread; |
mariob | 1:0c9911bd5715 | 15 | |
mariob | 8:ffe1815b6deb | 16 | void readingFunction(); |
mariob | 8:ffe1815b6deb | 17 | void writingFunction(); |
mariob | 1:0c9911bd5715 | 18 | |
mariob | 8:ffe1815b6deb | 19 | //Serial pc(USBTX, USBRX, "pc", 9600); |
mariob | 1:0c9911bd5715 | 20 | |
mariob | 8:ffe1815b6deb | 21 | #define UPDATE_RATE_MS 1000 |
mariob | 4:989ea19b8fd2 | 22 | |
mariob | 1:0c9911bd5715 | 23 | int main() |
mariob | 1:0c9911bd5715 | 24 | { |
mariob | 8:ffe1815b6deb | 25 | |
mariob | 8:ffe1815b6deb | 26 | //pc.printf("\n\r************* CONFIG *************\n\r"); |
mariob | 8:ffe1815b6deb | 27 | |
mariob | 8:ffe1815b6deb | 28 | code_state(0); |
mariob | 1:0c9911bd5715 | 29 | |
mariob | 1:0c9911bd5715 | 30 | //radio module |
mariob | 1:0c9911bd5715 | 31 | XBeeModule xbee(p9, p10, 102, 14); |
mariob | 8:ffe1815b6deb | 32 | //XBeeAddress addr = xbee.getLocalAddress(); |
mariob | 8:ffe1815b6deb | 33 | |
mariob | 8:ffe1815b6deb | 34 | code_state(1); |
mariob | 8:ffe1815b6deb | 35 | |
mariob | 1:0c9911bd5715 | 36 | xbee.setDstAddress(XBeeBroadcastAddress()); |
mariob | 8:ffe1815b6deb | 37 | |
mariob | 8:ffe1815b6deb | 38 | code_state(2); |
mariob | 8:ffe1815b6deb | 39 | |
mariob | 8:ffe1815b6deb | 40 | //XBeeAddress addr2(0, 0); |
mariob | 8:ffe1815b6deb | 41 | //xbee.getDstAddress(addr2); |
mariob | 8:ffe1815b6deb | 42 | //xbee.getChannel(); |
mariob | 8:ffe1815b6deb | 43 | //xbee.getPanID(); |
mariob | 1:0c9911bd5715 | 44 | |
mariob | 1:0c9911bd5715 | 45 | //wireless network |
mariob | 6:0d434f4c83bd | 46 | xbee.init(5, 10); |
mariob | 4:989ea19b8fd2 | 47 | |
mariob | 4:989ea19b8fd2 | 48 | srand(time(0)); |
mariob | 4:989ea19b8fd2 | 49 | |
mariob | 8:ffe1815b6deb | 50 | code_state(4); |
mariob | 4:989ea19b8fd2 | 51 | |
mariob | 8:ffe1815b6deb | 52 | thread_sleep_for(UPDATE_RATE_MS); |
mariob | 1:0c9911bd5715 | 53 | |
mariob | 1:0c9911bd5715 | 54 | //thread |
mariob | 8:ffe1815b6deb | 55 | readingThread.start(readingFunction); |
mariob | 8:ffe1815b6deb | 56 | writingThread.start(writingFunction); |
mariob | 7:f3ba13c6d56e | 57 | |
mariob | 8:ffe1815b6deb | 58 | while (true) { |
mariob | 8:ffe1815b6deb | 59 | //code_state(writtenValue); |
mariob | 8:ffe1815b6deb | 60 | //thread_sleep_for(UPDATE_RATE_MS); |
mariob | 8:ffe1815b6deb | 61 | code_state(readValue); |
mariob | 8:ffe1815b6deb | 62 | thread_sleep_for(UPDATE_RATE_MS); |
mariob | 8:ffe1815b6deb | 63 | } |
mariob | 1:0c9911bd5715 | 64 | |
mariob | 8:ffe1815b6deb | 65 | return 0; |
mariob | 1:0c9911bd5715 | 66 | } |
mariob | 1:0c9911bd5715 | 67 | |
mariob | 8:ffe1815b6deb | 68 | #define READ_FUNCTION_MS 1000 |
mariob | 8:ffe1815b6deb | 69 | #define WRITE_FUNCTION_MS 3000 |
mariob | 4:989ea19b8fd2 | 70 | |
mariob | 8:ffe1815b6deb | 71 | #define PORT_ID_TARGET_1 2 |
mariob | 8:ffe1815b6deb | 72 | #define PORT_ID_TARGET_2 10 |
mariob | 8:ffe1815b6deb | 73 | |
mariob | 8:ffe1815b6deb | 74 | void readingFunction() |
mariob | 1:0c9911bd5715 | 75 | { |
mariob | 8:ffe1815b6deb | 76 | PortID id = TARGET_ID == 1 ? PORT_ID_TARGET_1 : PORT_ID_TARGET_2; |
mariob | 8:ffe1815b6deb | 77 | ssWiSocket* s = ssWiSocket::createSocket(id); |
mariob | 8:ffe1815b6deb | 78 | |
mariob | 8:ffe1815b6deb | 79 | while (1) { |
mariob | 8:ffe1815b6deb | 80 | readValue = s->read(); |
mariob | 8:ffe1815b6deb | 81 | thread_sleep_for(READ_FUNCTION_MS); |
mariob | 1:0c9911bd5715 | 82 | } |
mariob | 1:0c9911bd5715 | 83 | } |
mariob | 1:0c9911bd5715 | 84 | |
mariob | 8:ffe1815b6deb | 85 | void writingFunction() { |
mariob | 8:ffe1815b6deb | 86 | PortID id = TARGET_ID == 1 ? PORT_ID_TARGET_2 : PORT_ID_TARGET_1; |
mariob | 8:ffe1815b6deb | 87 | ssWiSocket* s = ssWiSocket::createSocket(id); |
mariob | 8:ffe1815b6deb | 88 | |
mariob | 8:ffe1815b6deb | 89 | writtenValue = TARGET_ID == 1 ? 3 : 0; |
mariob | 8:ffe1815b6deb | 90 | |
mariob | 8:ffe1815b6deb | 91 | while (1) { |
mariob | 8:ffe1815b6deb | 92 | s->write(writtenValue++); |
mariob | 8:ffe1815b6deb | 93 | thread_sleep_for(WRITE_FUNCTION_MS); |
mariob | 8:ffe1815b6deb | 94 | } |
mariob | 1:0c9911bd5715 | 95 | } |
mariob | 8:ffe1815b6deb | 96 | |
mariob | 8:ffe1815b6deb | 97 | void code_state(int val) { |
mariob | 8:ffe1815b6deb | 98 | static DigitalOut led1(LED1); |
mariob | 8:ffe1815b6deb | 99 | static DigitalOut led2(LED2); |
mariob | 8:ffe1815b6deb | 100 | static DigitalOut led3(LED3); |
mariob | 8:ffe1815b6deb | 101 | |
mariob | 8:ffe1815b6deb | 102 | led1 = val % 2; |
mariob | 8:ffe1815b6deb | 103 | led2 = (val >> 1) % 2; |
mariob | 8:ffe1815b6deb | 104 | led3 = (val >> 2) % 2; |
mariob | 8:ffe1815b6deb | 105 | } |