From 1fc06a15089af9f8d3b6200c596fc484b5641ba8 Mon Sep 17 00:00:00 2001 From: Fred Cooke Date: Thu, 24 Nov 2011 00:01:48 +0100 Subject: [PATCH] BIG documentation clear out and clean up. Still more work to do, but this is a big step in the right direction with a lot of irrelevant stuff removed and one more document converted to LaTex. This commit also removes three unimplemented payload IDs from the ID file and two from the comms routines which provided no functionality. YAGNI. Additionally it adds a latex git ignore and a small simple make file to clean up after latexing. Lastly A small fix went into the tex template. --- docs/calculators/{dwellTime.ods => DwellTime.ods} | Bin .../{injectorDeadTime.ods => InjectorDeadTime.ods} | Bin .../{warmUpCurve.ods => WarmUpCurve.ods} | Bin docs/interface/ConfigurationDataStructure.odg | Bin 13772 -> 0 bytes docs/interface/FreeEMS-DDL.mm | 206 ------ docs/interface/FreeEMS-DDL.xsd | 3 - docs/interface/FreeEMS-XML2C.xsl | 6 - docs/interface/IFreeEMS-Vanilla-DDD.xml | 137 ---- docs/interface/draftsAndIdeas/DatalogExample.js | 107 --- .../IFreeEMS-Vanilla-Interface-Data-Map.js | 104 --- ...reeEMS-Vanilla-Interface-Packet-Descriptions.js | 104 --- ...EMS-Vanilla-Interface-Structure-Descriptions.js | 179 ----- docs/interface/draftsAndIdeas/SettingsExample.js | 28 - docs/interface/draftsAndIdeas/basicDatalog.txt | 185 ----- .../some.good.default.data.and.curves.xml | 792 --------------------- .../structure.relationships.description.txt | 7 - docs/migrate/latex/.gitignore | 9 + docs/migrate/latex/FreeEMS-template.tex | 2 +- docs/migrate/latex/Makefile | 5 + .../latex/SerialProtocolCoreSpecification.tex | 36 +- .../latex/VanillaSerialProtocolInterface.tex | 159 +++++ src/commsCore.c | 12 - src/inc/packetTypes.h | 6 - 23 files changed, 207 insertions(+), 1880 deletions(-) rename docs/calculators/{dwellTime.ods => DwellTime.ods} (100%) rename docs/calculators/{injectorDeadTime.ods => InjectorDeadTime.ods} (100%) rename docs/calculators/{warmUpCurve.ods => WarmUpCurve.ods} (100%) delete mode 100644 docs/interface/ConfigurationDataStructure.odg delete mode 100644 docs/interface/FreeEMS-DDL.mm delete mode 100644 docs/interface/FreeEMS-DDL.xsd delete mode 100644 docs/interface/FreeEMS-XML2C.xsl delete mode 100644 docs/interface/IFreeEMS-Vanilla-DDD.xml delete mode 100644 docs/interface/draftsAndIdeas/DatalogExample.js delete mode 100644 docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Data-Map.js delete mode 100644 docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Packet-Descriptions.js delete mode 100644 docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Structure-Descriptions.js delete mode 100644 docs/interface/draftsAndIdeas/SettingsExample.js delete mode 100644 docs/interface/draftsAndIdeas/basicDatalog.txt delete mode 100644 docs/interface/draftsAndIdeas/some.good.default.data.and.curves.xml delete mode 100644 docs/interface/draftsAndIdeas/structure.relationships.description.txt create mode 100644 docs/migrate/latex/.gitignore create mode 100644 docs/migrate/latex/Makefile create mode 100644 docs/migrate/latex/VanillaSerialProtocolInterface.tex diff --git a/docs/calculators/dwellTime.ods b/docs/calculators/DwellTime.ods similarity index 100% rename from docs/calculators/dwellTime.ods rename to docs/calculators/DwellTime.ods diff --git a/docs/calculators/injectorDeadTime.ods b/docs/calculators/InjectorDeadTime.ods similarity index 100% rename from docs/calculators/injectorDeadTime.ods rename to docs/calculators/InjectorDeadTime.ods diff --git a/docs/calculators/warmUpCurve.ods b/docs/calculators/WarmUpCurve.ods similarity index 100% rename from docs/calculators/warmUpCurve.ods rename to docs/calculators/WarmUpCurve.ods diff --git a/docs/interface/ConfigurationDataStructure.odg b/docs/interface/ConfigurationDataStructure.odg deleted file mode 100644 index a613c645224fdecfd333efaaebd25fc31b2455cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 13772 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 diff --git a/docs/interface/FreeEMS-DDL.mm b/docs/interface/FreeEMS-DDL.mm deleted file mode 100644 index 065eead..0000000 --- a/docs/interface/FreeEMS-DDL.mm +++ /dev/null @@ -1,206 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/interface/FreeEMS-DDL.xsd b/docs/interface/FreeEMS-DDL.xsd deleted file mode 100644 index 8ec95f3..0000000 --- a/docs/interface/FreeEMS-DDL.xsd +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/docs/interface/FreeEMS-XML2C.xsl b/docs/interface/FreeEMS-XML2C.xsl deleted file mode 100644 index 7c795ea..0000000 --- a/docs/interface/FreeEMS-XML2C.xsl +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/docs/interface/IFreeEMS-Vanilla-DDD.xml b/docs/interface/IFreeEMS-Vanilla-DDD.xml deleted file mode 100644 index ccbdfa9..0000000 --- a/docs/interface/IFreeEMS-Vanilla-DDD.xml +++ /dev/null @@ -1,137 +0,0 @@ - - - 0.0.0 - 0.0.0 IFreeEMS Vanilla - - - Data Packing - Please note, if your embedded system compiler produces unpacked structs you must either specifiy the padding explicitly, or stuff the data into a packed format before sending. - - - Payload ID Length - Length refers to the fields specified in contents. See hasData to know if a non-specific argument should be passed. If hasData is true, then at least one byte of data shall be expected. - - - Another Note - Makes it obvious what the structure will be like. - - - - - 0x1000 - fakeError - Just an example of how an error might look in the XML. - - - 0x0666 - satanicError - Even more obvious that there will be more than one error. - - - - - 0xDA5E - retrieveListOfLocationIDs - Current - Copy/Paste from OO doc when this becomes final - 3 - False - - - - - - - 0xDA5F - listOfLocationIDs - Current - Copy/Paste from OO doc when this becomes final - 0 - True - - - - - - - mainTable - The main table format used (mostly?) for load/RPM lookups of engine running parameters. - - - - - - - - RPMLength - The length of the RPM axis array - uint16 - - - - LoadLength - The length of the Load axis array - uint16 - - - - RPM - The array of RPM (X) axis values - uint16 array[MAINTABLE_MAX_RPM_LENGTH] - - - - Load - The array of Load (Y) axis values - uint16 array[MAINTABLE_MAX_LOAD_LENGTH] - - - - Table - The table as an array of values - uint16 array[MAINTABLE_MAX_MAIN_LENGTH] - - - - - - twoDTableUS - A two dimensional table of unsigned shorts for both values and indices. Currently the only table other than main that is used. - - - - Axis - Array of axis values - uint16 array[TWODTABLEUS_LENGTH] - - - - Values - Array of value values - uint16 array[TWODTABLEUS_LENGTH] - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/interface/draftsAndIdeas/DatalogExample.js b/docs/interface/draftsAndIdeas/DatalogExample.js deleted file mode 100644 index 90b9a30..0000000 --- a/docs/interface/draftsAndIdeas/DatalogExample.js +++ /dev/null @@ -1,107 +0,0 @@ -{ - "FreeEMSStructuredDataLog": { - "MetaData": { - "DateTimeStarted": "2008/11/22 07:22:57 GMT", - "DateTimeLastWritten": "2008/11/22 07:22:58 GMT", - "FirmwareVersionUniqueIdentifier": "FreeEMS Vanilla 0.0.17 pre-alpha", - "TuningToolName": "FreeEMS-Tuner", - "TuningToolVersion": "0.1 build 200811220726r", - "VehicleProfileIdentifier": "SweetHBCosmo1", - "UserNotes": "This wxPython app rocks!" - }, - "Columns": [ - {"Name": "AppSeq", "Unit": "Logs", "Description": "The index of a particular log entry as the application received them."}, - {"Name": "EMSSeq", "Unit": "Logs", "Description": "The index of a particular log entry as FreeEMS sent them."}, - {"Name": "RPM", "Unit": "RPM", "Description": "Revolutions Per Minute - The rotational speed of the engine."}, - {"Name": "MAP", "Unit": "kPa", "Description": "Manifold Absolute Pressure - The pressure in the intake manifold in kilo Pascals."}, - {"Name": "CHT", "Unit": "*C", "Description": "Coolant/Head Temperature - The temperature of the engine itself."}, - {"Name": "IAT", "Unit": "*C", "Description": "Inlet Air Temperature - The temperature of the air the engine was breathing."}, - {"Name": "TPS", "Unit": "%", "Description": "Throttle Position Sensor - The proportion that the thottle plates are open."}, - {"Name": "EGO", "Unit": "Lambda", "Description": "Exhaust Gas Oxygen - How rich or lean the exhaust gas stream is."}, - {"Name": "AAP", "Unit": "kPa", "Description": "Absolute Atmospheric Pressure - An indicator of exhaust scavenging efficiency."}, - {"Name": "BRV", "Unit": "V", "Description": "Battery Reference Voltage - The current voltage at the battery reference sense wire."}, - {"Name": "MAT", "Unit": "*C", "Description": "Manifold Air Temperature - What temperature the air is inside the intake manifold."}, - {"Name": "EGO2", "Unit": "Lambda", "Description": "Exhaust Gas Oxygen - How rich or lean the exhaust gas stream is."}, - {"Name": "IAP", "Unit": "kPa", "Description": "Intercooler Absolute Pressure - The pressure in the intake before the throttle."}, - {"Name": "MAF", "Unit": "Flow", "Description": "Mass Air Flow - A direct measurement of air flow through the engine."}, - {"Name": "DMAP", "Unit": "DkPa", "Description": "Delta MAP - The rate of change of MAP."}, - {"Name": "DTPS", "Unit": "D%", "Description": "Delta TPS - The rate of change of TPS."}, - {"Name": "DRPM", "Unit": "DRPM", "Description": "Delta RPM - The rate of change of RPM."}, - {"Name": "DDRPM", "Unit": "DDRPM", "Description": "Delta Delta RPM - The rate of change of the rate of change of RPM."}, - {"Name": "LoadMain","Unit": "%", "Description": "Engine Load - Usually configured to be the same as MAP."}, - {"Name": "Boost", "Unit": "PSI", "Description": "Boost Presssure - Pressure in the manifold in Pounds per Square Inch."}, - {"Name": "VEMain", "Unit": "%", "Description": "Volumetric Efficiency - The proportion of cylinder filling occurring."}, - {"Name": "Lambda", "Unit": "Lambda", "Description": "Lambda Target - The Lambda we are aiming to achieve."}, - {"Name": "BasePW", "Unit": "ms", "Description": "Base Pulse Width - Fuel injection pulse width before applying corrections."}, - {"Name": "IDT", "Unit": "ms", "Description": "Injector Dead Time - How long per pulse the injector spends powered up and closed."}, - {"Name": "ETE", "Unit": "ms/%", "Description": "Engine Temperature Enrichment - Fuel added to assist warm up or cool when hot."}, - {"Name": "TFCTotal","Unit": "ms/%", "Description": "Transient Fuel Correction - Fuel added to ensure Lambda during rapid changes."}, - {"Name": "FinalPW", "Unit": "ms", "Description": "Final Pulse Width - Fuel injection pulse width before individual cylinder trims."}, - {"Name": "RefPW", "Unit": "ms", "Description": "Reference Pulse Width - Currently Base + Dead Time."}, - {"Name": "IgnAdv", "Unit": "*BTDC", "Description": "Ignition Advance - Degrees Before Top Dead Centre"}, - {"Name": "Dwell", "Unit": "ms", "Description": "Dwell - How long the coil has battery voltage applied to it before the spark event."}, - {"Name": "Time", "Unit": "s", "Description": "How long since the device started up it has been."} - ], - "Data": [ - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7}, - {3.14159,8,7,23,5,5,6,8,11,8,76,54,22,3,44,33,45,6,7,8,66,8,76,5,4,3,77,3,4,56,7} - ] - } -} diff --git a/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Data-Map.js b/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Data-Map.js deleted file mode 100644 index de904fd..0000000 --- a/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Data-Map.js +++ /dev/null @@ -1,104 +0,0 @@ -{ - /* A formal definition of : */ - /* - What data is available */ - /* - How it can be accessed */ - /* - How it is structured */ - /* - How it to interpret it */ - "FreeEMSInterfaceDataMap": { - /* A four part interface versioning scheme consisting of : */ - /* - Unique Identifier Same across all versions of a given fork */ - /* - Major Version Significant jumps in functionality */ - /* - Minor Version Minor features or significant fixes */ - /* - Revision Number Initial dev and minor fixes only */ - "InterfaceVersionUniqueIdentifier": "IFreeEMS Vanilla", - "InterfaceVersionUniqueMajor": 0, - "InterfaceVersionUniqueMinor": 0, - "InterfaceVersionUniqueRevision": 1, - "DataBlocks": { - // TODO is this list required or desired? I suspect not, but as a double check maybe (ensure the intended blocks are all defined) ? - "BlockListByName": ["VE Table Main", "VE Table Secondary", "VE Table Tertiary", "Lambda Table", "etc"], - "BlockDefinition": { - "LocationID": 0, - "DisplayName": "VE Table Main", - "Description": "The main volumetric efficiency table as used for normal fuel injection calculations", - "SizeInBytes": 1024, - "Chunks": { - "Chunk": { - "PayloadIDs": [6, 8, 20, 24, 53], - "LocationID": null, - "DisplayName": "VE Table Main", - "SizeInBytes": 1024, - "OffsetInBytes": 0, - "ReplyPacketAttributes": { - "PacketAttribute": { - "Name": "Maximum RPM Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 0 - }, - "PacketAttribute": { - "Name": "Maximum Load Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 2 - }, - "PacketAttribute": { - "Name": "Maximum Table Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 4 - }, - "PacketAttribute": { - "Name": "VE Table Main", - "Type": "Structure", - "Length": 1024, - "LengthInBytes": 1024, - "OffsetInBytes": 6 - } - } - "Structure": { - "Element"{ - "Name": "RPM Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 0 - }, - "Element"{ - "Name": "Load Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 2 - }, - "Element"{ - "Name": "RPM Axis", - "Type": "Unsigned Short Array", - "Length": 27, - "LengthInBytes": 54, - "OffsetInBytes": 4 - }, - "Element"{ - "Name": "Load Axis", - "Type": "Unsigned Short Array", - "Length": 21, - "LengthInBytes": 42, - "OffsetInBytes": 58 - }, - "Element"{ - "Name": "Table", - "Type": "Unsigned Short Array", - "Length": 462, - "LengthInBytes": 924, - "OffsetInBytes": 100 - } - } - } - } - } - } - } -} diff --git a/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Packet-Descriptions.js b/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Packet-Descriptions.js deleted file mode 100644 index 190a1a9..0000000 --- a/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Packet-Descriptions.js +++ /dev/null @@ -1,104 +0,0 @@ -{ - /* A formal definition of : */ - /* - What data is available */ - /* - How it can be accessed */ - /* - How it is structured */ - /* - How it to interpret it */ - "FreeEMSInterfaceDataMap": { - /* A four part interface versioning scheme consisting of : */ - /* - Unique Identifier Same across all versions of a given fork */ - /* - Major Version Significant jumps in functionality */ - /* - Minor Version Minor features or significant fixes */ - /* - Revision Number Initial dev and minor fixes only */ - "InterfaceVersionUniqueIdentifier": "IFreeEMS Vanilla", - "InterfaceVersionUniqueMajor": 0, - "InterfaceVersionUniqueMinor": 0, - "InterfaceVersionUniqueRevision": 1, - "Packets": { - // TODO is this list required or desired? I suspect not, but as a double check maybe (ensure the intended blocks are all defined) ? - "BlockListByName": ["VE Table Main", "VE Table Secondary", "VE Table Tertiary", "Lambda Table", "etc"], - "BlockDefinition": { - "LocationID": 0, - "DisplayName": "VE Table Main", - "Description": "The main volumetric efficiency table as used for normal fuel injection calculations", - "SizeInBytes": 1024, - "Chunks": { - "Chunk": { - "PayloadIDs": [6, 8, 20, 24, 53], - "LocationID": null, - "DisplayName": "VE Table Main", - "SizeInBytes": 1024, - "OffsetInBytes": 0, - "ReplyPacketAttributes": { - "PacketAttribute": { - "Name": "Maximum RPM Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 0 - }, - "PacketAttribute": { - "Name": "Maximum Load Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 2 - }, - "PacketAttribute": { - "Name": "Maximum Table Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 4 - }, - "PacketAttribute": { - "Name": "VE Table Main", - "Type": "Structure", - "Length": 1024, - "LengthInBytes": 1024, - "OffsetInBytes": 6 - } - }, - "Structure": { - "Element": { - "Name": "RPM Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 0 - }, - "Element": { - "Name": "Load Axis Length", - "Type": "Unsigned Short", - "Length": 1, - "LengthInBytes": 2, - "OffsetInBytes": 2 - }, - "Element": { - "Name": "RPM Axis", - "Type": "Unsigned Short Array", - "Length": 27, - "LengthInBytes": 54, - "OffsetInBytes": 4 - }, - "Element": { - "Name": "Load Axis", - "Type": "Unsigned Short Array", - "Length": 21, - "LengthInBytes": 42, - "OffsetInBytes": 58 - }, - "Element": { - "Name": "Table", - "Type": "Unsigned Short Array", - "Length": 462, - "LengthInBytes": 924, - "OffsetInBytes": 100 - } - } - } - } - } - } - } -} diff --git a/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Structure-Descriptions.js b/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Structure-Descriptions.js deleted file mode 100644 index f003fc7..0000000 --- a/docs/interface/draftsAndIdeas/IFreeEMS-Vanilla-Interface-Structure-Descriptions.js +++ /dev/null @@ -1,179 +0,0 @@ -/* A formal definition of how the data objects are structured and how to interpret them */ -{ "$schema":{"$ref":"http://www.diyefi.org/InterfaceStructureDescriptions.JSONSchema"}, - /* The four part interface versioning scheme */ - "InterfaceVersionUniqueIdentifier": "IFreeEMS Vanilla", - "InterfaceVersionUniqueMajor": 0, - "InterfaceVersionUniqueMinor": 0, - "InterfaceVersionUniqueRevision": 1, - /* For megasquirt use the numeric version is not relevant. */ - "Primitives": [ - {"Key": "Character", "Length": 1, "LabelCount": 1, "Name": "Character"}, - {"Key": "BitFieldByte", "Length": 1, "LabelCount": 8, "Name": "Boolean Array[8]"}, - {"Key": "BitFieldWord", "Length": 2, "LabelCount": 16, "Name": "Boolean Array[16]"}, - {"Key": "BitFieldLong", "Length": 4, "LabelCount": 32, "Name": "Boolean Array[32]"}, - {"Key": "SignedByte", "Length": 1, "LabelCount": 1, "Name": "Integer Signed Char"}, - {"Key": "SignedWord", "Length": 2, "LabelCount": 1, "Name": "Integer Signed Short"}, - {"Key": "SignedLong", "Length": 4, "LabelCount": 1, "Name": "Integer Signed Long"}, - {"Key": "UnsignedByte", "Length": 1, "LabelCount": 1, "Name": "Integer Unsigned Char"}, - {"Key": "UnsignedWord", "Length": 2, "LabelCount": 1, "Name": "Integer Unsigned Short"}, - {"Key": "UnsignedLong", "Length": 4, "LabelCount": 1, "Name": "Integer Unsigned Long"} - ], - /* &&&&&&&&&&&&&& Transformation of the raw data stream. &&&&&&&&&&&&&& */ - /* */ - /* Character is just that, an unsigned byte interpreted as per the ISO */ - /* standard character encoding for the latin character set, ISO-8859-1. */ - /* */ - /* Bitfields are normal unsigned integers interpreted as a series of */ - /* bits representing one boolean flag each. As per the C standard zero */ - /* is considered 'false' and 1 considered 'true'. */ - /* */ - /* Integer types are either signed or unsigned, where the signed */ - /* representation is the standard two's complement format. */ - /* */ - /* The data transmitted by FreeEMS is sent in as a structured binary */ - /* stream in the form of sequential raw values. While some of these can */ - /* be read directly at face value simply by interpretting them as their */ - /* basic data type, most require transformation before they can be used */ - /* to understand the state of engine and other operating parameters. */ - /* */ - /* The first stage is to interpret a piece of the binary stream as a */ - /* raw value. There are two examples are given below, one signed and */ - /* the other unsigned. */ - /* */ - /* If the data type is SignedByte and a single byte is received, 0xAC */ - /* it must be converted from two's complement : */ - /* */ - /* 0xAC - 1 = 0xAB */ - /* 0xAB ^ 0xFF = 0x54 */ - /* 0x54 * -1 = -84 */ - /* */ - /* If the data type is UnsignedWord and two bytes are received, 0x76 */ - /* first and 0x3F second giving us 0x01CE then : */ - /* */ - /* 0x763F = 30271 */ - /* */ - /* Now suppose this is supposed to be a Lambda value, clearly it isn't */ */ - /* correct as it stands. */ - /* */ - /* A human readable value can be calculated using the offset and ratio */ - /* in the following way : */ - /* */ - /* ratio = between the raw value after offset is applied human value */ - /* offset = between the value sent and one that is scalable */ - /* raw value = numeric value of the data interpretted as its basic type */ - /* human value = a meaningful figure representing the quantity involved */ - /* */ - /* [human value] = ( [raw value] + [offset] ) * [ratio] */ - /* */ - /* Using our previous example we can assume it was a temperature with */ - /* the following attributes : */ - /* */ - /* unit = °C */ - /* ratio = 0.01 */ - /* offset = -27315 */ - /* raw value = 30271 */ - /* */ - /* human value = (30271 - 27315) * 0.01 */ - /* human value = 2956 * 0.01 */ - /* human value = 29.56 */ - /* */ - /* temperature = 29.56 °C */ - /* */ - /* Twenty nine and a half degrees celcius is fairly typical for a turbo */ - /* application assuming a reasonable ambient air temperature and fairly */ - /* efficient intercooler setup. */ - "Structures": [ - { - "Key": "MainTable", - "Name": "Main Table", - "Description": "Large variable size, three dimensional table (typically RPM, Load, VE/Lambda/Timing/etc).", - "SizeInBytes": 1024, - "Components": [ - { - "Name": "RPM Axis Length", - "Description": "How many RPM axis cells this table has.", - "Primitive": "UnsignedShort", - "Unit": "Cells", - "Count": 1 - }, - { - "Name": "Load Axis Length", - "Description": "How many Load axis cells this table has.", - "Primitive": "UnsignedShort", - "Unit": "Cells", - "Count": 1 - }, - { - "Name": "RPM Axis", - "Description": "The RPM axis values.", - "Primitive": "UnsignedShort", - "TransformDivisor": 2, /* 0 - 32767.5, 0.5 */ - "Count": 27 - "Unit": "RPM", - }, - { - "Name": "Load Axis", - "Description": "The Load axis values.", - "Primitive": "UnsignedShort", - "TransformDivisor": 100, /* 0 - 655.35, 0.01 */ - "Count": 21 - "Unit": "%", - }, - { - "Name": "VE Table", - "Description": "The Volumetric Efficiency table values.", - "Primitive": "UnsignedShort", - "TransformDivisor": 500, /* 0 - 131.07, 0.002 */ - "Count": 462, - "Unit": "%", - } - ] - }, - { - "Key": "LambdaTable", - "Name": "Lambda Table", - "Description": "Large variable size, three dimensional table (RPM, Load, Lambda).", - "SizeInBytes": 1024, - "Components": [ - { - "Name": "RPM Axis Length", - "Description": "How many RPM axis cells this table has.", - "Primitive": "UnsignedShort", - "Unit": "Cells", - "Count": 1 - }, - { - "Name": "Load Axis Length", - "Description": "How many Load axis cells this table has.", - "Primitive": "UnsignedShort", - "Unit": "Cells", - "Count": 1 - }, - { - "Name": "RPM Axis", - "Description": "The RPM axis values.", - "Primitive": "UnsignedShort", - "TransformDivisor": 2, /* 0 - 32767.5, 0.5 */ - "Count": 27 - "Unit": "RPM", - }, - { - "Name": "Load Axis", - "Description": "The Load axis values.", - "Primitive": "UnsignedShort", - "TransformDivisor": 100, /* 0 - 655.35, 0.01 */ - "Count": 21 - "Unit": "%", - }, - { - "Name": "Lambda Table", - "Description": "The Lambda table values.", - "Primitive": "UnsignedShort", - "TransformDivisor": 32768, /* 0 - 2.0, 0.00003 */ - "Count": 462, - "Unit": "%", - } - ] - } - ] -} diff --git a/docs/interface/draftsAndIdeas/SettingsExample.js b/docs/interface/draftsAndIdeas/SettingsExample.js deleted file mode 100644 index a50baec..0000000 --- a/docs/interface/draftsAndIdeas/SettingsExample.js +++ /dev/null @@ -1,28 +0,0 @@ -{ - "FreeEMSSavedSettings": { - "MetaData": { - "DateTimeSaved": "2008/11/22 07:22:57 GMT", - "FirmwareVersionUniqueIdentifier": "FreeEMS Vanilla 0.0.17 pre-alpha", - "InterfaceVersionUniqueIdentifier": "IFreeEMS Vanilla", - "InterfaceVersionUniqueMajor": 0, - "InterfaceVersionUniqueMinor": 0, - "InterfaceVersionUniqueRevision": 1, - "TuningToolName": "FreeEMS-Tuner", - "TuningToolVersion": "0.1 build 200811220726r", - "TuningProfileIdentifier": "SweetHBCosmo1", - "UserNotes": "This wxPython app rocks!" - }, - "Structure of settings....": "None yet, working on it...", - "Blocks": { - //blocks with ID of block type and then data in hex - "Block": { - "BlockID": 34, - "Data": [[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], - [ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31], - [ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47], - [ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63]], - "MD5SUM": "b2d3f56bc197fd985d5965079b5e7148" - } - } - } -} \ No newline at end of file diff --git a/docs/interface/draftsAndIdeas/basicDatalog.txt b/docs/interface/draftsAndIdeas/basicDatalog.txt deleted file mode 100644 index b8ff72d..0000000 --- a/docs/interface/draftsAndIdeas/basicDatalog.txt +++ /dev/null @@ -1,185 +0,0 @@ -[list=1] -[*]------------ Current Core Vars ------------ -[*]2 IAT -[*]2 CHT -[*]2 TPS -[*]2 EGO (lambda actual) -[*]2 MAP -[*]2 AAP -[*]2 BRV -[*]2 MAT -[*]2 EGO2 (lambda actual) -[*]2 IAP -[*]2 MAF -[*]2 DMAP -[*]2 DTPS -[*]2 RPM -[*]2 DRPM -[*]2 DDRPM -[*]------------ Current Derived Vars ------------ -[*]2 LoadMain -[*]2 VEMain -[*]2 Lambda (target) -[*]2 AirFlow -[*]2 densityAndFuel -[*]2 BasePW -[*]2 IDT -[*]2 ETE -[*]2 TFCTotal -[*]2 FinalPW -[*]2 RefPW -[*]------------ Suggested Definites -------------- -[*]Ignition advance base -[*]Dwell -[*]Time - See below -[*]Datalog sequence number incremented per log sent - 8 bits is enough, only looking for discontinuity anyway -[*]Spare variable fields to be somehow user configurable without code change 4 x 16 bits enough?) -[*]Flag vars = bit fields = on/off or yes/no or 0/1 for specific states of various things -[*]----------- Specific Flags ------------ -[*]Fully closed throttle on/off -[*]Fully open throttle on/off -[*]Fuel pump on/off -[*]AC input on/off -[*]AC output on/off -[*]Brake on/off -[*]Clutch on/off -[*]Idle bypass on/off -[*]Box in neutral on/off -[*]VVT - fixed - on/off -[*]VICS - fixed - on/off -[*]Power steer on/off -[*]Fans (1 or 2?) on/off -[*]CEL (how many) on/off -[*]Primary sync on/off -[*]Secondary sync on/off -[*]What else? Go nuts... I can only say no :-) -[*]Bank left/right of a V engine for the entire log -[*]------------ Suggested To Be Discussed ------------ -[*]Injection advance figures - v twin, siamese, standard, all to be considered, may require two fields. -[*]TFC - per algorithm ? -[*]------------ Non core, but desirable --------------- -[*]Idle valve Duty - should be generic enough to cover stepper and pwm, ie, not sure if duty is the right term -[*]Knock count -[*]Knock level -[*]Vehicle speed sensor -[*]Boost control duty -[*]Cooling fan duty (1 or 2) -[*]VVT angle value or duty value or both -[*]EGT sensor -[*]Fuel pressure -[*]Fuel temperature -[*]All fuel pulsewidths -[*]All ign advances -[*]Staged pulsewidth -[*]Timing error -[*]O2 Correction level -[*]Trigger input angle logging - primary and secondary -[*]What else? Go nuts... I can only say no :-) -[/list] - -Bit fields are cheap, so there should be more than enough of those to cater into the future. Word fields are expensive, so we should think carefully about what to include and what not to include. - -I think the structures used need some rework. I'd like to migrate the rpms and delta map out of core vars and replace them with ADC figures that correspond to the raw ADC array. I think some of the stuff in derived vars doesn't belong there too... We will also need some sort of accessory output struct or similar. Finally, I think it would be nice to have them all 16 fields long such that it is easy to mask them off on an individual basis for the configurable log. - -Some sort of internal running time stamp - perhaps add another clock that incs when some other rolls over? or perhaps just use the 32 bit ECT for this? Or maybe we should use a real time value from the clocks section so we have a time frame for everything. - -Additionally, the following fields are also available : - -RAW ADCs (useful to see noise pre averaging) : -[list=1] -[*]2 IAT -[*]2 CHT -[*]2 TPS -[*]2 EGO -[*]2 BRV -[*]2 MAP -[*]2 AAP -[*]2 MAT -[*]2 EGO2 -[*]2 IAP -[*]2 MAF -[*]2 SpareADC3 -[*]2 SpareADC4 -[*]2 SpareADC5 -[*]2 SpareADC6 -[*]2 SpareADC7 -[/list] - - -Clocks : -[list=1] -[*]2 realTimeClockMain -[*]2 realTimeClockMillis -[*]2 realTimeClockTenths -[*]2 realTimeClockSeconds -[*]2 realTimeClockMinutes -[*]2 millisToTenths -[*]2 tenthsToSeconds -[*]2 secondsToMinutes -[*]2 timeoutADCreadingClock -[/list] - -ISR Latencies : -[list=1] -[*]2 primaryInputLatency -[*]2 secondaryInputLatency -[*]2 Injector1Latency -[*]2 Injector2Latency -[*]2 Injector3Latency -[*]2 Injector4Latency -[*]2 Injector5Latency -[*]2 Injector6Latency -[*]2 DwellLatency -[*]2 IgniteLatency -[*]2 mathLatency ?? -[*]2 mathSampleTimeStamp [2] ?? -[/list] -(Can't remember what the story with those last math ones is) - -Runtimes : -[list=1] -[*]2 primaryInputLeadingRuntime -[*]2 primaryInputTrailingRuntime -[*]2 secondaryInputLeadingRuntime -[*]2 secondaryInputTrailingRuntime -[*]2 calcsRuntime -[*]2 genCoreVarsRuntime -[*]2 genDerivedVarsRuntime -[*]2 mathTotalRuntime -[*]2 mathSumRuntime -[*]2 RTCRuntime -[*]2 mainLoopRuntime -[*]2 logSendingRuntime -[*]2 serialISRRuntime -[/list] - -Counters : -[list=1] -[*]2 UISRCounter -[*]2 lowVoltISRCounter -[*]2 lostCrankSyncCounter -[*]2 lostCamSyncCounter -[*]2 lostRPMValidityCounter -[*]2 primaryTeethDroppedFromLackOfSync -[*]2 primaryTeethCounter -[*]2 secondaryTeethCounter -[*]2 syncedADCreadingCounter -[*]2 timeoutADCreadingCounter -[*]2 calcsPerformedCounter -[*]2 logsSentCounter -[*]2 serialPacketOverLengthCounter -[*]2 serialStartInsidePacketCounter -[*]2 serialEscapePairMismatchCounter -[*]2 serialChecksumMismatchCounter -[*]2 serialNoiseErrorCounter -[*]2 serialOverrunErrorCounter -[*]2 serialFramingErrorCounter -[*]2 serialParityErrorCounter -[*]2 serialDebugUnsentCounter -[/list] - -Many thanks to Jared's doxygen efforts which made creating this post a lot easier!! - -Many thanks to everyone that put ideas in too, keep them coming :-) - -Fred. \ No newline at end of file diff --git a/docs/interface/draftsAndIdeas/some.good.default.data.and.curves.xml b/docs/interface/draftsAndIdeas/some.good.default.data.and.curves.xml deleted file mode 100644 index 8ab8f06..0000000 --- a/docs/interface/draftsAndIdeas/some.good.default.data.and.curves.xml +++ /dev/null @@ -1,792 +0,0 @@ - - - - - - - - - 4 - 4 - - - - - - - - - Crank - 1 - 36 - 1 - 90.0 - - - 1 - First - 90.0 - - - - - 1023 - 0 - - - 250 - 0 - - - - 0 - 0 - - - 30 - 0 - - - - 0 - 0 - - - - - - - - - - - - - - - - - -4 - - - - - 6000 - 100 - - 6000 - 100 - - 6000 - 5 - 30 - - - - - - - MAP - None - Multiply - - No - 10.0 - - - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - 0.0 - - - - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - - - 0 - 1000 - 2000 - 3000 - 4000 - 5000 - 6000 - 7000 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - - - 0 - 10 - 30 - 50 - 80 - 100 - 160 - 200 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - - - 0 - 1000 - 2000 - 3000 - 4000 - 5000 - 6000 - 7000 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 - - - 0 - 10 - 30 - 50 - 80 - 100 - 160 - 200 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - TrailingEdge - 0 - 1 - - - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 - - - 0 - 1000 - 2000 - 3000 - 4000 - 5000 - 6000 - 7000 - - - 4 - 5.5 - 7 - 8.5 - 10 - 13 - 14.4 - 16 - - - - - - - - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 18.0 19.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 21.8 21.3 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 20.0 15.0 18.1 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 17.6 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 10.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 8.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 6.0 15.0 15.0 15.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 30.0 30.0 30.0 30.0 - 5.0 15.0 15.0 17.0 14.0 17.0 17.0 15.0 15.0 15.0 15.0 15.0 30.0 30.0 30.0 30.0 - - - 20.1 - 25.0 - 30.0 - 35.0 - 40.0 - 45.0 - 50.0 - 60.0 - 70.0 - 80.0 - 90.0 - 100.0 - 120.0 - 140.0 - 160.0 - 180.0 - - - 701 - 900 - 1200 - 1500 - 2250 - 3000 - 3750 - 4500 - 5250 - 6000 - 6750 - 7500 - 7600 - 7700 - 7800 - 7900 - - - - - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 18.0 19.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 21.8 21.3 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 20.0 15.0 18.1 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 17.6 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 15.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 10.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 8.0 15.0 15.0 15.0 20.0 25.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 30.0 - 6.0 15.0 15.0 15.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 20.0 30.0 30.0 30.0 30.0 - 5.0 15.0 15.0 17.0 14.0 17.0 17.0 15.0 15.0 15.0 15.0 15.0 30.0 30.0 30.0 30.0 - - - 20.1 - 25.0 - 30.0 - 35.0 - 40.0 - 45.0 - 50.0 - 60.0 - 70.0 - 80.0 - 90.0 - 100.0 - 120.0 - 140.0 - 160.0 - 180.0 - - - 701 - 900 - 1200 - 1500 - 2250 - 3000 - 3750 - 4500 - 5250 - 6000 - 6750 - 7500 - 7600 - 7700 - 7800 - 7900 - - - - - - - - 500 - - 550 - 550 - Off - - 1.0 - 1.0 - - 4 - 5.5 - 7 - 8.5 - 10 - 13 - 14.5 - 16 - - - 200 - 180 - 160 - 130 - 110 - 100 - 100 - 90 - - - MAP - None - Multiply - - - 100 - 100 - 100 - 100 - 100 - 100 - 100 - - - - 13.0 13.5 16.0 16.0 16.0 14.9 14.3 13.2 13.1 13.2 13.1 13.0 12.7 12.6 12.6 12.6 - 13.2 13.7 15.7 15.7 15.5 14.9 14.2 13.2 13.0 12.9 12.8 12.7 12.7 12.6 12.6 12.6 - 13.4 13.9 15.5 15.5 15.4 14.9 14.1 13.0 12.9 12.8 12.7 12.7 12.7 12.6 12.6 12.6 - 13.5 14.0 15.2 15.2 15.0 14.7 14.0 13.0 12.9 12.8 12.7 12.6 12.7 12.6 12.6 12.6 - 13.0 13.5 16.0 16.0 16.0 14.9 14.3 13.2 13.1 13.2 13.1 13.0 12.7 12.6 12.6 12.6 - 13.2 13.7 15.7 15.7 15.5 14.9 14.2 13.2 13.0 12.9 12.8 12.7 12.7 12.6 12.6 12.6 - 13.4 13.9 15.5 15.5 15.4 14.9 14.1 13.0 12.9 12.8 12.7 12.7 12.7 12.6 12.6 12.6 - 13.5 14.0 15.2 15.2 15.0 14.7 14.0 13.0 12.9 12.8 12.7 12.6 12.7 12.6 12.6 12.6 - 13.6 14.1 15.0 14.9 14.7 14.7 14.0 12.9 12.8 12.7 12.6 12.6 12.7 12.6 12.6 12.6 - 13.5 13.8 14.5 14.3 14.1 14.1 13.5 12.8 12.7 12.6 12.6 12.6 12.7 12.6 12.6 12.6 - 13.4 13.4 13.9 13.7 13.6 13.6 13.1 12.7 12.6 12.6 12.6 12.6 12.7 12.6 12.6 12.6 - 13.2 13.2 13.5 13.3 13.3 13.2 13.0 12.6 12.5 12.5 12.5 12.5 12.7 12.6 12.6 12.6 - 13.0 13.0 13.1 13.0 13.0 12.9 13.0 12.5 12.5 12.5 12.5 12.5 12.7 12.6 12.6 12.6 - 13.0 12.9 12.9 12.8 12.8 12.7 12.6 12.5 12.5 12.5 12.5 12.4 12.7 12.6 12.6 12.6 - 13.0 12.9 12.9 12.8 12.8 12.7 12.6 12.5 12.5 12.5 12.3 12.3 12.7 12.6 12.6 12.6 - 13.0 12.9 12.9 12.8 12.8 12.7 12.6 12.5 12.5 12.2 12.2 12.2 12.7 12.6 12.6 12.6 - - - 30.0 - 35.0 - 45.0 - 50.0 - 55.0 - 60.0 - 70.0 - 75.0 - 80.0 - 85.0 - 95.0 - 100.0 - 120.0 - 140.0 - 160.0 - 180.0 - - - 500 - 800 - 1100 - 1400 - 2000 - 2600 - 3100 - 3700 - 4300 - 4900 - 5400 - 6000 - 6500 - 7000 - 7500 - 8000 - - - - - - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 42 45 49 55 61 66 70 67 70 74 72 70 100 100 100 100 - 43 48 55 58 64 70 75 77 78 79 77 75 100 100 100 100 - 46 53 53 62 67 76 80 87 88 85 82 79 100 100 100 100 - 46 48 51 63 71 84 81 95 93 90 87 84 100 100 100 100 - 48 49 53 61 78 84 86 100 98 94 91 88 100 100 100 100 - 55 60 64 74 87 95 101 106 103 99 96 93 100 100 100 100 - 67 75 82 92 98 104 114 112 108 104 101 97 100 100 100 100 - 83 96 105 112 118 124 122 119 113 109 105 102 100 100 100 100 - 105 111 117 123 129 135 135 132 128 124 120 116 100 100 100 100 - 126 132 138 147 155 156 153 148 143 139 134 129 100 100 100 100 - 156 162 167 170 171 170 167 162 156 151 146 141 100 100 100 100 - - - 30.0 - 35.0 - 45.0 - 50.0 - 55.0 - 60.0 - 70.0 - 75.0 - 80.0 - 85.0 - 95.0 - 100.0 - 120.0 - 140.0 - 160.0 - 180.0 - - - 500 - 800 - 1100 - 1400 - 2000 - 2600 - 3100 - 3700 - 4300 - 4900 - 5400 - 6000 - 6500 - 7000 - 7500 - 8000 - - - - - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 40 44 47 51 59 61 66 64 69 70 68 65 100 100 100 100 - 42 45 49 55 61 66 70 67 70 74 72 70 100 100 100 100 - 43 48 55 58 64 70 75 77 78 79 77 75 100 100 100 100 - 46 53 53 62 67 76 80 87 88 85 82 79 100 100 100 100 - 46 48 51 63 71 84 81 95 93 90 87 84 100 100 100 100 - 48 49 53 61 78 84 86 100 98 94 91 88 100 100 100 100 - 55 60 64 74 87 95 101 106 103 99 96 93 100 100 100 100 - 67 75 82 92 98 104 114 112 108 104 101 97 100 100 100 100 - 83 96 105 112 118 124 122 119 113 109 105 102 100 100 100 100 - 105 111 117 123 129 135 135 132 128 124 120 116 100 100 100 100 - 126 132 138 147 155 156 153 148 143 139 134 129 100 100 100 100 - 156 162 167 170 171 170 167 162 156 151 146 141 100 100 100 100 - - - 30.0 - 35.0 - 45.0 - 50.0 - 55.0 - 60.0 - 70.0 - 75.0 - 80.0 - 85.0 - 95.0 - 100.0 - 120.0 - 140.0 - 160.0 - 180.0 - - - 500 - 800 - 1100 - 1400 - 2000 - 2600 - 3100 - 3700 - 4300 - 4900 - 5400 - 6000 - 6500 - 7000 - 7500 - 8000 - - - - - 7.0 - 6.6 - 5.1 - 4.6 - 4.3 - 3.9 - 3.3 - 2.0 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - - - 0 - 1000 - 2000 - 3000 - 4000 - 5000 - 6000 - 7000 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 - - - 0 - 10 - 30 - 50 - 80 - 100 - 160 - 200 - - - -20.0 - 0. - 20.0 - 40.0 - 60.0 - 80.0 - 100.0 - 120.0 - - - - No - - 7.0 - 6.6 - 5.1 - 4.6 - 4.3 - 3.9 - 3.3 - 2.0 - - - 120.0 - 100.0 - 80.0 - 60.0 - 40.0 - 20.0 - 10.0 - 0.0 - - - - 200 - 220 - 140 - 260 - 280 - 300 - 320 - 340 - - - 100.0 - 80.0 - 60.0 - 40.0 - 20.0 - 10.0 - 0.0 - -20.0 - - - - No - - 7.0 - 6.6 - 5.1 - 4.6 - 4.3 - 3.9 - 3.3 - 2.0 - - - 120.0 - 100.0 - 80.0 - 60.0 - 40.0 - 20.0 - 10.0 - 0.0 - - - - 200 - 220 - 140 - 260 - 280 - 300 - 320 - 340 - - - 100.0 - 80.0 - 60.0 - 40.0 - 20.0 - 10.0 - 0.0 - -20.0 - - - - - - - diff --git a/docs/interface/draftsAndIdeas/structure.relationships.description.txt b/docs/interface/draftsAndIdeas/structure.relationships.description.txt deleted file mode 100644 index e87b49b..0000000 --- a/docs/interface/draftsAndIdeas/structure.relationships.description.txt +++ /dev/null @@ -1,7 +0,0 @@ -a structure can have N components -each component can be a primitive or other component - -location has many packet types and one structure, structure has units and labels -structure has size, shape and structure name -packet types have a structure of their own and optionally a payload section where another structure can be embedded. - diff --git a/docs/migrate/latex/.gitignore b/docs/migrate/latex/.gitignore new file mode 100644 index 0000000..a869d16 --- /dev/null +++ b/docs/migrate/latex/.gitignore @@ -0,0 +1,9 @@ +# LaTex build files + +*.aux +*.pdf +*.log +*.toc +*.out +*.synctex.gz + diff --git a/docs/migrate/latex/FreeEMS-template.tex b/docs/migrate/latex/FreeEMS-template.tex index 5b8e9a8..02579b4 100644 --- a/docs/migrate/latex/FreeEMS-template.tex +++ b/docs/migrate/latex/FreeEMS-template.tex @@ -1,4 +1,4 @@ -\documentclass[12pt,a4wide,titlepage]{article} +\documentclass[12pt,a4paper,titlepage]{article} \include{FreeEMS} \begin {document} diff --git a/docs/migrate/latex/Makefile b/docs/migrate/latex/Makefile new file mode 100644 index 0000000..3a78bc9 --- /dev/null +++ b/docs/migrate/latex/Makefile @@ -0,0 +1,5 @@ +# A very simple make file for tidying up after LaTex! + +clean: + rm *.toc *.pdf *.synctex.gz *.aux *.log *.out + diff --git a/docs/migrate/latex/SerialProtocolCoreSpecification.tex b/docs/migrate/latex/SerialProtocolCoreSpecification.tex index 81743ce..31221f9 100644 --- a/docs/migrate/latex/SerialProtocolCoreSpecification.tex +++ b/docs/migrate/latex/SerialProtocolCoreSpecification.tex @@ -15,11 +15,13 @@ \Large \emph{Author:}\\ \textsc{Fred Cooke} \vfill -{\large Version 0.7 --- 1st January 2011\\ -(Working draft)} +{\large Version 0.7.0 --- Saturday 1\textsuperscript{st} January, 2011} \include{FreeEMStoc} + + + \section {Foreword} The purpose of the protocol is to provide reliable two-way serial communication @@ -39,6 +41,9 @@ will support all functions, either because they have limited functionality Where logging/debug facilities are available, the payload type of unrecognised packets should be noted before discarding them. + + + \section {Main Attributes} \begin{itemize} \item Compact binary data format to maximize speed and bandwidth. @@ -52,6 +57,8 @@ packets should be noted before discarding them. \end{itemize} + + \section{Packet Description} \subsection{Packet Data Format} @@ -111,6 +118,9 @@ receive operations and keep the code simple and compact. The checksum covers all bytes in the message before any escaping and packetising occurs, including the header but not including the start and stop delimiter bytes. + + + \section{Header Details} \subsection{Protocol Packets} @@ -163,6 +173,9 @@ are provided as an option for tuning authors to use. Length from the end of the header to the end of the payload NOT including the checksum, header or packet delimiters, and before escaping occurs. + + + \section{General Information} \subsection{Flow Control} @@ -226,6 +239,9 @@ facility to request the maximum permissible packet size. To be defined once implemented and tested. Thanks EdG! + + + \section{UART Specifc Information} \subsection{Packet Data Format} @@ -302,11 +318,16 @@ sends out as it could easily be corrupted in transit. Note: The checksum doesn't cover the start, stop, escape or escaped bytes, only the original packet data. + + + \section{CAN Specific Information} Yet to be determined. -\appendix + + + \section{Payload IDs} \label{app:payload} \footnotesize @@ -359,4 +380,13 @@ Note: This table is liable to be extended in subsequent versions. + + +\section{Copyright} + +Copyright 2008--2011 Fred Cooke. All rights reserved. + + + + \end {document} diff --git a/docs/migrate/latex/VanillaSerialProtocolInterface.tex b/docs/migrate/latex/VanillaSerialProtocolInterface.tex new file mode 100644 index 0000000..566662f --- /dev/null +++ b/docs/migrate/latex/VanillaSerialProtocolInterface.tex @@ -0,0 +1,159 @@ +\documentclass[12pt,a4paper,titlepage]{article} +\include{FreeEMS} + +\begin {document} + +\begin{titlepage} +\begin{center} + +\includegraphics[width=1\textwidth]{./logos/freeems}\\[1cm] \vfill + +\HRule \\[0.8cm] +{ \huge \bfseries FreeEMS Vanilla Serial Interface }\\[0.4cm] +\HRule \vfill + +\Large \emph{Author:}\\ +\textsc{Fred Cooke} \vfill + +{\large Version 0.0.2 --- Wednesday 23\textsuperscript{rd} November, 2011} + +\include{FreeEMStoc} + + + + +\section {Foreword} + +This document is based on and assumes knowledge of the FreeEMS Serial Protocol -- Core document. + +The purpose of this document is to define the application functionality and payload data formats for communicating with FreeEMS Vanilla. Not all devices will support all functions, either because they have limited functionality (a display device for example), or because the software versions may differ. Where logging/debug facilities are available, the payload type of unrecognised packets should be noted before discarding them. + + + + +\newpage +\section {Payload Type Definitions} + +The titles of sub-sections within this section consist of the Payload ID followed by a brief description of the payload type. The body of the section is a detailed description of what it what it does. The structure, length and reply specification follows that and is the last piece of information in each sub-section. + + +\subsection{\texttt{0x0100} Update Block In RAM} + +Replaces a block of RAM memory with the provided data. Some blocks are only allowed to be changed as a whole and not partially, IE, size must match the size of the locationID provided and offset must be zero. General configuration blocks can be adjusted using arbitrary offset and size parameters provided that offset is less than size and size is greater than 0 and less than the locationID size. The locationID provided must have non-zero RAM fields. + +\begin{itemize} +\item Contents: location ID (2), offset (2), size (2), data (1+) +\item Length: 7+ +\end{itemize} + + +\subsection{\texttt{0x0102} Update Block In Flash} + +Exactly the same as updateBlockInRAM except for flash memory, and updates the corresponding RAM region if there is one. The locationID provided must have non-zero flash fields. + +\begin{itemize} +\item Contents: locationID (2), offset (2), size (2), data (1+) +\item Length: 7+ +\end{itemize} + + +\subsection{\texttt{0x0104} Retrieve Block From RAM} + +Exactly as per the title. The locationID provided must have non-zero RAM fields. Size of zero returns entire block. + +\begin{itemize} +\item Contents: locationID (2), offset (2), size (2) +\item Length: 6 +\item Reply: requestedData (1+) +\end{itemize} + + +\newpage +\subsection{\texttt{0x0106} Retrieve Block From Flash} + +Exactly as per the title. The locationID provided must have non-zero flash fields. Size of zero returns entire block. + +\begin{itemize} +\item Contents: locationID (2), offset (2), size (2) +\item Length: 6 +\item Reply: requestedData (1+) +\end{itemize} + + +\subsection{\texttt{0x0108} Burn Block From Ram To Flash} + +Burn data from live tuned RAM down to persistent flash storage. The locationID provided must have non-zero values for all RAM and flash fields. + +\begin{itemize} +\item Contents: locationID (2), offset (2), size (2) +\item Length: 6 +\end{itemize} + + +\subsection{\texttt{0x0190} Request Basic Datalog} + +Request a basic datalog packet to be sent back, useful when not streaming. The optional payload contents are the truncation length to be used. If it is not provided the configured truncation length will be used just as in asynchronous mode. + +\begin{itemize} +\item Contents: Optional Length (2) +\item Length: 0 or 2 +\item Reply: requestedData (1+) +\end{itemize} + + +\subsection{\texttt{0x0194} DEPRECATED Set Async Datalog Type} + +Use RAM sub-region manipulation to change this. Invalid types will not stream anything. Will be removed in future, new applications should not use this. + +Configure the asynchronous datalog type 0x00/0 is off, other values turn specific types of logging on. + +\begin{itemize} +\item Contents: datalogType (1) +\item Length: 1 +\end{itemize} + + +\newpage +\subsection{\texttt{0x0258} Retrieve Arbitrary Memory} + +As per the title, for debugging ONLY, could be removed in future. + +\begin{itemize} +\item Contents: length (2), address (2), RAMPage (1), FlashPage (1) +\item Length: 6 +\item Reply: Original contents (6), requestedData (1+) +\end{itemize} + + +\subsection{\texttt{0xDA5E} Retrieve List Of Location IDs} + +Retrieves a list of 16 bit/2 byte location IDs falling into different categories depending on the single byte listType argument. 0x00 gets ALL locationIDs. 0x01 gets all locationIDs that match at least one mask bit "or". 0x02 gets all locationIDs that match ALL of the mask bits "and". See just above the definition of the struct "blockDetails" in the file structs.h for flag bit details. + +\begin{itemize} +\item Contents: listType (1), listMask (2) +\item Length: 3 +\item Reply: 16 bit/2 byte locationIDs (0--131072) (always an even number, reality is a much lower count) +\end{itemize} + + +\subsection{\texttt{0xF8E0} Retrieve Location ID Details} + +Retrieve the attributes of a location ID. See the definition of the struct "blockDetails" in the file structs.h for flag bit details. Parent is meaningless unless specified in the flags. The pages and addresses are optional. + +\begin{itemize} +\item Contents: locationID (2) +\item Length: 2 +\item Reply: flags (2), parent (2), RAMPage (1), FlashPage (1), RAMAddress (2), FlashAddress (2), size (2) +\end{itemize} + + + + +\section{Copyright} + +Copyright 2008--2011 Fred Cooke. All rights reserved. + + + + +\end {document} diff --git a/src/commsCore.c b/src/commsCore.c index 4f5df3f..d66cce3 100644 --- a/src/commsCore.c +++ b/src/commsCore.c @@ -898,18 +898,6 @@ void decodePacketAndRespond(){ TablesB.SmallTablesB.loggingSettings.datalogStreamType = newDatalogType; break; } - case forwardPacketOverCAN: - { - /// perform function TODO @todo REWORK review this - errorID = unimplementedFunction; - break; - } - case forwardPacketOverOtherUART: - { - /// perform function TODO @todo REWORK review this - errorID = unimplementedFunction; - break; - } case retrieveArbitraryMemory: { if(RXCalculatedPayloadLength != 6){ diff --git a/src/inc/packetTypes.h b/src/inc/packetTypes.h index ea9fd69..7502f07 100644 --- a/src/inc/packetTypes.h +++ b/src/inc/packetTypes.h @@ -87,16 +87,10 @@ /* Datalog request packets */ #define requestDatalogPacket 0x0190 #define responseBasicDatalog 0x0191 /* Defined because it can be used both synchronously and asynchronously */ -#define unusedDatalogPacketIDUseMe 0x0192 -#define responseConfigurableDatalog 0x0193 /* Defined because it can be used both synchronously and asynchronously */ #define setAsyncDatalogType 0x0194 #define requestByteLADatalog 0x0196 // logic analyser #define responseByteLADatalog 0x0197 // logic analyser -/* Special function */ -#define forwardPacketOverCAN 0x01F4 -#define forwardPacketOverOtherUART 0x01F6 - /* Generic memory grabber for debugging */ #define retrieveArbitraryMemory 0x0258 -- 2.11.4.GIT