Warning: this library is a WIP and not yet ready for production usage.
This library provides a native Rust library for parsing COMTRADE (Common format for Transient Data Exchange for power systems) files, containing oscillography and status data for power system disturbances.
Task | Status |
---|---|
Implement parsing .cfg files (encoded in ASCII) | Done (1991, 1999, 2013) |
Implement parsing .cfg files (encoded in UTF-8) | Done |
Implement parsing .cfg files (encoded in other encodings such as latin1) | Not tested |
Implement parsing ASCII data files | Done |
Implement parsing binary16 data files | Done |
Implement parsing binary32 data files | Done (not tested) |
Implement parsing float32 data files | Done (not tested) |
Implement loading separate files from combined 2013 .cff format. |
Done |
Implement retrieval of actual analog data values using primary vs. secondary factors, offsets, etc. | Adders & multipliers done; primary vs. secondary todo |
Implement calculation of real time based on time multipliers, etc. (critical & non-critical timestamps) | Done |
Support for channel-specific timestamp skews | Todo |
Todo: once ready, deploy to crates.io.
Todo: document usage.
- Clean up error messages - maybe have consistent format including filename and line number?
- Add warnings for non-critical data missing and errors for critical data missing.
- Add warnings for unexpected values (but not errors) for things like channel numbers not adding up, etc.
- Test files:
- Binary32 and float32 data files.
- Missing non-critical data.
- Continuously variable sample rate (i.e. crticial timestamp).
- Multiple sample rates.