telemetry_reports.cpp 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #if !defined(MECOFFEE_RUST_TELEMETRY)
  2. #include "telemetry_reports.h"
  3. #include "hardware_seam.h"
  4. #include "program_memory.h"
  5. #include "serial_output.h"
  6. namespace meCoffee {
  7. uint16_t activeSetpointRaw(const FirmwareState& state) {
  8. return static_cast<uint16_t>(state.alternateModeSelection == 0 ? state.settings.brewSetpoint : state.settings.steamSetpoint);
  9. }
  10. void writeBootTemperatureFrame(const FirmwareState& state) {
  11. writeCarriageReturnLineFeed();
  12. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT("tmp 0 "));
  13. writeUnsignedDecimalText(activeSetpointRaw(state));
  14. writeSpace();
  15. writeSignedDecimalText(state.sensor.startupAggregate);
  16. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT(" 0 OK"));
  17. writeCarriageReturnLineFeed();
  18. }
  19. void reportTemperatureFrame(FirmwareState& state) {
  20. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT("tmp "));
  21. writeUnsignedDecimalText(state.sensor.aggregateGeneration);
  22. writeSpace();
  23. writeUnsignedDecimalText(activeSetpointRaw(state));
  24. writeSpace();
  25. writeSignedDecimalText(state.sensor.firstChannelAggregate);
  26. writeSpace();
  27. writeSignedDecimalText(state.sensor.secondChannelAggregate);
  28. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT(" - "));
  29. writeUnsignedDecimalText(state.mainsPhase.filteredTicksPerHalfCycle);
  30. writeSpace();
  31. writeUnsignedDecimalText(state.qualifiedEventCountLastGeneration);
  32. writeSpace();
  33. writeUnsignedDecimalText(hardware::readOscillatorCalibrationRegister());
  34. writeSpace();
  35. writeUnsignedDecimalText(state.oscillatorBaselineByte);
  36. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT(" OK"));
  37. writeCarriageReturnLineFeed();
  38. }
  39. void reportHeaterTermsFrame(FirmwareState& state) {
  40. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT("pid "));
  41. writeSignedDecimalText(state.heater.proportionalTerm);
  42. writeSpace();
  43. writeSignedDecimalText(state.heater.integralTerm);
  44. writeSpace();
  45. writeSignedDecimalText(state.heater.derivativeTerm);
  46. writeSpace();
  47. writeSignedDecimalText(state.heater.feedForwardTerm);
  48. writeProgramMemoryText(MECOFFEE_PROGRAM_TEXT(" OK"));
  49. writeCarriageReturnLineFeed();
  50. }
  51. } // namespace meCoffee
  52. #endif