N3Roaster / typica

Free software for coffee roasting operations.
https://typica.us
MIT License
26 stars 8 forks source link

Proposed Extensions to Roasting Data XML #79

Open N3Roaster opened 11 years ago

N3Roaster commented 11 years ago

Once work on merging an externally developed patch for handling non-temperature measurements and support for hardware capable of generating such measurements is complete, XML serialization of roasting data will have the following structure:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE roastlog3.0>
<roastlog>
    <temperatureseries name="Bean" />
    <controlseries name="Gas" />
    <noteseries name="Note" />
    <roast>
        <tuple>
            <time>00:00.000</time>
            <temperature series="Bean">265.8</temperature>
            <control series="Gas">99</control>
            <annotation series="Note">Start</annotation>
        </tuple>
    </roast>
</roastlog>

There can be any number of *series elements that describe the data that will follow in the roast element and while each tuple element must contain a time, it need not contain data for every series. In particular, the annotation elements will not be present for most tuple elements.

This is a somewhat limiting format, particularly if there is a desire to make useful tools that are external to Typica. A number of changes could be made to the format to make it more generally useful.

There are also some areas where the behavior of Typica could be improved in generating these files to improve file size and loading times. At present, every measurement in every data series is preserved, but it would be useful to have as an option the ability to preserve only those measurements in a series where the new value differs from the earlier value. This would greatly improve performance where multiple unsynchronized devices are in use. It would also make it easier to handle annotations that are tied to a time without a measurement which would perhaps make it easier to allow editing annotations in the table view in Typica, which some people seem to want to be able to do.

N3Roaster commented 10 years ago

Batch data such as what would be recorded in the roasting_log table would be useful for reconstructing missing data in the event that something causes inserts to that table to fail.