example for the ssWi library

Dependencies:   ssWi

Committer:
mariob
Date:
Fri Apr 17 15:23:08 2020 +0000
Revision:
8:ffe1815b6deb
Parent:
7:f3ba13c6d56e
updated

Who changed what in which revision?

UserRevisionLine numberNew 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 }