example for the ssWi library
main.cpp
- Committer:
- mariob
- Date:
- 2020-04-17
- Revision:
- 8:ffe1815b6deb
- Parent:
- 7:f3ba13c6d56e
File content as of revision 8:ffe1815b6deb:
#include "mbed.h"
#include "xbee.hpp"
#include "ssWiSocket.hpp"
#define TARGET_ID 1
int readValue = 0;
int writtenValue = 0;
void code_state(int);
Thread readingThread;
Thread writingThread;
void readingFunction();
void writingFunction();
//Serial pc(USBTX, USBRX, "pc", 9600);
#define UPDATE_RATE_MS 1000
int main()
{
//pc.printf("\n\r************* CONFIG *************\n\r");
code_state(0);
//radio module
XBeeModule xbee(p9, p10, 102, 14);
//XBeeAddress addr = xbee.getLocalAddress();
code_state(1);
xbee.setDstAddress(XBeeBroadcastAddress());
code_state(2);
//XBeeAddress addr2(0, 0);
//xbee.getDstAddress(addr2);
//xbee.getChannel();
//xbee.getPanID();
//wireless network
xbee.init(5, 10);
srand(time(0));
code_state(4);
thread_sleep_for(UPDATE_RATE_MS);
//thread
readingThread.start(readingFunction);
writingThread.start(writingFunction);
while (true) {
//code_state(writtenValue);
//thread_sleep_for(UPDATE_RATE_MS);
code_state(readValue);
thread_sleep_for(UPDATE_RATE_MS);
}
return 0;
}
#define READ_FUNCTION_MS 1000
#define WRITE_FUNCTION_MS 3000
#define PORT_ID_TARGET_1 2
#define PORT_ID_TARGET_2 10
void readingFunction()
{
PortID id = TARGET_ID == 1 ? PORT_ID_TARGET_1 : PORT_ID_TARGET_2;
ssWiSocket* s = ssWiSocket::createSocket(id);
while (1) {
readValue = s->read();
thread_sleep_for(READ_FUNCTION_MS);
}
}
void writingFunction() {
PortID id = TARGET_ID == 1 ? PORT_ID_TARGET_2 : PORT_ID_TARGET_1;
ssWiSocket* s = ssWiSocket::createSocket(id);
writtenValue = TARGET_ID == 1 ? 3 : 0;
while (1) {
s->write(writtenValue++);
thread_sleep_for(WRITE_FUNCTION_MS);
}
}
void code_state(int val) {
static DigitalOut led1(LED1);
static DigitalOut led2(LED2);
static DigitalOut led3(LED3);
led1 = val % 2;
led2 = (val >> 1) % 2;
led3 = (val >> 2) % 2;
}
Mario Bambagini