public C_RegByteValue(byte _value, e_readWrite _rwActual, e_readWrite _rwShadow, bool _touched) { rwShadow = _rwShadow; rwActual = _rwActual; touched = _touched; val = _value; actualized = DateTime.Now; }
public C_RegByte(string _name, e_readWrite _rwActual, e_readWrite _rwShadow, byte _address, byte _value) : base() { rwShadow = _rwShadow; name = _name; byteAddress = _address; def = new C_RegByteValue(_value, _rwActual, _rwShadow, true); sent = new C_RegByteValue(_value, _rwActual, _rwShadow); seen = new C_RegByteValue(_value, _rwActual, _rwShadow); }
public static bool IS_writable(e_readWrite rw) { if ((rw == e_readWrite.writeOnly) || (rw == e_readWrite.readWrite)) { return(true); } else // if ((rw == e_readWrite.readOnly) || (rw == e_readWrite.registered)) { return(false); } }
public void INIT_byteRegisterDefaultValues() { // load it from txt file string txt = Properties.Resources.ResourceManager.GetString("registerByteDefault"); string[] lines = txt.Split(new string[] { Environment.NewLine }, StringSplitOptions.None); char sep = '|'; byte add = 0; foreach (string line in lines) { if (line.Length > 2) { string[] splited = line.Split(sep); // syntax of each line: // XX A #num name // legend: // splited[0]= XX - hexa // splited[1]= A - [X]registered [R]ead [B]oth ([W]rite) // splited[2]= # - number symbol // splited[2]= num - address in register - not needed // splited[3]= name - address byte name string e_readWrite rwShadow = e_readWrite.registered; e_readWrite rwActual = e_readWrite.registered; switch (splited[1]) { //case ("X"): rw = e_readWrite.registered; break; //case ("B"): rw = e_readWrite.readWrite; break; //case ("R"): rw = e_readWrite.readOnly; break; //case ("W"): rw = e_readWrite.writeOnly; break; case ("X"): rwShadow = e_readWrite.registered; rwActual = e_readWrite.registered; break; case ("B"): rwShadow = e_readWrite.readWrite; rwActual = e_readWrite.readWrite; break; case ("R"): rwShadow = e_readWrite.readWrite; rwActual = e_readWrite.readOnly; break; case ("W"): rwShadow = e_readWrite.readWrite; rwActual = e_readWrite.writeOnly; break; } reg.Add(new C_RegByte( splited[3], rwActual, rwShadow, add, C_CONV.strHex2byte(splited[0]) )); //reg[reg.Count-1]. add++; } } i_maxReg = reg.Count; }