The program must be written in C and needs to be compiled with gcc to use with different architectures (intel/amd, x86, ARM, 32/64bit) to run on normal linux pcs as well as on embedded devices like Netgear ReadyNAS, Rasperry Pi, AVM FritzBox and alike.
The daemon must have a config file, in which the following settings must be made:
- usb device (eg. /dev/usb01)
- api_key (some string of any length provided to each install of the daemon individually)
- local port the daemon listens on (eg. 6055)
The daemon does 3 things:
1. on startup and after that every 5 minutes, calls a remote url ([login to view URL]) to retrieve the public ip address of the computer it is running on. If the daemon just started or the ip address has changed compared to a previous check, it will call another remote url with the new ip address and the api_key over a SSL encrypted call ([login to view URL];api_key=xyz)
2. Establish a connection to the usb device (which basically behaves like a serial modem) and listens to it. Every time the usb device sends something, the data is pushed over an SSL encrypted call to a remote url (eg. [login to view URL];data=abc)
3. Listen on the configured port for incoming SSL encrypted socket connection which contains the valid api_key and data to be handed to the usb device.
The code must be easy to maintain (eg. change the remote urls; not via the config!), well documented and follow best practices in c programming as well as design principles.
The usb device uses this protocol: FHZ 1000 ([login to view URL])
I have written several daemons similar to this. I am very familiar with socket programming and performing embedded HTML transactions. I teach C programming (among other things) and demand extremely good coding style. As an undergraduate, I was on the 4-man team that placed 3rd in the ACM international programming competition. I will do it right, and I will do it quickly.
Please check our PM. We are a team of high qualified programmers, all senior students of Computer Science Engineering at a world-class university. Thank You,
«« SOLID PROGRAMMING Group. »»