473,387 Members | 1,621 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Linux Wireless Network Testbed

Hi all,

I am writing a linux testbed for wireless sensor networks. The core objective is to test data transfer between any two nodes. The network runs using tree topology.
One node in the network is the "Driver". This node is connected using serial port to a linux PC. What I am trying to write is the software on this linux PC that will drive data transfer in the network.

The "Driver" node, taking commands from the software running on linux PC, will send out data request message to a Sender node. The Sender node will parse the data request message and commence data transfer to the "Driver". Multiple such Senders can exist. All data transfers is from the Senders to the "Driver" node. The "Driver" node passes all the data it receives to the linux application. The linux application keeps track of how many packets have been received from the different Senders.

Following are the requirements.

1. Any node in the network can be the driver (destination) and any node can be the Sender.
2. There can be multiple Senders at any give time, sending data to the "Driver" node.
3. The data received from serial port and sent by serial port by the linux application are logged to a file.
4. The linux application should be able to read data request messages from a file and send them out at specified times.
5. A GUI for this linux application. All the code with be in C, so the GUI choice will have to place nice with C.

One final twist: the data from Sender to "Driver" is fragmented data. On the Sender side fragmentation is handled in the device itself. On the "Driver" side fragmentation will be handled in the linux application. So the linux application will have to keep track of the fragmentation window and send fragment ack for each of the data transfer going on with the multiple senders, and keep track of the number of packets received so far from each Sender.

So in the linux application, is the way to go having multiple threads - one thread for each Sender? Will multiple threads play nice with one serial port for
sending and receiving simultaneously?

Advise on any requirement will be appreciated. The basic idea is to test data transfer, especially data gathering(several nodes sending data to one node) . If a different approach than outlined above is suggested I am more than welcome to hear them too.

Thanks a bunch

James
Jun 8 '09 #1
4 2907
donbock
2,426 Expert 2GB
You mention that any node can be the Driver.

Can two or more nodes be the Driver simultaneously? If not, how do you arbitrate Driver-ness? That is, how do you move Driver-ness from one node to another?

The following questions are only meaningful if two or more Drivers are allowed at the same time ...

Even if two nodes are allowed to be driver simultaneously, it is unlikely that they are both allowed to talk to the same Sender at the same time. How do you arbitrate access to any particular Sender?

Can one node be both a Driver and a Sender (responding to some other Driver) at the same time? Can a pair of nodes be both Driver and Sender to each other?
Jun 8 '09 #2
You mention that any node can be the Driver.

Can two or more nodes be the Driver simultaneously? If not, how do you arbitrate Driver-ness? That is, how do you move Driver-ness from one node to another?

There can be more than one Driver at a time.

The following questions are only meaningful if two or more Drivers are allowed at the same time ...

Even if two nodes are allowed to be driver simultaneously, it is unlikely that they are both allowed to talk to the same Sender at the same time. How do you arbitrate access to any particular Sender?

A Sender at any time talks to only one Driver. This has to taken care of by test case design - chosing offline which Driver is going to request data from which Sender.

Can one node be both a Driver and a Sender (responding to some other Driver) at the same time? Can a pair of nodes be both Driver and Sender to each other?

No a node cannot be Driver and Sender at the same time.
Jun 11 '09 #3
I am thinking of a slightly different requirement. I want to run all the nodes on a single PC. The software should drive the entire network. The network will have multiple Drivers and Senders. A node cannot be Driver and Sender at same time though.
A Sender will only talk to one Driver at a time. I am thinking of having one process that reads data from all serial ports. I think I can go with select() for non blocking I/O and read/write from/to several serial ports.
Now how do I run each driver? Is it better to have each driver as a process or a thread? Any other different architecture in mind?
Jun 11 '09 #4
donbock
2,426 Expert 2GB
@james457
An important aspect of test design is to sweep out those corner cases and verify that the software properly handles exceptional conditions. You want test cases that provoke both of those exception cases.

Bugs in the nominal functionality are quickly found and fixed; but bugs in the exception handlers only manifest sporadically and tend to not be repeatable -- they tend to stick around.
Jun 12 '09 #5

Sign in to post your reply or Sign up for a free account.

Similar topics

2
by: Larry | last post by:
I'm trying to find information on how to write (perferable dot net based) application services to work with 802.11B wireless devices (such as Linksys WMA11B media Adapter). My first goal is to...
0
by: Steve Chen | last post by:
Wireless Search with Summarized Results/Web Pages, powered by Google! We just released a wireless search service. The wireless search service takes the results returned by Google and gives key...
8
by: Debbie | last post by:
Thank you for any help you can give me. I have a database that I've been working on... a backend for the server and front ends for the users. Now I've found out that the network is wireless and...
4
by: Al | last post by:
Hi, Although my application perform nicely in wired network, the performance in wireless network is very bad (I have tested in 802.11b). Would appreciate if anyone could suggest how I can improve...
45
by: Arno R | last post by:
Hi all, I am about to distribute an A97-runtime app. which will be used on a LAN by approx. 30 users. The network is pretty good, but there are a few managers who have wireless laptops... Of...
2
by: JCB19 | last post by:
I need help networking my HP DV4000 laptop to my home network. I have wireless home network with 3 computers using Linksys Wireless G The laptop has built in wireless capability. I want to...
1
by: inamul | last post by:
I cann't connect to my wireless since i removed an adware. I have tried everthing from installing Drivers to system restore. but nothing seems to work. Actaully i can conncet using network...
1
by: Nefrit | last post by:
OK this is my situation: This coming Friday I will be getting Telewest broadband installed in my house, along with my PC there are 3 other PC's and 1 Laptop, making a total of 5 all using Windows....
8
by: Bob Alston | last post by:
I just acquired a pro bono nonprofit client who has various problems with Access that they want me to address. In our initial discussion, they mentioned that their network is a LInksys wireless...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.