Qt5-C++ / C synchronization server and client using nanopb implementation of googles ProtoBuf

For our new IoT project we need a synchronization module: a UDP Server (Qt5-C++, any SQL database) and a corresponding client (C based, limited recources) based on the nanopb implementation of googles Protocol Buffers.

The whole synchronization is always initiated by the client: in certain intervals the client will setup a request-ProtocolBuffers message, send it via UDP to the server and the server processes the request, fetches database results and sends back a response-UDP-packet containing the response-ProtocolBuffers-message.

There are 5 types of synchronization:

1.) state: simple transfer of a state struct to the server and update the corresponding database entry

2.) settings: request current settings from the database, apply them locally to a settings struct and send back the applied settings as confirmation to the server (which will be there handled similar to the state)

3.) tokens (similar to settings): request new tokens from the DB, apply them on the client, send back applied tokens and update database

4.) files: request file updates (based on versions in the settings), files should be transferred in 256bytes chunks and written locally using fopen(), fwrite(APPEND), fclose() making sure the local files are consistent, no chunk is missing or in the wrong order.

5.) logging: provide a function in the client which takes a snapshot of the state struct, e.g. every 5 seconds, appends it to a file "[login to view URL]" and after the file reaches a certain size, try to send the file to the server. In opposition to the "state" this should also work while the client is offline and just synchronize all the missed states when the client is online again.

The client software has to be written with very efficient use of resources in mind (nanopb provides herefore the callback based parsing of the messages) as the embedded target environment has a total RAM of 64kBytes.

Every functional block in the code should be commented with a short english description. Every source file with a longer descriptional text how to use the provided functionality.

There are some samples for the client attached which can be taken as startingpoint for developement.

For the server also exists a basic running proof of concept as a QT project, which can be handed out once agreed on the project to ease the startup phase.

Skills: C Programming, C++ Programming, Embedded Software, Qt, SQL

See more: file synchronization server client, simple java chat server client using nio, client server project using, sample client server programs using, client using java socket server, simple client server chatting using java, simple client server program using, using system server client socket programming aspnet, client server interactions using, server client banking application using j2me, client server program using, chat server client using socket, client server projects using

About the Employer:
( 1 review ) Berlin, Germany

Project ID: #16316768

12 freelancers are bidding on average €1262 for this job


Dear employer. I am Gang Lee, developer . I've just read your job posting and I'm very interested. I'm a certificated freelancer with almost 900 good reviews from clients. I'm a Good C, C++,c#,Object-C, Video Stre More

€1500 EUR in 20 days
(622 Reviews)

I have more than 10 years of experience in professional C/C++ software development. I have experience in Qt 4/5 development a very large application I'm nice in network programmin I have an experince in low-level C More

€1194 EUR in 20 days
(51 Reviews)

Hello, I propose to complete your project with perfection right on time. Please provide us with an opportunity to help you and you will be served nothing less than excellence. I am eager to show you my previous work/p More

€1250 EUR in 20 days
(1 Review)

hello,how are you. i read your bid carefully. i am c/c++, qt expert and have full experience for 10 years. c++ language is my top skill. i can provide most quality and high speed. if you want to success, please con More

€1250 EUR in 20 days
(4 Reviews)

i am interested to do the project if you want i can do high overview plan of the project please send private message thank you

€1111 EUR in 15 days
(14 Reviews)

A proposal has not yet been provided

€1312 EUR in 20 days
(1 Review)

Hi Sir, We are the best IOT Team here. we can do this project for you. Lets talk to us. We are professional engineers and developers who do such projects from the last eight years. We offer you our skills for More

€2000 EUR in 20 days
(15 Reviews)
€1500 EUR in 21 days
(6 Reviews)

Hello, I'm professional C/C++ programmer and I have strong knoledge in Qt5+ . I guarantee quality code and software, doing exactly what You want it to. Also, I can provide you with daily updates. Contact me if More

€1200 EUR in 20 days
(15 Reviews)

My name is Expert Developer. i am professional developer and I am Expert in C Programming, C++ Programming, Embedded Software, Qt, SQL. i have completed 200+ based projects in programming with 100% client satisfactio More

€750 EUR in 7 days
(0 Reviews)

Hi there, I’d like to be considered for your job position. I’m a Web Developer with a strong background developing with back end & front end. I can turn your requirement in a way that represents your brand and app More

€1244 EUR in 20 days
(0 Reviews)
€833 EUR in 20 days
(1 Review)