Ну, я бы подошел к этому так, чтобы работали 2 потока (или процессы).
Поток 1 : Поток чтения
Этот поток выполняет только чтение данных из необработанного последовательного порта и помещает их в локальный буфер / очередь (в памятипредпочтительнее по скорости).Это не должно делать ничего другого.В зависимости от тактовой частоты последовательного соединения это должно быть довольно легко сделать.
Thread2 : поток обработки
Этот поток просто спит, пока в нем нет данных.локальный буфер для обработки, затем считывает и обрабатывает его.Вот и все.
Причина разделения его на две части заключается в том, что если один занят (блок в MySQL для потока обработки), он не повлияет на другой.В конце концов, хотя последовательный порт буферизируется операционной системой, размер буфера ограничен.
Но опять же, любая локальная программа, вероятно, будет работать намного быстрее, чем последовательный порт может отправлять данные.Последовательная передача на самом деле довольно медленная относительно тактовой частоты процессора (115,2 кбит / с - это предел для стандартного оборудования).Поэтому, если вы не привязаны к скорости процессора (например, на Arduino), я не вижу нормальных условий, влияющих на это слишком сильно.Таким образом, ваш выбор языка действительно не должен вызывать особого беспокойства (если принять во внимание современное оборудование).Придерживайтесь того, что вы знаете.