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); }