Continuing move to both OO interface and consolidation of commands into Subsystem, Command rather than all discrete commands.
This commit is contained in:
@@ -260,6 +260,8 @@ void EnumerateComPorts();
|
||||
unsigned long Hex2Dec(uint8_t *p, int dig);
|
||||
|
||||
//void ShowAllStatusInfo();
|
||||
void GetAndSendCustomMessage();
|
||||
|
||||
|
||||
bool UserWantsToExitCanSniff = false;
|
||||
DWORD progStartTime_ms;
|
||||
@@ -279,8 +281,8 @@ typedef struct {
|
||||
//
|
||||
const UserCmd_T UserCommands[] = {
|
||||
{ 'R', "Ready", {"\x11" "000" "\x03", 5 } },
|
||||
{ 'P', "Power On", {"\x02" "07A1D" "\x03", 7} },
|
||||
{ 'p', "Power Off", {"\x02" "07A1E" "\x03", 7} },
|
||||
//{ 'P', "Power On", {"\x02" "07A1D" "\x03", 7} },
|
||||
//{ 'p', "Power Off", {"\x02" "07A1E" "\x03", 7} },
|
||||
{ '1', "Zone 1 On", {"\x02" "07E7E" "\x03", 7} },
|
||||
{ '!', "Zone 1 Standby", {"\x02" "07E7F" "\x03", 7} },
|
||||
{ '2', "Zone 2 On", {"\x02" "07EBA" "\x03", 7} },
|
||||
@@ -299,6 +301,10 @@ const UserCmd_T UserCommands[] = {
|
||||
{ 'u', "Zone 2 Name rqst", {"\x02" "22004" "\x03", 7} },
|
||||
{ 'I', "Zone 2 Vol rqst", {"\x02" "22005" "\x03", 7} },
|
||||
{ 'i', "Zone 2 Name rqst", {"\x02" "22006" "\x03", 7} },
|
||||
//{ 'J', "Dual Mono - Main", {"\x02" "07E93" "\x03", 7} },
|
||||
//{ 'K', "Dual Mono - Sub", {"\x02" "07E94" "\x03", 7} },
|
||||
//{ 'L', "Dual Mono - All", {"\x02" "07E95" "\x03", 7} },
|
||||
{ ':', "Custom Message" },
|
||||
{ '/', "Show All" },
|
||||
{ '?', "Help on runtime commands" },
|
||||
{ 'S', "Set RTS" },
|
||||
@@ -357,11 +363,11 @@ const MessageHandler_T MessageHandlers[] = {
|
||||
{ 0x00, 7, 1, 1, "System Report: %s", BusyToText },
|
||||
{ 0x01, 0, 0, 0, "Warning Report: %s", WarnToText },
|
||||
{ 0x10, 31, 1, 1, "Playback Report: %s", PlaybackToText },
|
||||
{ 0x11, 32, 1, 1, "Fs Report: %s", FsToText },
|
||||
{ 0x12, 33, 1, 1, "Ex/Ex: %s", OffMatrixDiscreteText }, // EX/EX
|
||||
{ 0x13, 34, 1, 1, "Thr Bypass: %s", OffOnText }, // Thr / Bypass
|
||||
{ 0x14, 35, 1, 1, "RED dts: %s", ReleaseWaitText}, // RED dts
|
||||
{ 0x15, 38, 1, 1, "Tuner tuned: %s", NotTunedTunedText}, // Tuner tuned
|
||||
{ 0x11, 32, 1, 1, "Fs Report: %s", FsToText }, --
|
||||
{ 0x12, 33, 1, 1, "Ex/Ex: %s", OffMatrixDiscreteText }, // EX/EX --
|
||||
{ 0x13, 34, 1, 1, "Thr Bypass: %s", OffOnText }, // Thr / Bypass --
|
||||
{ 0x14, 35, 1, 1, "RED dts: %s", ReleaseWaitText}, // RED dts --
|
||||
{ 0x15, 38, 1, 1, "Tuner tuned: %s", NotTunedTunedText}, // Tuner tuned --
|
||||
{ 0x16, 43, 1, 1, "DTS 96/24: %s", OffOnText}, // Dts 96/24
|
||||
{ 0x20, 8, 0, 1, "Zone Power: %s", ZonePower },
|
||||
{ 0x21, 9, 1, 1, "Input: %s", InputText}, // Input Source
|
||||
@@ -371,11 +377,11 @@ const MessageHandler_T MessageHandlers[] = {
|
||||
{ 0x25, 14, 1, 1, "Zone 2 Mute: %s", OffOnText },
|
||||
{ 0x26, 15, 2, 1, "Volume: %s", VolumeDB },
|
||||
{ 0x27, 17, 2, 1, "Zone 2 Vol: %s", VolumeDB}, // Zone 2 Vol
|
||||
{ 0x28, 19, 2, 1, "Program: %s", ProgramName }, // Program
|
||||
{ 0x29, 25, 1, 1, "Tuner Page: %s", PresetLabelText}, // Tuner Page
|
||||
{ 0x2A, 26, 1, 1, "Tuner Preset: %s", PresetNumberText}, // Tuner Preset Number
|
||||
{ 0x2B, 23, 1, 1, "OSD: %s", OSDFullShortOffText}, // OSD
|
||||
{ 0x2C, 24, 1, 1, "Sleep: %s", SleepTimerText}, // Sleep Timer
|
||||
{ 0x28, 19, 2, 1, "Program: %s", ProgramName }, // Program --
|
||||
{ 0x29, 25, 1, 1, "Tuner Page: %s", PresetLabelText}, // Tuner Page --
|
||||
{ 0x2A, 26, 1, 1, "Tuner Preset: %s", PresetNumberText}, // Tuner Preset Number --
|
||||
{ 0x2B, 23, 1, 1, "OSD: %s", OSDFullShortOffText}, // OSD --
|
||||
{ 0x2C, 24, 1, 1, "Sleep: %s", SleepTimerText}, // Sleep Timer --
|
||||
{ 0x2D, 22, 1, 1, "EX/ES(Key): %s", OffMatrixDiscreteAutoText}, // EX/ES(Key)
|
||||
{ 0x2E, 29, 1, 1, "SP Relay A: ", OffOnText}, // Speaker Relay A
|
||||
{ 0x2F, 30, 1, 1, "SP Relay B: ", OffOnText}, // Speaker Relay B
|
||||
@@ -383,45 +389,45 @@ const MessageHandler_T MessageHandlers[] = {
|
||||
{ 0x31, 0, 0, 0, "Home Memory:%s", PresetLabelText }, // Preset A, B, ... F
|
||||
{ 0x32, 0, 0, 0, "Home Vol Preset: %s", PresetLabelText }, // Preset A, B, ... F
|
||||
{ 0x33, 0, 0, 0, "Home Vol Memory: %s", PresetLabelText }, // Preset A, B, ... F
|
||||
{ 0x34, 36, 1, 1, "Headphone: %s", OffOnText },
|
||||
{ 0x35, 37, 1, 1, "FM/AM: %s", FMAMText },
|
||||
{ 0x36, 39, 1, 1, "DC1 Trigger Out: %s", OffOnText },
|
||||
{ 0x34, 36, 1, 1, "Headphone: %s", OffOnText }, --
|
||||
{ 0x35, 37, 1, 1, "FM/AM: %s", FMAMText }, --
|
||||
{ 0x36, 39, 1, 1, "DC1 Trigger Out: %s", OffOnText }, --
|
||||
{ 0x37, 0, 0, 0, "Home Zone 2 Vol Preset: %s", PresetLabelText },
|
||||
{ 0x38, 0, 0, 0, "Home Zone 2 Vol: %s", PresetLabelText },
|
||||
{ 0x39, 0, 0, 0, "Dual Mono: %s", MainSubAllText },
|
||||
{ 0x3A, 42, 1, 1, "DC1 Trigger Control: %s", WhichZoneText },
|
||||
{ 0x3B, 44, 1, 1, "DC2 Trigger Control: %s", WhichZoneText },
|
||||
{ 0x3C, 45, 1, 1, "DC2 Trigger Out: %s", OffOnText },
|
||||
{ 0x3A, 42, 1, 1, "DC1 Trigger Control: %s", WhichZoneText }, --
|
||||
{ 0x3B, 44, 1, 1, "DC2 Trigger Control: %s", WhichZoneText }, --
|
||||
{ 0x3C, 45, 1, 1, "DC2 Trigger Out: %s", OffOnText }, --
|
||||
{ 0x3D, 104, 0, 0, "Main Level: %s", Norm10dbDownText },
|
||||
{ 0x3E, 46, 1, 1, "SP B Set: %s", MainZoneBText },
|
||||
{ 0x3E, 46, 1, 1, "SP B Set: %s", Zone1Zone2Text },
|
||||
{ 0x3F, 47, 1, 1, "Zone 2 Speaker: %s", OffOnText },
|
||||
|
||||
{ 0x40, 48, 2, 1, "Level Main R: %s", PM10dbText },
|
||||
{ 0x41, 50, 2, 1, "Level Main L: %s", PM10dbText },
|
||||
{ 0x42, 52, 2, 1, "Level Center: %s", PM10dbText },
|
||||
{ 0x43, 54, 2, 1, "Level Rear R: %s", PM10dbText },
|
||||
{ 0x44, 56, 2, 1, "Level Rear L: %s", PM10dbText },
|
||||
{ 0x45, 58, 2, 1, "Level Sur Back R: %s", PM10dbText },
|
||||
{ 0x46, 60, 2, 1, "Level Sur Back L: %s", PM10dbText },
|
||||
{ 0x47, 62, 2, 1, "Level Front R: %s", PM10dbText },
|
||||
{ 0x48, 64, 2, 1, "Level Front L: %s", PM10dbText },
|
||||
{ 0x49, 66, 2, 1, "Level Swfr 1: %s", PM10dbText },
|
||||
{ 0x40, 48, 2, 1, "Level Main R: %s", PM10dbText }, --
|
||||
{ 0x41, 50, 2, 1, "Level Main L: %s", PM10dbText }, --
|
||||
{ 0x42, 52, 2, 1, "Level Center: %s", PM10dbText }, --
|
||||
{ 0x43, 54, 2, 1, "Level Rear R: %s", PM10dbText }, --
|
||||
{ 0x44, 56, 2, 1, "Level Rear L: %s", PM10dbText }, --
|
||||
{ 0x45, 58, 2, 1, "Level Sur Back R: %s", PM10dbText }, --
|
||||
{ 0x46, 60, 2, 1, "Level Sur Back L: %s", PM10dbText }, --
|
||||
{ 0x47, 62, 2, 1, "Level Front R: %s", PM10dbText }, --
|
||||
{ 0x48, 64, 2, 1, "Level Front L: %s", PM10dbText }, --
|
||||
{ 0x49, 66, 2, 1, "Level Swfr 1: %s", PM10dbText }, --
|
||||
{ 0x4A, 0, 0, 0, "Level Swfr 2: %s", PM10dbText },
|
||||
|
||||
{ 0x50, 0, 0, 0, "Main L/R Bal: %s", BalanceText },
|
||||
{ 0x51, 74, 2, 1, "LFE Level SP: %s", M20P0dbText },
|
||||
{ 0x52, 76, 2, 1, "LFE Level HP: %s", M20P0dbText },
|
||||
{ 0x53, 78, 2, 1, "Audio Delay: %s", ZeroTo160msText },
|
||||
{ 0x51, 74, 2, 1, "LFE Level SP: %s", M20P0dbText }, --
|
||||
{ 0x52, 76, 2, 1, "LFE Level HP: %s", M20P0dbText }, --
|
||||
{ 0x53, 78, 2, 1, "Audio Delay: %s", ZeroTo160msText }, --
|
||||
{ 0x54, 0, 0, 0, "SP Delay Center: %s", ZeroTo5msText },
|
||||
{ 0x55, 0, 0, 0, "SP Delay Rear CT: %s", ZeroTo30msText },
|
||||
|
||||
{ 0x60, 84, 1, 1, "Input Mode: %s", AutoLastText },
|
||||
{ 0x61, 85, 1, 1, "Dimmer: %s", M4To0Text },
|
||||
{ 0x62, 87, 2, 1, "OSD Shift: %s", M5toP5Text },
|
||||
{ 0x63, 89, 1, 1, "Gray Back: %s", OffAutoText },
|
||||
{ 0x64, 91, 1, 1, "Dynamic Range SP: %s", MaxStdMinText },
|
||||
{ 0x65, 92, 1, 1, "Dynamic Range HP: %s", MaxStdMinText },
|
||||
{ 0x66, 93, 0, 0, "Zone 2 Vol out: %s", VarFixText },
|
||||
{ 0x60, 84, 1, 1, "Input Mode: %s", AutoLastText }, --
|
||||
{ 0x61, 85, 1, 1, "Dimmer: %s", M4To0Text }, --
|
||||
{ 0x62, 87, 2, 1, "OSD Shift: %s", M5toP5Text }, --
|
||||
{ 0x63, 89, 1, 1, "Gray Back: %s", OffAutoText }, --
|
||||
{ 0x64, 91, 1, 1, "Dynamic Range SP: %s", MaxStdMinText }, --
|
||||
{ 0x65, 92, 1, 1, "Dynamic Range HP: %s", MaxStdMinText }, --
|
||||
{ 0x66, 93, 0, 0, "Zone 2 Vol out: %s", VarFixText }, --
|
||||
{ 0x67, 0, 0, 0, "Zone 2 Mode: %s", Mode1Mode2Text },
|
||||
{ 0x68, 95, 1, 1, "Mem Guard: %s", OffOnText },
|
||||
{ 0x69, 90, 1, 1, "Video Conv: %s", OffOnText },
|
||||
@@ -432,7 +438,7 @@ const MessageHandler_T MessageHandlers[] = {
|
||||
{ 0x72, 98, 1, 1, "Rear LR Sp Size: %s", LSNText },
|
||||
{ 0x73, 99, 1, 1, "Sur Back Size: %s", LLSSNText },
|
||||
{ 0x74, 100, 1, 1, "Front Sp: %s", YesNoneText },
|
||||
{ 0x75, 101, 1, 1, "LFE Bass Out: %s", SwfrMainBothText },
|
||||
{ 0x75, 101, 1, 1, "LFE Bass Out: %s", SwfrMainBothText }, --
|
||||
{ 0x76, 134, 1, 1, "SW1: %s", LrFrNoneText },
|
||||
|
||||
{ 0x78, 102, 1, 1, "6 Ch Center: %s", CenterMainText },
|
||||
@@ -441,23 +447,23 @@ const MessageHandler_T MessageHandlers[] = {
|
||||
{ 0x7B, 0, 0, 0, "Multi Ch Select: %s", SixEightText },
|
||||
{ 0x7E, 135, 1, 1, "SW Crossover", CrossOverText },
|
||||
|
||||
{ 0x80, 105, 1, 1, "Test Mode: %s", OffDolbyDspText },
|
||||
{ 0x80, 105, 1, 1, "Test Mode: %s", OffDolbyDspText }, --
|
||||
{ 0x81, 0, 0, 0, "Analog Special: %s", OffOn2OnMultiText },
|
||||
{ 0x82, 27, 1, 1, "Night Mode: %s", OffOnText },
|
||||
{ 0x82, 27, 1, 1, "Night Mode: %s", OffOnText }, --
|
||||
|
||||
{ 0x90, 0, 0, 0, "Multi Ch Level Main R: %s", M10P10dbText },
|
||||
{ 0x91, 0, 0, 0, "Multi Ch Level Main L: %s", M10P10dbText },
|
||||
{ 0x92, 0, 0, 0, "Multi Ch Level Center: %s", M10P10dbText },
|
||||
{ 0x93, 0, 0, 0, "Multi Ch Level Rear R: %s", M10P10dbText },
|
||||
{ 0x94, 0, 0, 0, "Multi Ch Level Rear L: %s", M10P10dbText },
|
||||
{ 0x95, 0, 0, 0, "Multi Ch Level Sur B R: %s", M10P10dbText },
|
||||
{ 0x96, 0, 0, 0, "Multi Ch Level Sur B L: %s", M10P10dbText },
|
||||
{ 0x97, 0, 0, 0, "Multi Ch Level Front R: %s", M10P10dbText },
|
||||
{ 0x98, 0, 0, 0, "Multi Ch Level Front L: %s", M10P10dbText },
|
||||
{ 0x99, 0, 0, 0, "Multi Ch Level Swfr 1: %s", M20P0dbText },
|
||||
{ 0x9A, 0, 0, 0, "Multi Ch Level Swfr 2: %s", M20P0dbText },
|
||||
{ 0x90, 0, 0, 0, "Multi Ch Level Main R: %s" , M10P10dbText }, --
|
||||
{ 0x91, 0, 0, 0, "Multi Ch Level Main L: %s" , M10P10dbText }, --
|
||||
{ 0x92, 0, 0, 0, "Multi Ch Level Center: %s" , M10P10dbText }, --
|
||||
{ 0x93, 0, 0, 0, "Multi Ch Level Rear R: %s" , M10P10dbText }, --
|
||||
{ 0x94, 0, 0, 0, "Multi Ch Level Rear L: %s" , M10P10dbText }, --
|
||||
{ 0x95, 0, 0, 0, "Multi Ch Level Sur B R: %s", M10P10dbText }, --
|
||||
{ 0x96, 0, 0, 0, "Multi Ch Level Sur B L: %s", M10P10dbText }, --
|
||||
{ 0x97, 0, 0, 0, "Multi Ch Level Front R: %s", M10P10dbText }, --
|
||||
{ 0x98, 0, 0, 0, "Multi Ch Level Front L: %s", M10P10dbText }, --
|
||||
{ 0x99, 0, 0, 0, "Multi Ch Level Swfr 1: %s" , M20P0dbText }, --
|
||||
{ 0x9A, 0, 0, 0, "Multi Ch Level Swfr 2: %s" , M20P0dbText },
|
||||
|
||||
{ 0xA1, 0, 0, 0, "Zone 3 Mute: %s\n", OffOnText },
|
||||
{ 0xA1, 0, 0, 0, "Zone 3 Mute: %s\n", OffOnText }, --
|
||||
};
|
||||
|
||||
void MessageHandlerSanityCheck() {
|
||||
@@ -574,24 +580,23 @@ void EmitBuffer(const char *prefix, const uint8_t *buf, size_t len = 0, bool app
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#if 0
|
||||
void EchoSerialRecv(const uint8_t *pMsg) {
|
||||
Console_SetCursor(0, -1);
|
||||
EmitBuffer("< ", pMsg);
|
||||
Console_ScrollBottomRegion();
|
||||
}
|
||||
#endif
|
||||
|
||||
bool SerialSend(const uint8_t *p, uint16_t len) {
|
||||
bool retVal = false;
|
||||
Console_SetCursor(0, -1);
|
||||
EmitBuffer("> ", p, len);
|
||||
Console_ScrollBottomRegion();
|
||||
//Console_SetCursor(0, -1);
|
||||
//EmitBuffer("> ", p, len);
|
||||
//Console_ScrollBottomRegion();
|
||||
if (avrPort.Write((const LPVOID)p, len) == len) {
|
||||
retVal = true;
|
||||
} else {
|
||||
Console_SetCursor(0, -1);
|
||||
Console_Write("***** Failed to send. Port not open?");
|
||||
Console_ScrollBottomRegion();
|
||||
Console_WriteAt(0, -1, "***** Failed to send. Port not open?");
|
||||
}
|
||||
return retVal;
|
||||
}
|
||||
@@ -826,10 +831,10 @@ void ProcessKeyboard(void) {
|
||||
int c = CS_GetChar();
|
||||
switch (c) {
|
||||
case 'P':
|
||||
avr->Power(AVRInterface::avrPowerOn);
|
||||
avr->Power(AVRInterface::AVROnOff_E::eOn);
|
||||
break;
|
||||
case 'p':
|
||||
avr->Power(AVRInterface::avrPowerOff);
|
||||
avr->Power(AVRInterface::AVROnOff_E::eOff);
|
||||
break;
|
||||
case 'O':
|
||||
ProcessSerialQueue((const uint8_t *)"\x02" "21000" "\x03", 7);
|
||||
@@ -838,6 +843,9 @@ void ProcessKeyboard(void) {
|
||||
ProcessSerialQueue((const uint8_t *)"\x02" "3sage" "\x03", 7);
|
||||
ProcessSerialQueue((const uint8_t *)"\x02" "3 WOW" "\x03", 7);
|
||||
break;
|
||||
case ':':
|
||||
GetAndSendCustomMessage();
|
||||
break;
|
||||
case '?':
|
||||
EmitRuntimeHelp();
|
||||
break;
|
||||
@@ -863,7 +871,8 @@ void ProcessKeyboard(void) {
|
||||
default:
|
||||
for (int i = 0; i < sizeof(UserCommands) / sizeof(UserCmd_T); i++) {
|
||||
if (UserCommands[i].Char == c) {
|
||||
ProcessSerialQueue((const uint8_t *)UserCommands[i].TxMsg.pMsg, UserCommands[i].TxMsg.MsgLen);
|
||||
//ProcessSerialQueue((const uint8_t *)UserCommands[i].TxMsg.pMsg, UserCommands[i].TxMsg.MsgLen);
|
||||
avr->ProcessSerialQueue((const uint8_t *)UserCommands[i].TxMsg.pMsg, UserCommands[i].TxMsg.MsgLen);
|
||||
cmdFound = true;
|
||||
break;
|
||||
}
|
||||
@@ -879,6 +888,18 @@ void ProcessKeyboard(void) {
|
||||
return;
|
||||
}
|
||||
|
||||
void GetAndSendCustomMessage() {
|
||||
char buf[20];
|
||||
char msg[30];
|
||||
Console_ScrollBottomRegion();
|
||||
Console_ScrollBottomRegion();
|
||||
Console_WriteAt(0, -2, "Enter Hex string to send: ");
|
||||
gets_s(buf, sizeof(buf));
|
||||
Console_ScrollBottomRegion();
|
||||
sprintf_s(msg, sizeof(msg), "\x02%s\x03", buf);
|
||||
avr->ProcessSerialQueue(msg, strlen(msg));
|
||||
}
|
||||
|
||||
|
||||
void GetProgName(char *name) {
|
||||
char *p = strrchr(name, '\\');
|
||||
@@ -925,7 +946,7 @@ void InformationUpdate(AVRInterface::AVRMessageType_T type, const char *msg) {
|
||||
Console_SetCursor(0, 3);
|
||||
// break; // fall through
|
||||
case AVRInterface::AVRMessageType_T::mtStream:
|
||||
Console_AdvanceToNextLineIfNotRoomFor(26); // @TODO hard-coded - ick
|
||||
Console_AdvanceToNextLineIfNotRoomFor(40); // @TODO hard-coded - ick
|
||||
Console_Write(msg);
|
||||
break;
|
||||
default:
|
||||
@@ -937,7 +958,7 @@ void InformationUpdate(AVRInterface::AVRMessageType_T type, const char *msg) {
|
||||
/* m a i n ( ) */
|
||||
/******************************************************/
|
||||
|
||||
// 0 99
|
||||
// 0 Width
|
||||
// +---------------------------------------------------------------+
|
||||
// | Program banner information | 0
|
||||
// | State machine status information starts on line 2 |
|
||||
@@ -952,7 +973,7 @@ void InformationUpdate(AVRInterface::AVRMessageType_T type, const char *msg) {
|
||||
// +---------------------------------------------------------------+ 80
|
||||
|
||||
int __cdecl main(int argc, char *argv[]) {
|
||||
short consoleWidth = 105;
|
||||
short consoleWidth = 122;
|
||||
short consoleHeight = 80;
|
||||
short consoleScrollHeight = 30;
|
||||
|
||||
@@ -1001,7 +1022,7 @@ int __cdecl main(int argc, char *argv[]) {
|
||||
SerialQueue_T anyRcvdMsg = ProcessSerialReceive();
|
||||
if (anyRcvdMsg.len) {
|
||||
// Show to the user
|
||||
EchoSerialRecv(anyRcvdMsg.message);
|
||||
//EchoSerialRecv(anyRcvdMsg.message);
|
||||
|
||||
// Let the AVR interface handle it first
|
||||
bool showAllFlag = avr->HandleMessage(anyRcvdMsg.message, anyRcvdMsg.len);
|
||||
|
||||
Reference in New Issue
Block a user