擅长:python、mysql、java
<p>正如您展示的所有示例都以<code>(enter)</code>结尾,为什么是…:</p>
<blockquote>
<p>Communication must be asynchronous; I
can't simply wait for a carriage
return to allow the buffer to be fed
out the serial interface</p>
</blockquote>
<p>如果您可以在“enter”之前收集传入的数据,并将“edit”请求(如示例中的ctrl-a、left、right)应用于所收集的数据,那么您将在内存中留下“completed command about be sent”(将要发送的已完成命令)在内存中进行匹配、拒绝或发送。在</p>
<p>如果<strong>必须</strong>逐字执行,则(未缓冲)输入上的<code>.read(1)</code>将允许您这样做,但审查可能会变得更麻烦;同样,您可以在内存中保存到目前为止已发送的已编辑命令的映像(即使在发送它们的同时应用编辑请求),但是当“enter”到达时,如果您的审查结果显示这样的命令是不允许的——您可以向设备发送多个“delete”来擦除所述命令吗?或者有一个单独的“抛出完整行”编辑请求?在</p>
<p>如果你必须在收到的时候发送每个字符(在决定点之前不允许累积字符),并且没有办法删除/删除已经发送的字符,那么这个任务看起来是不可能的(尽管我根本不理解“不能等待回车”的条件,所以也许还有希望)。在</p>