Пиша тестова платформа за Linux за безжични сензорни мрежи. Основната цел е да се тества трансферът на данни между всеки два възела. Мрежата работи с помощта на дървовидна топология. Един възел в мрежата е "Драйвер". Този възел е свързан чрез сериен порт към компютър с Linux. Това, което се опитвам да напиша, е софтуерът на този компютър с Linux, който ще управлява трансфера на данни в мрежата.
Възелът "Драйвер", приемайки команди от софтуера, работещ на компютър с Linux, ще изпрати съобщение за искане на данни до възел на подател. Изпращащият възел ще анализира съобщението за заявка на данни и ще започне прехвърлянето на данни към „Драйвера“. Могат да съществуват множество такива податели. Всички трансфери на данни са от подателите към възела „Драйвер“. Възелът "Драйвер" предава всички данни, които получава, към приложението на linux. Приложението за Linux следи колко пакета са получени от различните податели.
Следват изискванията.
- Всеки възел в мрежата може да бъде драйвер (дестинация) и всеки възел може да бъде подател.
- Във всеки един момент може да има множество податели, които изпращат данни към възела „Драйвер“.
- Данните, получени от сериен порт и изпратени чрез сериен порт от приложението на linux, се записват във файл.
- Приложението за Linux трябва да може да чете съобщения за искане на данни от файл и да ги изпраща в определени моменти.
- GUI за това Linux приложение. Целият код с е на C, така че изборът на GUI ще трябва да се постави добре с C.
Един последен обрат: данните от изпращача до „водача“ са фрагментирани данни. От страна на изпращача фрагментацията се обработва в самото устройство. От страна на "Драйвер" фрагментирането ще се обработва в приложението за Linux. Така че приложението на linux ще трябва да следи прозореца за фрагментиране и да изпраща потвърждение на фрагмента за всяко прехвърляне на данни, което се извършва с множество податели, и да следи броя на пакетите, получени досега от всеки подател.
И така, в приложението за linux, начинът да има няколко нишки - една нишка за всеки изпращач? Ще работят ли добре няколко нишки с един сериен порт за изпращане и получаване едновременно?
Ще бъдат оценени съвети относно всяко изискване. Основната идея е да се тества прехвърлянето на данни, особено събирането на данни (няколко възела, изпращащи данни към един възел). Ако се предложи подход, различен от описания по-горе, аз съм повече от добре дошъл да ги чуя.
Благодаря много
Джеймс