Beispiel #1
0
        private static byte[] ByteArrayForGetCoilsMessagePhase1(NeuronSpiCommand command, ushort coil, ushort numberOfCoils)
        {
            var lenght = Convert.ToByte(4 + (((numberOfCoils + 15) >> 4) << 1));
            var data   = new List <byte> {
                (byte)command, lenght
            };

            data.AddRange(BitConverter.GetBytes(coil));
            var crc = CreateCrc(data.ToArray());

            data.AddRange(crc);
            var array = data.ToArray();

            return(array ?? new byte[0]);



            //var lenght = Convert.ToByte(4 + numberOfCoils);
            //var data = new List<byte> { (byte)command, lenght };
            //data.AddRange(BitConverter.GetBytes(coil));
            //var crc = CreateCrc(data.ToArray());
            //data.AddRange(crc);
            //var array = data.ToArray();
            //return array ?? new byte[0];
        }
Beispiel #2
0
        private static byte[] ByteArrayForReadRegisterMessagePhase2(NeuronSpiCommand command, ushort register, byte numberOfRegisters)
        {
            var data = new List <byte> {
                (byte)command, 0
            };

            data.AddRange(BitConverter.GetBytes(register));
            data.AddRange(new byte[4 + numberOfRegisters * 2 - data.Count + 2]);
            var array = data.ToArray();

            return(array ?? new byte[0]);
        }
Beispiel #3
0
        private static byte[] ByteArrayForReadRegisterMessagePhase1(NeuronSpiCommand command, ushort register, byte numberOfRegisters)
        {
            var lenght = Convert.ToByte(4 + numberOfRegisters * 2);
            var data   = new List <byte> {
                (byte)command, lenght
            };

            data.AddRange(BitConverter.GetBytes(register));
            var crc = CreateCrc(data.ToArray());

            data.AddRange(crc);
            var array = data.ToArray();

            return(array ?? new byte[0]);
        }
Beispiel #4
0
        private static byte[] ByteArrayForSetCoilsMessage(NeuronSpiCommand command, ushort register, byte value)
        {
            var data = new List <byte> {
                (byte)command, value
            };

            data.AddRange(BitConverter.GetBytes(register));

            var crc = CreateCrc(data.ToArray());

            data.AddRange(crc);

            var array = data.ToArray();

            return(array ?? new byte[0]);
        }
Beispiel #5
0
        private static byte[] ByteArrayForSetRegisterMessagePhase2(NeuronSpiCommand command, ushort register, ushort value, ushort currentCrc)
        {
            var lenght = Convert.ToByte(1);
            var data   = new List <byte> {
                (byte)command, lenght
            };

            data.AddRange(BitConverter.GetBytes(register));
            data.AddRange(BitConverter.GetBytes(value));

            var crc = CreateCrc(data.ToArray(), 0, currentCrc);

            data.AddRange(crc);

            var array = data.ToArray();

            return(array ?? new byte[0]);
        }
Beispiel #6
0
        private static byte[] ByteArrayForGetCoilsMessagePhase2(NeuronSpiCommand command, ushort coil, ushort numberOfCoils)
        {
            var data = new List <byte> {
                (byte)command, 0
            };

            data.AddRange(BitConverter.GetBytes(coil));
            data.AddRange(new byte[4 + (((numberOfCoils + 15) >> 4) << 1) - data.Count + 2]);
            var array = data.ToArray();

            return(array ?? new byte[0]);

            //var data = new List<byte> { (byte)command, 0 };
            //data.AddRange(BitConverter.GetBytes(coil));
            //data.AddRange(new byte[4 + numberOfCoils - data.Count + 2]);
            //var array = data.ToArray();
            //return array ?? new byte[0];
        }
 internal NeuronSpiMessage(NeuronSpiCommand operation, ushort register, byte numberOfRegisters)
 {
     Operation         = operation;
     NumberOfRegisters = numberOfRegisters;
     Register          = register;
 }