Beispiel #1
0
        public void Read(byte[] pack)
        {
            for (int i = 0; i < dio.Length; i++)
            {
                int offset = i * DIOModule.LENGTH;
                dio[i] = new DIOModule();
                dio[i].relayForward  = BitConverter.ToUInt32(pack, offset);
                dio[i].relayReverse  = BitConverter.ToUInt32(pack, offset + 4);
                dio[i].digitalOutput = BitConverter.ToUInt32(pack, offset + 8);
                for (int j = 0; j < dio[i].pwmValues.Length; j++)
                {
                    dio[i].pwmValues[j] = BitConverter.ToSingle(pack, offset + 12 + (4 * j));
                }
                //Debug.Log("PWM: " + BitConverter.ToString(pack));

                //for (int j = 0; j < dio[i].canValues.Length; j++)
                //{
                //    dio[i].canValues[j] = BitConverter.ToSingle(pack, offset + 12 + (4 * 10) + (4 * j));
                //}
            }
            for (int i = 0; i < solenoid.Length; i++)
            {
                int offset = (DIOModule.LENGTH * dio.Length) + (i * SolenoidModule.LENGTH);
                solenoid [i]       = new SolenoidModule();
                solenoid [i].state = pack [offset];
            }
        }
        public void Read(byte[] pack)
        {
            for (int i = 0; i < dio.Length; i++)
            {
                int offset = i * DIOModule.LENGTH;
                dio[i] = new DIOModule();
                dio[i].relayForward  = BitConverter.ToUInt32(pack, offset);
                dio[i].relayReverse  = BitConverter.ToUInt32(pack, offset + 4);
                dio[i].digitalOutput = BitConverter.ToUInt32(pack, offset + 8);

                for (int j = 0; j < dio[i].pwmValues.Length; j++)
                {
                    dio[i].pwmValues[j] = BitConverter.ToSingle(pack, offset + 12 + (4 * j));
                }
            }

            int totalOffset = DIOModule.LENGTH * dio.Length + SolenoidModule.LENGTH;

            solenoid       = new SolenoidModule();
            solenoid.state = pack[totalOffset];
        }