Example #1
0
File: Hart.cs Project: Zurcan/test1
    public static byte[] ReadInputdataToSend(int commNumber)//здесь в зависимости от команды выбираем, что будем слать
    {
        byte[] dataToSend = new byte[CommandDataAnswerBytes[commNumber]];


        if (commNumber == 4)
        {
            dataToSend[0] = (byte)SlaveAddress;    //адрес для подчиненного устройства
        }

        if (commNumber == 5)
        {
            dataToSend = HartProtocol.ConvertASCIIToHartASCII(Tag);    //отправляем тэг
        }

        if (commNumber == 11)
        {
            dataToSend = HartProtocol.ConvertASCIIToHartASCII(Message);    //отправляем сообщение
        }

        if (commNumber == 12)    //формирование сообщение с тэгом, дескрипотором и датой
        {
            byte[] tmp_tag  = HartProtocol.ConvertASCIIToHartASCII(Tag);
            byte[] tmp_desc = HartProtocol.ConvertASCIIToHartASCII(Descriptor);
            for (int i = 0; i < tmp_tag.Length; i++)
            {
                dataToSend[i] = tmp_tag[i];
            }
            for (int i = tmp_tag.Length; i < tmp_tag.Length + tmp_desc.Length; i++)
            {
                dataToSend[i] = tmp_desc[i - tmp_tag.Length];
            }
            for (int i = tmp_tag.Length + tmp_desc.Length; i < tmp_tag.Length + tmp_desc.Length + Date.Length; i++)
            {
                dataToSend[i] = Date[i - tmp_tag.Length - tmp_desc.Length];
            }
        }

        if (commNumber == 14)
        {
            dataToSend[0] = (byte)HartProtocol.PVunitsCode;    //единицы измерения первичной переменной
            for (int i = 1; i < 5; i++)
            {
                dataToSend[i]     = HartProtocol.UpperRangeLimit[i - 1]; //верхний предел диапазона
                dataToSend[i + 4] = HartProtocol.LowerRangeLimit[i - 1]; //нижний предел диапазона
            }
        }
        if (commNumber == 23)    //измеренное значение нуля тока
        {
            dataToSend = HartProtocol.MeasuredCurrentZero;
        }
        if (commNumber == 24)    //измеренное значение приращения тока
        {
            dataToSend = HartProtocol.MeasuredCurrentGain;
        }

        return(dataToSend);
    }
Example #2
0
    public static byte[] ReadInputdataToSend(int commNumber)
    {
        byte[] dataToSend = new byte[CommandDataAnswerBytes[commNumber]];


        if (commNumber == 4)
        {
            dataToSend[0] = (byte)SlaveAddress;
        }

        if (commNumber == 5)
        {
            dataToSend = HartProtocol.ConvertASCIIToHartASCII(Tag);
        }

        if (commNumber == 11)
        {
            dataToSend = HartProtocol.ConvertASCIIToHartASCII(Message);
        }

        if (commNumber == 12)
        {
            byte[] tmp_tag  = HartProtocol.ConvertASCIIToHartASCII(Tag);
            byte[] tmp_desc = HartProtocol.ConvertASCIIToHartASCII(Descriptor);
            for (int i = 0; i < tmp_tag.Length; i++)
            {
                dataToSend[i] = tmp_tag[i];
            }
            for (int i = tmp_tag.Length; i < tmp_tag.Length + tmp_desc.Length; i++)
            {
                dataToSend[i] = tmp_desc[i - tmp_tag.Length];
            }
            for (int i = tmp_tag.Length + tmp_desc.Length; i < tmp_tag.Length + tmp_desc.Length + Date.Length; i++)
            {
                dataToSend[i] = Date[i - tmp_tag.Length - tmp_desc.Length];
            }
        }

        if (commNumber == 14)
        {
            dataToSend[0] = (byte)HartProtocol.PVunitsCode;
            for (int i = 1; i < 5; i++)
            {
                dataToSend[i]     = HartProtocol.UpperRangeLimit[i - 1];
                dataToSend[i + 4] = HartProtocol.LowerRangeLimit[i - 1];
            }
        }
        if (commNumber == 23)
        {
            dataToSend = HartProtocol.MeasuredCurrentZero;
        }
        if (commNumber == 24)
        {
            dataToSend = HartProtocol.MeasuredCurrentGain;
        }

        return(dataToSend);
    }