示例#1
0
 public void CMDTune()
 {
     SetText(DebugEnum.TRACE, "CMD_Tune()\n");
     Tuning = true;
     byte[] tune = { 0xfe, 0xfe, 0x06, 0x01, 0x00, 0x00, 0xf9, 0xfd };
     SendCmd(tune);
     TunerState = TunerStateEnum.TUNING;
 }
示例#2
0
        private void MsgFE(byte[] received)
        {
            if (received.Length != 8)
            {
                //MessageBox.Show("oops!!  MsgFe != 8");
                return;
            }
            //SetText(DebugEnum.VERBOSE, "MsgFE: " + dumphex(data) + "\n");           //Thread.Sleep(200);
            byte cmd        = received[2];
            byte scmd       = received[3];
            byte statusbyte = received[4];

            byte[] b2 = new byte[4];
            switch (cmd)
            {
            // FE-FE-06-01-80-00-79-FD -- tune failure
            case 0x06:
                //SetText(DebugEnum.TRACE, "case 0x06 observed\n");
                switch (scmd)
                {
                case 0x00:
                    //SetText(DebugEnum.TRACE, "Started by Tune cmd\n");
                    Tuning     = false;
                    TunerState = TunerStateEnum.TUNEDONE;
                    byte[] b1 = new byte[2];
                    b1[1] = received[4];
                    b1[0] = received[5];
                    SWR   = BCD5ToInt(b1, 2) / 10.0;
                    if (SWR < 2.0)
                    {
                        MemoryWriteCurrentFreq();
                    }
                    break;

                case 0x01:
                    Tuning     = false;
                    TunerState = TunerStateEnum.TUNEDONE;
                    switch (statusbyte)
                    {
                    case 0x00: SetText(DebugEnum.ERR, "Start by Tune Command\n"); break;

                    case 0x01: SetText(DebugEnum.ERR, "Start by SWR > AutoTuneSWR\n"); break;

                    case 0x02: SetText(DebugEnum.ERR, "Start by StickyTune\n"); break;

                    case 0x80: SetText(DebugEnum.ERR, "QRO Increase Power\n"); break;

                    case 0x81: SetText(DebugEnum.ERR, "QRP Decrease\n"); break;

                    case 0x82: SetText(DebugEnum.ERR, "QRT Overload\n"); break;

                    default: SetText(DebugEnum.ERR, "Unknown status" + b2 + "\n"); break;
                    }
                    //SetText(DebugEnum.ERR, "Tuning failed\n");
                    break;

                default:
                    //SetText(DebugEnum.ERR, "Error: tune???=" + received[3].ToString("X", CultureInfo.InvariantCulture));
                    Tuning     = false;
                    TunerState = TunerStateEnum.TUNEDONE;
                    break;
                }
                break;

            case 0x10:
                switch (received[3])
                {
                case 0x41:
                    b2[0]       = received[5];
                    b2[1]       = received[4];
                    Capacitance = (int)BCD5ToInt(b2, 2);
                    break;

                case 0x42:
                    b2[0]      = received[5];
                    b2[1]      = received[4];
                    Inductance = (int)BCD5ToInt(b2, 2) / 100.0;
                    break;

                default:
                    SetText(DebugEnum.ERR, "CMD unknown=" + Dumphex(received) + "\n");
                    break;
                }
                break;

            case 0x11:
                switch (received[3])
                {
                case 0x06:
                    string status = "off\n";
                    if (received[4] == 0x01)
                    {
                        status = "on\n";
                    }
                    SetText(DebugEnum.TRACE, "Amp " + status);
                    break;

                default:
                    SetText(DebugEnum.ERR, "CMD unknown=" + Dumphex(received) + "\n");
                    break;
                }
                break;

            case 0x21:
                switch (received[3])
                {
                case 0x06:
                    string status = "off\n";
                    if (received[4] == 0x01)
                    {
                        status = "on\n";
                    }
                    SetText(DebugEnum.VERBOSE, "Amp " + status);
                    break;

                default:
                    SetText(DebugEnum.ERR, "CMD unknown=" + Dumphex(received) + "\n");
                    break;
                }
                break;

            default:
                SetText(DebugEnum.ERR, "CMD unknown=" + Dumphex(received) + "\n");
                break;
            }
            //SetText(DebugEnum.VERBOSE, "CMD packet: " + Dumphex(received) + "\n");
        }