Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="st"></param>
        /// <param name="gvm"></param>
        /// <param name="giveTempValue"></param>
        public GRWriteGiveModeCommand(GRStation st, GiveTempMode gvm, float giveTempValue)
        {
            if (st == null)
            {
                throw new ArgumentNullException("grstation");
            }

            this.Station   = st;
            _giveTempMode  = gvm;
            _giveTempValue = giveTempValue;
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="data"></param>
        /// <returns></returns>
        public override CommResultState ProcessReceived(byte[] data)
        {
            if (data == null || data.Length == 0)
            {
                return(CommResultState.NullData);
            }
            if (data.Length != 9 + 0x0A)
            {
                return(CommResultState.LengthError);
            }

            if (data[4] != 0xA0 || data[5] != 0x14)
            {
                return(CommResultState.DataError);
            }

            if (data[6] != 0x0A)
            {
                return(CommResultState.DataError);
            }

            byte cachi, caclo;

            CRC16.CalculateCRC(data, data.Length - 2, out cachi, out caclo);

            byte hi = data[data.Length - 1];
            byte lo = data[data.Length - 2];

            if (cachi != hi || caclo != lo)
            {
                return(CommResultState.CheckError);
            }

            byte[] innerData = GRCommandMaker.GetReceivedInnerData(data);

            if (innerData[0] != GRDef.MC_GIVETEMP_MODE)
            {
                return(CommResultState.DataError);
            }

            _giveTempMode  = GetGiveTempMode(innerData[1]);
            _giveTempValue = BitConverter.ToSingle(innerData, 2);

            return(CommResultState.Correct);
        }
Example #3
0
        private void btnWirte_Click(object sender, System.EventArgs e)
        {
            // is connected?
            float        val  = 0F;
            GiveTempMode mode = GetMode();

            if (mode == GiveTempMode.TempValue)
            {
                if (!GetTempValue(out val))
                {
                    MsgBox.Show("输入数据错误!");
                    return;
                }
            }

            GRWriteGiveModeCommand cmd = new GRWriteGiveModeCommand(
                _grst,
                mode,
                val
                );

            CreateImmediateTaskAndExecute(cmd);
        }