Мой существующий код:Как отправить все данные в один буфер через последовательный порт?
private void ConvertAndSend_Click(object sender, EventArgs e)
{
if (serialPort.IsOpen)
{
byte[] TxBuffer = new byte[240];
string[] coords = textBox1.Text.Split('\n');
for (int i = 0; i <= coords.Length - 1; i++)
{
if (coords[i].Length > 0)
{
Data = GetValue(coords[i]);
}
}
TxBuffer[0] = 0x5A;
TxBuffer[1] = Instruction;
TxBuffer[2] = (byte)Data.Length;
Data.CopyTo(TxBuffer, 3);
TxBuffer[Data.Length + 3] = 0x2C;
serialPort.Write(TxBuffer, 0, 4 + Data.Length);
}
}
Теперь я посылаю все «данные» в отдельном «Txbuffer». например если у меня есть несколько «Данных», я собираюсь отправить несколько «Txbuffer». Как я могу объединить все «данные» в один «Txbuffer» и отправить за один раз?
Почему, на ваш взгляд, это имеет значение? Драйвер устройства будет конкатенировать их все в один буфер FIFO в любом случае, пока 'Write()' вызывается снова до отправки последнего байта, а последовательные порты настолько медленны, что это легко сделать. –
Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –
@BenVoigt Это не большая проблема, но она будет более эффективной. – user3974930