diff --git a/AVR Working Controller/AVR.cpp b/AVR Working Controller/AVR.cpp index 87849ea..838a96f 100644 --- a/AVR Working Controller/AVR.cpp +++ b/AVR Working Controller/AVR.cpp @@ -288,6 +288,7 @@ const char *FsToText(uint8_t val); const char *ZonePower(uint8_t val); const char *VolumeDB(uint8_t val); const char *ProgramName(uint8_t val); +const char *OnOffText(uint8_t val); void ShowAllStatusInfo(); @@ -402,15 +403,15 @@ const MessageHandler_T MessageHandlers[] = { {0x14, 35, 1, 1, NULL }, // RED dts {0x15, 38, 1, 1, NULL }, // Tuner tuned {0x16, 43, 1, 1, NULL }, // Dts 96/24 - {0x20, 8, 0, 1, RxPowerStatus, "Zone Power: %s", ZonePower}, + {0x20, 8, 0, 1, NULL, "Zone Power: %s", ZonePower}, {0x21, 9, 1, 1, NULL }, // Input Source {0x22, 11, 1, 1, NULL }, // Input Mode - {0x23, 12, 1, 1, NULL }, // Mute Status + {0x23, 12, 1, 1, NULL, "Mute: %s", OnOffText}, {0x24, 13, 1, 1, NULL }, // Zone 2 Input Source - {0x25, 14, 1, 1, NULL }, // Zone 2 Mute - {0x26, 15, 2, 1, RxMasterVolStatus }, + {0x25, 14, 1, 1, NULL, "Zone 2 Mute: %s", OnOffText}, + {0x26, 15, 2, 1, RxMasterVolStatus, "Volume: %s", VolumeDB}, {0x27, 17, 2, 1, NULL }, // Zone 2 Vol - {0x28, 19, 2, 1, RxProgramStatus }, // Program + {0x28, 19, 2, 1, RxProgramStatus, "Program: %s", ProgramName}, // Program {0x29, 25, 1, 1, NULL }, // Tuner Page {0x2A, 26, 1, 1, NULL }, // Tuner Preset Number {0x2B, 23, 1, 1, NULL }, // OSD @@ -419,13 +420,13 @@ const MessageHandler_T MessageHandlers[] = { {0x2E, 29, 1, 1, NULL }, // Speaker Relay A {0x2F, 30, 1, 1, NULL }, // Speaker Relay B - {0x36, 39, 1, 1, NULL }, // DC1 Trigger + {0x36, 39, 1, 1, NULL, "Trigger Out 1: %s", OnOffText}, - {0x3C, 45, 1, 1, NULL }, // DC2 Trigger + {0x3C, 45, 1, 1, NULL, "Trigger Out 2: %s", OnOffText}, - {0x82, 27, 1, 1, NULL }, // Night Mode + {0x82, 27, 1, 1, NULL, "Night Mode: %s", OnOffText}, - {0xA1, 0, 0, 0, NULL }, // Zone 3 Mute + {0xA1, 0, 0, 0, NULL, "Zone 3 Mute: %s\n", OnOffText}, }; @@ -911,7 +912,7 @@ const char *ProgramName(uint8_t val) { // Single Linear // db = 0.5574 x - 111.45 // -const char *VolumeDB(uint32_t val) { +const char *VolumeDB(uint8_t val) { static char buf[16]; float m, b; @@ -1258,6 +1259,11 @@ void ProcessResponse(uint8_t *szBuffer, uint32_t len) { if (MessageHandlers[i].fncHelper) { (*MessageHandlers[i].fncHelper)(rcmd, rdat, szBuffer, len); } + if (MessageHandlers[i].TextFormatter && MessageHandlers[i].fncValueToText) { + sprintf_s(buf, MAXTEXTLEN, MessageHandlers[i].TextFormatter, MessageHandlers[i].fncValueToText(rdat)); + Console_Write(buf); + Console_ScrollBottomRegion(scrollTop, scrollBot); + } if (MessageHandlers[i].showAll) { ShowAllStatusInfo(); } @@ -1269,29 +1275,29 @@ void ProcessResponse(uint8_t *szBuffer, uint32_t len) { Console_Write(buf); Console_ScrollBottomRegion(scrollTop, scrollBot); } - switch (rcmd) { - case 0x20: // Power status +// switch (rcmd) { +// case 0x20: // Power status // SetData(&avrStatus.config.DT8, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Zone Power: %s\n", ZonePower(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); // break; - case 0x23: // Mute +// case 0x23: // Mute // SetData(&avrStatus.config.DT12, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Mute: %s\n", OnOffText(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); // break; - case 0x25: // Zone 2 Mute +// case 0x25: // Zone 2 Mute // SetData(&avrStatus.config.DT14, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Zone 2 Mute: %s\n", OnOffText(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); // break; - case 0x26: // Master Volume +// case 0x26: // Master Volume // RxMasterVolStatus(rcmd, rdat, szBuffer, len); // SetData(&avrStatus.config.DT15, Dec2Hex(rdat, 2)); // sprintf_s(buf, MAXTEXTLEN, "Vol: %s\n", VolumeDB(rdat)); @@ -1299,48 +1305,48 @@ void ProcessResponse(uint8_t *szBuffer, uint32_t len) { // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); // break; - case 0x28: // Program +// case 0x28: // Program // SetData(&avrStatus.config.DT19, Dec2Hex(rdat, 2)); // sprintf_s(buf, MAXTEXTLEN, "Prog: %s\n", ProgramName(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); - break; - case 0x82: // Night Mode +// break; +// case 0x82: // Night Mode // SetData(&avrStatus.config.DT27, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Night Mode: %s\n", OnOffText(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); - break; - case 0x36: // DC1 Trigger +// break; +// case 0x36: // DC1 Trigger // SetData(&avrStatus.config.DT39, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Trigger Out 1: %s\n", OnOffText(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); - break; - case 0x3C: // DC2 Trigger +// break; +// case 0x3C: // DC2 Trigger // SetData(&avrStatus.config.DT45, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Trigger Out 2: %s\n", OnOffText(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); - break; - case 0xA1: // Zone 3 Mute +// break; +// case 0xA1: // Zone 3 Mute // //SetData(&avrStatus.config.DT14, Dec2Hex(rdat, 1)); // sprintf_s(buf, MAXTEXTLEN, "Zone 3 Mute: %s\n", OnOffText(rdat)); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); // ShowAllStatusInfo(); - break; +// break; - default: // Everything not yet handled +// default: // Everything not yet handled // sprintf_s(buf, MAXTEXTLEN, "type: %X, guard: %X, cmd: %02X, data: %02X", type, guard, rcmd, rdat); // Console_Write(buf); // Console_ScrollBottomRegion(scrollTop, scrollBot); - break; - } +// break; +// } } // AnalyzeResponse