У меня есть программа, которая разбивает последовательное устройство на несколько виртуальных последовательных портов и направляет все данные к ним.
---- /dev/ttyS1.a [data]->
|
[data]-> /dev/ttyS1 ---- /dev/ttyS1.b [data]->
|
---- /dev/ttyS1.c [data]->
Моя рабочая программа (псевдокод для удобства чтения и простоты):
poll(...) {
// Route data from master to vsp
master.read(buf)
for(virtual serial ports as vsp) {
vsp.write(buf)
}
// Route data from vsp to master (if need be)
for(virtual serial ports as vsp) {
if(vsp.needs_to_write()) {
vsp.read(buf)
master.write(buf)
}
}
}
У меня есть одно физическое устройство последовательного порта на моей машине, которое непрерывно передает данные, именно так я и проверил, если моя программа изначально работает, но я хотел бы написать тест для имитации / симуляции записи и чтения обоих направлений и проверки данных на обоих заканчивается. Поскольку данные, которые я получаю от моего физического устройства с последовательным портом, записывают, казалось бы, случайные данные, трудно проверить, что именно происходит, именно то, что записывается.
Как я смогу сделать это? (псевдокод)
1. fork process that feeds a known char sequence into /dev/ttyS2 in a loop
2. use my program to read from the COM `master.read(buf)` and then write to the vsp `vsp.write(buf)`
3. how can I verify that after writing to the buf that the vsp has the correct data?
Любая помощь приветствуется. Я запутался в том, как автоматизировать тестирование.
Изменить 1:
Никто не может помочь?
Я думаю, что вы можете использовать com0com для тестирования. Вы можете подключить виртуальные последовательные порты, а затем записать в один и прочитать из другого, что он получил.
введите описание ссылки здесь
Других решений пока нет …