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); }
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); }