public int SetValue(int ch, int value)
        {
            //需等連線完成
            if (!MvaSpinWait.SpinUntil(() => this.TcpClient.IsRemoteConnected, 5000))
            {
                return(-1);
            }


            if (value > 999)
            {
                throw new MvaException("Light value can not set over 999");
            }
            if (value < 0)
            {
                throw new MvaException("Light value can not set under zero");
            }

            var cmdType = "W12";
            var cmd     = "";

            switch (this.Model)
            {
            case MvaEnumLeimacModel.IWDV_100S_24:
                cmd = string.Format("{0}{1:0000}", cmdType, value);
                break;

            case MvaEnumLeimacModel.IWDV_600M2_24:
                cmd = string.Format("{0}{1:00}{2:0000}", cmdType, ch, value);
                break;

            case MvaEnumLeimacModel.IDGB_50M2PG_12_TP:
            case MvaEnumLeimacModel.IDGB_50M4PG_24_TP:
                cmdType = "W11";
                cmd     = string.Format("{0}{1:00}{2:0000}", cmdType, ch, value);
                break;

            default: throw new MvaException("No assign Model.");
            }


            this.TcpClient.WriteMsg(cmd);



            return(0);
        }
        public int[] GetValues()
        {
            //需等連線完成
            if (!MvaSpinWait.SpinUntil(() => this.TcpClient.IsRemoteConnected, 5000))
            {
                return(null);
            }


            var cmdType = "R12";
            var cmd     = "";

            switch (this.Model)
            {
            case MvaEnumLeimacModel.IWDV_100S_24:
                cmd = string.Format("{0}0000", cmdType);
                break;

            case MvaEnumLeimacModel.IWDV_600M2_24:
                cmd = string.Format("{0}0000", cmdType);
                break;

            case MvaEnumLeimacModel.IDGB_50M2PG_12_TP:
            case MvaEnumLeimacModel.IDGB_50M4PG_24_TP:
                cmdType = "R11";
                cmd     = string.Format("{0}0000", cmdType);
                break;

            default: throw new MvaException("No assign Model.");
            }



            this.LastSend = DateTime.Now;
            this.TcpClient.WriteMsg(cmd);

            if (!MvaSpinWait.SpinUntil(() => this.LastReceive > this.LastSend, 1000))
            {
                return(null);
            }
            return(this.Values);
        }