Linux Raspberry UDP communication component
Budget: $250 – $750 USD
** as part of the offer please provide comments to the 2 questions at the end of this description **
The product should be a basic communication component handling low-volume, ca. 20-100-byte command messages with rather relaxed performance requirements. The messages will be coming on a non-regular basis from a few clients over a Wi-Fi local network, typically say 2 clients. The server should also support its part of a detection mechanism that should allow the clients to automatically detect the address IP of the server (on the same router), like UPnP or even better a custom method, possibly simple but reliable.
All the clients that have sent a message to the server should be registered in a simple IP list. Then every message from one client should be automatically re-sent over Wi-Fi/UDP to all registered IP-s.
There is no need to confirm the messages in either way. Consequently it seems that UDP is the right protocol to be used (to be confirmed by the contractor).
Additionally the component should implement low-level basic RX and TX interfacing over one UART and one I2C port.
The target HW environment will be Raspberry Pi Zero 2W with Linux.
The sending and receiving code should execute possibly in the background in order to allow to use the host Linux platform to perform other processing in parallel.
The component should be 2-way and use simple circular queues to buffer RX and TX messages. I have attached a draft, base class Qued with a very simple own implementation of such a circular message queue. The class needs to be provided with missing code for the T UDP interface handling and preparing the contents for the existing PUT_MSG method.
The contractor can freely propose changes or a different implementation of this queue mechanism.
I also attached a separate .docx with a stepwise specification for the key program logic related to UDP RX queue handling that also explains the use of UART TX and I2C RX/TX interfacing that is needed.
As part of the offer I would like to ask for your proposition of the approach to the component development, in particular:
1) What Wi-Fi network mechanism do you recommend to use for server detection at the clients
2) The preferred project language is C/C++. Please describe what dev environment tools you propose to use for the project work and what tools and knowledge I myself would need to have to maintain and modify the project on my own after it is completed (I have pretty good knowledge of C/C++).
Please include also the descriptions of similar projects delivered.
The product should be a basic communication component handling low-volume, ca. 20-100-byte command messages with rather relaxed performance requirements. The messages will be coming on a non-regular basis from a few clients over a Wi-Fi local network, typically say 2 clients. The server should also support its part of a detection mechanism that should allow the clients to automatically detect the address IP of the server (on the same router), like UPnP or even better a custom method, possibly simple but reliable.
All the clients that have sent a message to the server should be registered in a simple IP list. Then every message from one client should be automatically re-sent over Wi-Fi/UDP to all registered IP-s.
There is no need to confirm the messages in either way. Consequently it seems that UDP is the right protocol to be used (to be confirmed by the contractor).
Additionally the component should implement low-level basic RX and TX interfacing over one UART and one I2C port.
The target HW environment will be Raspberry Pi Zero 2W with Linux.
The sending and receiving code should execute possibly in the background in order to allow to use the host Linux platform to perform other processing in parallel.
The component should be 2-way and use simple circular queues to buffer RX and TX messages. I have attached a draft, base class Qued with a very simple own implementation of such a circular message queue. The class needs to be provided with missing code for the T UDP interface handling and preparing the contents for the existing PUT_MSG method.
The contractor can freely propose changes or a different implementation of this queue mechanism.
I also attached a separate .docx with a stepwise specification for the key program logic related to UDP RX queue handling that also explains the use of UART TX and I2C RX/TX interfacing that is needed.
As part of the offer I would like to ask for your proposition of the approach to the component development, in particular:
1) What Wi-Fi network mechanism do you recommend to use for server detection at the clients
2) The preferred project language is C/C++. Please describe what dev environment tools you propose to use for the project work and what tools and knowledge I myself would need to have to maintain and modify the project on my own after it is completed (I have pretty good knowledge of C/C++).
Please include also the descriptions of similar projects delivered.