public abstract int ReadBit(ComLink.BitArea ba, int addrWord, int addrBit, ref bool status);
public int WriteBit(ComLink.BitArea ba, int addrWord, int addrBit, bool bSet) { int result; if (ba >= (ComLink.BitArea) 10) { result = 1; } else { string strMemory; switch (ba) { case ComLink.BitArea.CIO: strMemory = "30"; break; case ComLink.BitArea.WR: strMemory = "31"; break; case ComLink.BitArea.HR: strMemory = "32"; break; case ComLink.BitArea.AR: strMemory = "33"; break; case ComLink.BitArea.TM: case ComLink.BitArea.CNT: strMemory = "09"; break; default: result = 1; return(result); } StringBuilder strCommand = new StringBuilder("@"); strCommand.Append(this._strUnitNo); strCommand.Append("FA10000000001"); strCommand.Append("02"); strCommand.Append(strMemory); string strWord = Convert.ToString(addrWord, 16); if (strWord.Length < 4) { string strTemp = "0000"; strTemp = strTemp.Substring(0, 4 - strWord.Length); strWord = strTemp + strWord; } strCommand.Append(strWord); strCommand.Append("0"); strCommand.Append(Convert.ToString(addrBit, 16)); strCommand.Append("0001"); if (bSet) { strCommand.Append("01"); } else { strCommand.Append("00"); } string strFcs = this.GetFcs(strCommand.ToString()); strCommand.Append(strFcs); strCommand.Append("*"); strCommand.Append('\r'); string strRead = null; try { lock (this._port) { this._port.Write(strCommand.ToString()); strRead = this._port.ReadTo(this._strReadTo); } } catch (Exception ex) { throw new Exception(ex.Message); } if (strRead.Length > 24 && strRead.Substring(19, 4).Equals("0000")) { result = 0; } else { result = 1; } } return(result); }
public abstract int ResetBit(ComLink.BitArea ba, int addrWord, int addrBit);
public override int ResetBit(ComLink.BitArea ba, int addrWord, int addrBit) { return(this.WriteBit(ba, addrWord, addrBit, false)); }