EMS Data Map Format - Please Discuss!
Posted: Wed Nov 19, 2008 12:02 am
We need a way of representing what is inside the EMS in terms of data and how to get it out. This should be maintained by myself and/or other firmware guys. I was originally thinking that I learn to write a python data object, BUT, thats no use to Marcos or David or anyone else wanting to interface with it.
So, we need a generic format that each app can parse and use to build structures and interact with the device. I need to maintain it, and you all need to be able to parse it. I want to maintain it so that I have some control over the quality of the mapping from raw data to meaningful objects.
There will be the following blocks of data :
2 sets of
{
3 x 1k VE tables
1 x 1k lambda table
2 x 1k fuel timing
2 x 1k ign timing
}
= 16 tables each block is one data structure
2 sets of
{
1 x 1k live tunable vars and small tables
1 x 1k live tunable vars and small tables
1 x 1k live tunable vars and small tables
1 x 1k live tunable vars and small tables
}
= 8 1k blocks of data with many smaller tables and arrays and vars embedded. I intend to make each small table referencable by ID individually, but burning down will need to be done as a block for now.
1 set of
{
1 x 1k fixed non live tunable configs
1 x 1k fixed non live tunable configs
}
= 2 1k blocks in flash only with similar embedded settings etc.
1 set of
{
1 x 2k IAT lookup table
1 x 2k CHT lookup table
1 x 2k MAF lookup table
}
= 3 2k blocks in flash only for converting ADC readings to real values.
29 blocks so far, IDs are 0 - 28
RAM read and write for those that are in ram
Copy from ram to flash for those that are in ram
Flash read and write for all
tables can be adjusted in 3 ways other than a full block write : x axis, y axis, cell by x and y.
full tables are validated when sent. the embedded tables may be validated too, but unsure yet. may take too much flash in code...
inside the config stuff, each item will have a size and offset. it should also have a reference by name and a display name, and a description of what it does and is about. I should provide most of that as I'm writing the code that uses them...
So, what format do we want, plain XML, what structure, XSD driven for preciseness?
Please shoot with ideas and or examples of structure definition files if you are feeling like designing them!
Fred.
So, we need a generic format that each app can parse and use to build structures and interact with the device. I need to maintain it, and you all need to be able to parse it. I want to maintain it so that I have some control over the quality of the mapping from raw data to meaningful objects.
There will be the following blocks of data :
2 sets of
{
3 x 1k VE tables
1 x 1k lambda table
2 x 1k fuel timing
2 x 1k ign timing
}
= 16 tables each block is one data structure
2 sets of
{
1 x 1k live tunable vars and small tables
1 x 1k live tunable vars and small tables
1 x 1k live tunable vars and small tables
1 x 1k live tunable vars and small tables
}
= 8 1k blocks of data with many smaller tables and arrays and vars embedded. I intend to make each small table referencable by ID individually, but burning down will need to be done as a block for now.
1 set of
{
1 x 1k fixed non live tunable configs
1 x 1k fixed non live tunable configs
}
= 2 1k blocks in flash only with similar embedded settings etc.
1 set of
{
1 x 2k IAT lookup table
1 x 2k CHT lookup table
1 x 2k MAF lookup table
}
= 3 2k blocks in flash only for converting ADC readings to real values.
29 blocks so far, IDs are 0 - 28
RAM read and write for those that are in ram
Copy from ram to flash for those that are in ram
Flash read and write for all
tables can be adjusted in 3 ways other than a full block write : x axis, y axis, cell by x and y.
full tables are validated when sent. the embedded tables may be validated too, but unsure yet. may take too much flash in code...
inside the config stuff, each item will have a size and offset. it should also have a reference by name and a display name, and a description of what it does and is about. I should provide most of that as I'm writing the code that uses them...
So, what format do we want, plain XML, what structure, XSD driven for preciseness?
Please shoot with ideas and or examples of structure definition files if you are feeling like designing them!
Fred.