Beispiel #1
0
 public C_RegByteValue(byte _value, e_readWrite _rwActual, e_readWrite _rwShadow, bool _touched)
 {
     rwShadow   = _rwShadow;
     rwActual   = _rwActual;
     touched    = _touched;
     val        = _value;
     actualized = DateTime.Now;
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
        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;
        }