Create webpage, which transforms a DBC message into single line C assignments to get and set the signals

Job ID: 32429634

Budget: €8 – €30 EUR

HI! I need a webpage, where I am able to paste a can signal like for example this one:

BO_ 217056000 Message_Name 8 Vector_XXX
SG_ Signal_One : 4|15@1+ (2,100) [min|max] "unit" Vector_XXX
SG_ Signal_Name : 28|24@0- (2,100) [min|max] "unit" Vector_XXX

and which then transforms this can signal into getter and setter one-liners like this:

Getters:
uint16_t Signal_One = (((can_frame_r.data[0]& 0xf0 ) >>4 ) | (can_frame_r.data[1] ) <<4) | ((can_frame_r.data[2]& 0x7 ) <<12 ))*2+100;
int32_t Signal_Two = ...

Setters:
uint16_t Signal_One_tmp = (Signal_One -100)/2
data[0] = (Signal_One_tmp <<4) & 0xf0
data[1] = (Signal_One_tmp >>4) & 0xff
data[2] = (Signal_One_tmp >>12) & 0x7
...

Here is more info about the DBC file format:
https://www.csselectronics.com/pages/can-dbc-file-database-intro

And here is even a playground:
https://docs.google.com/spreadsheets/d/1X6VQBkqRX0a6QLd4oFbAos_ps3zrpVc86CVGd67DoSs/edit?usp=sharing
If you copy it, you are able to change the yellow marked data and see, how they impact the result.

BUT please do not underestimate the work!!!!! The hard part is that sometimes, the data is not just on one byte, so it can start at any bit and end at any bit, it can be unsigned or signed, it can be with big endian or with little endian, so your program should support all these things! And it should also support the scale and the offset!

And remember, in the setter function, it is possible that one byte like for example data[2] consists of multiple different signals!