Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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);
}
}