Ejemplo n.º 1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="freq"></param>
        /// <returns></returns>
        public virtual int PreFreqYSELSet(int index, int preFreqIndex, PreFreqControl freqControl, COMMPort usedPort, RichTextBox msg = null)
        {
            int _return = 0;

            switch (index)
            {
            case 1:
                _return = this.PreFreqYSELGetFreq(preFreqIndex, freqControl, usedPort, msg);
                break;

            case 2:
                _return = this.PreFreqYSELSetFreq(preFreqIndex, freqControl, usedPort, msg);
                break;

            default:
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率点操作不合法!\r\n", Color.Red, false);
                }
                _return = 1;
                break;
            }
            return(_return);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="freq"></param>
        /// <returns></returns>
        protected virtual int PreFreqYSELSetFreq(int preFreqIndex, PreFreqControl freqControl, COMMPort usedPort, RichTextBox msg = null)
        {
            if (usedPort == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信端口初始化失败!\r\n", Color.Red, false);
                }
                return(1);
            }
            if (freqControl == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率点的控件传递错误!\r\n", Color.Red, false);
                }
                return(2);
            }
            int _return = 0;

            byte[] cmd   = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, 0, 0, 0, 0, 0 };
            int    freq1 = 0;
            int    freq2 = 0;
            int    freq3 = 0;
            int    freq4 = 0;
            string str   = "";

            switch (preFreqIndex)
            {
            case 1:
                freq1  = (int)(freqControl.m_PreFreqOne * 100);
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL1_FREQ_SET;
                cmd[2] = (byte)(freq1 >> 24);
                cmd[3] = (byte)(freq1 >> 16);
                cmd[4] = (byte)(freq1 >> 8);
                cmd[5] = (byte)(freq1);
                str    = "预设频率点1设置成功,频率是:" + freqControl.m_PreFreqOne.ToString() + "MHz" + "!\r\n";
                break;

            case 2:
                freq2  = (int)(freqControl.m_PreFreqTwo * 100);
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL2_FREQ_SET;
                cmd[2] = (byte)(freq2 >> 24);
                cmd[3] = (byte)(freq2 >> 16);
                cmd[4] = (byte)(freq2 >> 8);
                cmd[5] = (byte)(freq2);
                str    = "预设频率点2设置成功,频率是:" + freqControl.m_PreFreqTwo.ToString() + "MHz" + "!\r\n";
                break;

            case 3:
                freq3  = (int)(freqControl.m_PreFreqThree * 100);
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL3_FREQ_SET;
                cmd[2] = (byte)(freq3 >> 24);
                cmd[3] = (byte)(freq3 >> 16);
                cmd[4] = (byte)(freq3 >> 8);
                cmd[5] = (byte)(freq3);

                str = "预设频率点3设置成功,频率是:" + freqControl.m_PreFreqThree.ToString() + "MHz" + "!\r\n";
                break;

            case 4:
                freq4  = (int)(freqControl.m_PreFreqFour * 100);
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL4_FREQ_SET;
                cmd[2] = (byte)(freq4 >> 24);
                cmd[3] = (byte)(freq4 >> 16);
                cmd[4] = (byte)(freq4 >> 8);
                cmd[5] = (byte)(freq4);

                str = "预设频率点4设置成功,频率是:" + freqControl.m_PreFreqFour.ToString() + "MHz" + "!\r\n";
                break;

            case 5:
                freq1 = (int)(freqControl.m_PreFreqOne * 100);
                freq2 = (int)(freqControl.m_PreFreqTwo * 100);
                freq3 = (int)(freqControl.m_PreFreqThree * 100);
                freq4 = (int)(freqControl.m_PreFreqFour * 100);
                cmd   = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL_FREQ_SET, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };

                cmd[2] = (byte)(freq1 >> 24);
                cmd[3] = (byte)(freq1 >> 16);
                cmd[4] = (byte)(freq1 >> 8);
                cmd[5] = (byte)(freq1);

                cmd[6] = (byte)(freq2 >> 24);
                cmd[7] = (byte)(freq2 >> 16);
                cmd[8] = (byte)(freq2 >> 8);
                cmd[9] = (byte)(freq2);

                cmd[10] = (byte)(freq3 >> 24);
                cmd[11] = (byte)(freq3 >> 16);
                cmd[12] = (byte)(freq3 >> 8);
                cmd[13] = (byte)(freq3);

                cmd[14] = (byte)(freq4 >> 24);
                cmd[15] = (byte)(freq4 >> 16);
                cmd[16] = (byte)(freq4 >> 8);
                cmd[17] = (byte)(freq4);

                str  = "预设频率点1设置成功,频率是:" + freqControl.m_PreFreqOne.ToString() + "MHz" + "!\r\n";
                str += "预设频率点2设置成功,频率是:" + freqControl.m_PreFreqTwo.ToString() + "MHz" + "!\r\n";
                str += "预设频率点3设置成功,频率是:" + freqControl.m_PreFreqThree.ToString() + "MHz" + "!\r\n";
                str += "预设频率点4设置成功,频率是:" + freqControl.m_PreFreqFour.ToString() + "MHz" + "!\r\n";
                break;

            case 6:
                cmd = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL1_FREQ_OUT };
                str = "预设频率点1设置输出,频率是:" + freqControl.m_PreFreqOne.ToString() + "MHz" + "!\r\n";
                break;

            case 7:
                cmd = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL2_FREQ_OUT };
                str = "预设频率点2设置输出,频率是:" + freqControl.m_PreFreqTwo.ToString() + "MHz" + "!\r\n";
                break;

            case 8:
                cmd = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL3_FREQ_OUT };
                str = "预设频率点3设置输出,频率是:" + freqControl.m_PreFreqThree.ToString() + "MHz" + "!\r\n";
                break;

            case 9:
                cmd = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL4_FREQ_OUT };
                str = "预设频率点4设置输出,频率是:" + freqControl.m_PreFreqFour.ToString() + "MHz" + "!\r\n";
                break;

            default:
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率点的信息传递错误!\r\n", Color.Red, false);
                }
                return(3);
            }
            byte[] res = null;

            //---将命令写入设备
            _return = usedPort.SendCmdAndReadResponse(cmd, ref res, 300);

            //---通信验证
            if ((_return == 0) && (usedPort.m_COMMPortDataFormatPassed == true) && (res[usedPort.m_COMMPortDataReadIndex + 1] == 0) && (res[usedPort.m_COMMPortDataReadIndex + 2] == cmd[1]))
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率设置成功!\r\n" + str, Color.Black, false);
                }
            }
            else
            {
                if (_return != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信发生错误!\r\n", Color.Red, false);
                    }
                }
                else if (usedPort.m_COMMPortDataFormatPassed == false)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "读取的数据格式不合法!\r\n", Color.Red, false);
                    }
                }
                else if (res[usedPort.m_COMMPortDataReadIndex + 1] != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "数据返回的结果错误!\r\n", Color.Red, false);
                    }
                }
                else
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信命令验证错误!\r\n", Color.Red, false);
                    }
                }
            }
            return(_return);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="index"></param>
        /// <param name="freq"></param>
        /// <returns></returns>
        protected virtual int PreFreqYSELGetFreq(int preFreqIndex, PreFreqControl freqControl, COMMPort usedPort, RichTextBox msg = null)
        {
            if (usedPort == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信端口初始化失败!\r\n", Color.Red, false);
                }
                return(1);
            }
            if (freqControl == null)
            {
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率点的控件传递错误!\r\n", Color.Red, false);
                }
                return(2);
            }
            int _return = 0;

            byte[] cmd   = new byte[] { CMD_RFASK_CMD1_YSEL_FREQ, 0, };
            float  freq1 = 0;
            float  freq2 = 0;
            float  freq3 = 0;
            float  freq4 = 0;
            string str   = "";

            switch (preFreqIndex)
            {
            case 1:
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL1_FREQ_GET;
                break;

            case 2:
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL2_FREQ_GET;
                break;

            case 3:
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL3_FREQ_GET;
                break;

            case 4:
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL4_FREQ_GET;
                break;

            case 5:
                cmd[1] = (byte)CLOCKYSELCMD.CMD_RFASK_CMD2_YSEL_FREQ_GET;
                break;

            default:
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率点的信息传递错误!\r\n", Color.Red, false);
                }
                return(3);
            }
            byte[] res = null;

            //---将命令写入设备
            _return = usedPort.SendCmdAndReadResponse(cmd, ref res, 300);

            //---通信验证
            if ((_return == 0) && (usedPort.m_COMMPortDataFormatPassed == true) && (res[usedPort.m_COMMPortDataReadIndex + 1] == 0) && (res[usedPort.m_COMMPortDataReadIndex + 2] == cmd[1]))
            {
                switch (preFreqIndex)
                {
                case 1:
                    freq1 = res[usedPort.m_COMMPortDataReadIndex + 3];
                    freq1 = ((int)freq1 << 8) + res[usedPort.m_COMMPortDataReadIndex + 4];
                    freq1 = ((int)freq1 << 8) + res[usedPort.m_COMMPortDataReadIndex + 5];
                    freq1 = ((int)freq1 << 8) + res[usedPort.m_COMMPortDataReadIndex + 6];
                    freqControl.m_PreFreqOne = (float)(freq1 / 100.00);
                    str = "预设频率点1读取成功,频率是:" + freqControl.m_PreFreqOne.ToString("0.00") + "MHz" + "!\r\n";
                    break;

                case 2:
                    freq2 = res[usedPort.m_COMMPortDataReadIndex + 3];
                    freq2 = ((int)freq2 << 8) + res[usedPort.m_COMMPortDataReadIndex + 4];
                    freq2 = ((int)freq2 << 8) + res[usedPort.m_COMMPortDataReadIndex + 5];
                    freq2 = ((int)freq2 << 8) + res[usedPort.m_COMMPortDataReadIndex + 6];
                    freqControl.m_PreFreqTwo = (float)(freq2 / 100.00);
                    str = "预设频率点2读取成功,频率是:" + freqControl.m_PreFreqTwo.ToString("0.00") + "MHz" + "!\r\n";
                    break;

                case 3:
                    freq3 = res[usedPort.m_COMMPortDataReadIndex + 3];
                    freq3 = ((int)freq3 << 8) + res[usedPort.m_COMMPortDataReadIndex + 4];
                    freq3 = ((int)freq3 << 8) + res[usedPort.m_COMMPortDataReadIndex + 5];
                    freq3 = ((int)freq3 << 8) + res[usedPort.m_COMMPortDataReadIndex + 6];
                    freqControl.m_PreFreqThree = (float)(freq3 / 100.00);
                    str = "预设频率点3读取成功,频率是:" + freqControl.m_PreFreqThree.ToString("0.00") + "MHz" + "!\r\n";
                    break;

                case 4:
                    freq4 = res[usedPort.m_COMMPortDataReadIndex + 3];
                    freq4 = ((int)freq4 << 8) + res[usedPort.m_COMMPortDataReadIndex + 4];
                    freq4 = ((int)freq4 << 8) + res[usedPort.m_COMMPortDataReadIndex + 5];
                    freq4 = ((int)freq4 << 8) + res[usedPort.m_COMMPortDataReadIndex + 6];
                    freqControl.m_PreFreqFour = (float)(freq4 / 100.00);
                    str = "预设频率点4读取成功,频率是:" + freqControl.m_PreFreqFour.ToString("0.00") + "MHz" + "!\r\n";
                    break;

                case 5:
                    freq1 = res[usedPort.m_COMMPortDataReadIndex + 3];
                    freq1 = ((int)freq1 << 8) + res[usedPort.m_COMMPortDataReadIndex + 4];
                    freq1 = ((int)freq1 << 8) + res[usedPort.m_COMMPortDataReadIndex + 5];
                    freq1 = ((int)freq1 << 8) + res[usedPort.m_COMMPortDataReadIndex + 6];
                    freqControl.m_PreFreqOne = (float)(freq1 / 100.00);
                    str = "预设频率点1读取成功,频率是:" + freqControl.m_PreFreqOne.ToString("0.00") + "MHz" + "!\r\n";

                    freq2 = res[usedPort.m_COMMPortDataReadIndex + 7];
                    freq2 = ((int)freq2 << 8) + res[usedPort.m_COMMPortDataReadIndex + 8];
                    freq2 = ((int)freq2 << 8) + res[usedPort.m_COMMPortDataReadIndex + 9];
                    freq2 = ((int)freq2 << 8) + res[usedPort.m_COMMPortDataReadIndex + 10];

                    freqControl.m_PreFreqTwo = (float)(freq2 / 100.00);
                    str += "预设频率点2读取成功,频率是:" + freqControl.m_PreFreqTwo.ToString("0.00") + "MHz" + "!\r\n";

                    freq3 = res[usedPort.m_COMMPortDataReadIndex + 11];
                    freq3 = ((int)freq3 << 8) + res[usedPort.m_COMMPortDataReadIndex + 12];
                    freq3 = ((int)freq3 << 8) + res[usedPort.m_COMMPortDataReadIndex + 13];
                    freq3 = ((int)freq3 << 8) + res[usedPort.m_COMMPortDataReadIndex + 14];
                    freqControl.m_PreFreqThree = (float)(freq3 / 100.00);
                    str += "预设频率点3读取成功,频率是:" + freqControl.m_PreFreqThree.ToString("0.00") + "MHz" + "!\r\n";

                    freq4 = res[usedPort.m_COMMPortDataReadIndex + 15];
                    freq4 = ((int)freq4 << 8) + res[usedPort.m_COMMPortDataReadIndex + 16];
                    freq4 = ((int)freq4 << 8) + res[usedPort.m_COMMPortDataReadIndex + 17];
                    freq4 = ((int)freq4 << 8) + res[usedPort.m_COMMPortDataReadIndex + 18];
                    freqControl.m_PreFreqFour = (float)(freq4 / 100.00);
                    str += "预设频率点4读取成功,频率是:" + freqControl.m_PreFreqFour.ToString("0.00") + "MHz" + "!\r\n";
                    break;

                default:
                    return(4);
                }
                if (msg != null)
                {
                    RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "预设频率读取成功!\r\n" + str, Color.Black, false);
                }
            }
            else
            {
                if (_return != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信发生错误!\r\n", Color.Red, false);
                    }
                }
                else if (usedPort.m_COMMPortDataFormatPassed == false)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "读取的数据格式不合法!\r\n", Color.Red, false);
                    }
                }
                else if (res[usedPort.m_COMMPortDataReadIndex + 1] != 0)
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "数据返回的结果错误!\r\n", Color.Red, false);
                    }
                }
                else
                {
                    if (msg != null)
                    {
                        RichTextBoxPlus.AppendTextInfoTopWithDataTime(msg, "通信命令验证错误!\r\n", Color.Red, false);
                    }
                }
            }
            return(_return);
        }