我需要在UWP应用程序(C ++ / CX)中通过串行(FTDI)捕获数据帧的开头。
此帧的开头仅由中断信号决定。
通过在“一种循环”中调用dataReader中的函数LoadAsync / ReadBuffer / ReadBytes, 就像在Windows IOT git中可用的SerialSample一样,我能够检索完整的帧,但是我找不到第一个字节。
例如:
我想要的:[0] [1] [2] [...] [n-2] [n-1] [n]
得到的结果:[55] [56] [...] [n-1] [n] [0] [1] [...] [54]
或者如果我重新启动程序:[22] [23] [...] [n-1] [n] [0] [1] [...] [21]
开始只取决于我何时启动通信。 此外,帧中字节的数字“n”不是预先知道的。
我尝试使用PinChanged事件来检测中断信号并确实检测到它们, 但仅限于异步操作“LoadAsync”。
返回此函数后,数据被加载,我无法准确知道中断发生在哪个字节之间。
我还尝试逐字节加载数据,然后当检测到中断时,我考虑帧的开始。
不幸的是,这个事件也是异步的,似乎有一点延迟:我有一个偏移,这个在我的第一个“trig”期间似乎总是一样。
加载几帧后,出现随机偏移(我不知道为什么......)。
此外,如果我想在N帧之后触发,则偏移量与之前不同,所以我不能只是“修复我收到的字节的索引”。
总结一下: 有没有办法确切地知道哪个字节发生中断?
感谢。