Mario Bambagini
/
library_ssWi
example for the ssWi library
main.cpp
- Committer:
- mariob
- Date:
- 2012-09-07
- Revision:
- 1:0c9911bd5715
- Parent:
- 0:8145d0de8bdc
- Child:
- 3:a0d27c04263e
File content as of revision 1:0c9911bd5715:
#include "mbed.h" #include "rtos.h" #include "xbee.hpp" #include "ssWiSocket.hpp" struct Task { PortID _id; float _period; ssWiSocket* _s; int _val; Task (PortID id, float period, int value) { _id = id; _period = period; _s = ssWiSocket::createSocket(id); _val = value; } }; void readingFunction(const void* arg); void writingFunction(const void* arg); int main() { printf("\n\r************* CONFIG *************\n\r"); //radio module XBeeModule xbee(p9, p10, 102, 14); XBeeAddress addr = xbee.getLocalAddress(); printf("XBEE: src addr: %s,%s\n\r", addr.getHighAddr().c_str(), addr.getLowAddr().c_str()); xbee.setDstAddress(XBeeBroadcastAddress()); XBeeAddress addr2 = xbee.getDstAddress(); printf("XBEE: dts addr: %s,%s\n\r", addr2.getHighAddr().c_str(), addr2.getLowAddr().c_str()); printf("XBEE: channel: %d\n\r", xbee.getChannel()); printf("XBEE: pan id: %d\n\r", xbee.getPanID()); //wireless network xbee.init(10, 20); Task t1(10, 1.0, 20); Task t2(15, 1.2, 30); Task t3(100, 0.9, 25); Task t4(120, 1.1, 65); //thread Thread readingThread1(readingFunction, (void*)&t1); Thread readingThread2(readingFunction, (void*)&t2); Thread readingThread3(readingFunction, (void*)&t3); Thread readingThread4(readingFunction, (void*)&t4); Thread writingThread1(writingFunction, (void*)&t1); Thread writingThread2(writingFunction, (void*)&t2); Thread writingThread3(writingFunction, (void*)&t3); Thread writingThread4(writingFunction, (void*)&t4); printf("\n\r************* START *************\n\r"); while(1); } void readingFunction(const void* arg) { Task* task = (Task*)arg; while(1) { if (task->_s==NULL) printf("SOCKET: error\n\n"); else printf("Read value: %d\n\r", task->_s->read()); wait(task->_period); } } void writingFunction(const void* arg) { Task* task = (Task*)arg; while(1) { if (task->_s==NULL) printf("SOCKET: error\n\n"); else task->_s->write(task->_val++); wait(task->_period); } }