private ErrCode CheckForRemoteOfAddr(string itemAddr, TypeRW itemType) { ErrCode result; switch (itemType) { case TypeRW.Read: if (!this._items.NameRead.ContainsKey(itemAddr) || !this._items.AddrRead.ContainsKey(this._items.NameRead[itemAddr])) { this._errItemAddr = itemAddr; this._errItemName = ""; this.ErrCodeParse(ErrCode.noNameOrAddr); result = ErrCode.noNameOrAddr; return(result); } break; case TypeRW.Write: if (!this._items.NameWrite.ContainsKey(itemAddr) || !this._items.AddrWrite.ContainsKey(this._items.NameWrite[itemAddr])) { this._errItemAddr = itemAddr; this._errItemName = ""; this.ErrCodeParse(ErrCode.noNameOrAddr); result = ErrCode.noNameOrAddr; return(result); } break; } result = ErrCode.ok; return(result); }
private ErrCode CheckForAddItem(string itemAddr, string itemName, TypeRW itemType) { ErrCode result; switch (itemType) { case TypeRW.Read: if (this._items.AddrRead.ContainsKey(itemName) || this._items.NameRead.ContainsKey(itemAddr)) { this._errItemName = itemName; this._errItemAddr = itemAddr; this.ErrCodeParse(ErrCode.sameNameOrAddr); result = ErrCode.sameNameOrAddr; return(result); } break; case TypeRW.Write: if (this._items.AddrWrite.ContainsKey(itemName) || this._items.NameWrite.ContainsKey(itemAddr)) { this._errItemName = itemName; this._errItemAddr = itemAddr; this.ErrCodeParse(ErrCode.sameNameOrAddr); result = ErrCode.sameNameOrAddr; return(result); } break; } result = ErrCode.ok; return(result); }
public void RemoveByAddr(string itemAddr, TypeRW itemType, out int err) { if (!this._client.GetConnectionState()) { this.ErrCodeParse(ErrCode.serverConnFlt); err = 4; } else { ErrCode errCode = this.CheckForRemoteOfAddr(itemAddr, itemType); if (errCode != ErrCode.ok) { err = (int)errCode; } else { switch (itemType) { case TypeRW.Read: { string key = this._items.NameRead[itemAddr]; this._items.AddrRead.Remove(key); this._items.NameRead.Remove(itemAddr); this._items.ValueRead.Remove(itemAddr); this.RefreshOpcItemsRead(new string[] { itemAddr }, 2); break; } case TypeRW.Write: { string key2 = this._items.NameWrite[itemAddr]; this._items.AddrWrite.Remove(key2); this._items.NameWrite.Remove(itemAddr); this.RefreshOpcItemsWrite(new string[] { itemAddr }, 2); break; } } err = 0; } } }
public void Add(string itemAddr, string itemName, TypeRW itemType, out int err) { if (!this._client.GetConnectionState()) { this.ErrCodeParse(ErrCode.serverConnFlt); err = 4; } else { ErrCode errCode = this.CheckForAddItem(itemAddr, itemName, itemType); if (errCode != ErrCode.ok) { err = (int)errCode; } else { switch (itemType) { case TypeRW.Read: this._items.AddrRead.Add(itemName, itemAddr); this._items.NameRead.Add(itemAddr, itemName); this._items.ValueRead.Add(itemAddr, new object()); this.RefreshOpcItemsRead(new string[] { itemAddr }, 1); break; case TypeRW.Write: this._items.AddrWrite.Add(itemName, itemAddr); this._items.NameWrite.Add(itemAddr, itemName); this.RefreshOpcItemsWrite(new string[] { itemAddr }, 1); break; } err = 0; } } }