BBS水木清华站∶精华区

发信人: cmusic (一飞冲天~燕入云), 信区: Java        
 
请教大虾一个问题: 
实现了接口SerialPortEventListener的类运行之后好象总是结束不了应用程序,通信 
只是整个应用程序的一部分,如何才能在正确的接收到所需信息后得到一个返回值呢? 
 
 
 
发信人: KHP (人之初), 信区: Java        
 
 
把问题说得明白点 
 
【 在 cmusic (一飞冲天~燕入云) 的大作中提到: 】 
∶ 请教大虾一个问题: 
∶ 实现了接口SerialPortEventListener的类运行之后好象总是结束不了应用程序,通信 
∶ 只是整个应用程序的一部分,如何才能在正确的接收到所需信息后得到一个返回值呢? 
 
 
 
 
发信人: cmusic (一飞冲天~燕入云), 信区: Java        
 
假设我有一信息要发送给对方,并且想得到它的返回信息,当然两者之间的数据传送格式是 
事先规定好的,现自定义一个类,该类实现SeialPortEventListener接口,在方法SerialEvent 
中出发事件响应来接收数据(DATA_AVAILABLE),经测试发现,对方一次性发过来的数据总要有 
好几次触发事件,我希望在收到一个完整“数据帧”后能通知当前应用程序端口已收到一条 
完整信息请求立即处理,该怎么办呢,对通信的机制不是很懂,我该怎么办呢,JAVA中有没 
有类似中断的方法来实现呢?KHP是不是曾有过类似的经验,请指教,非常感谢! 
 
� 在 KHP (人之初) 的大作中提到: 】 
 
把问题说得明白点 
 
【 在 cmusic (一飞冲天~燕入云) 的大作中提到: 】 
∶ 请教大虾一个问题: 
∶ 实现了接口SerialPortEventListener的类运行之后好象总是结束不了应用程序,通信 
∶ 只是整个应用程序的一部分,如何才能在正确的接收到所需信息后得到一个返回值呢? 
 
 
 
 
发信人: KHP (人之初), 信区: Java        
 
 
当数据到达时,先把数据写入一个缓冲区,再判断目前缓冲区中的数据是否已经 
构成了所期望的一个完整的数据帧(帧格式的定义应该能提供需要的信息),如果 
是,则调用相应的方法进行处理,然后对缓冲区进行复位。若尚未接收到足够的数 
据,则不做任何处理直接返回即可。 
 
这样可以吧? 
 
【 在 cmusic (一飞冲天~燕入云) 的大作中提到: 】 
∶ 假设我有一信息要发送给对方,并且想得到它的返回信息,当然两者之间的数据传送格式是 
∶ 事先规定好的,现自定义一个类,该类实现SeialPortEventListener接口,在方法SerialEvent 
∶ 中出发事件响应来接收数据(DATA_AVAILABLE),经测试发现,对方一次性发过来的数据总要有 
∶ 好几次触发事件,我希望在收到一个完整“数据帧”后能通知当前应用程序端口已收到一条 
∶ 完整信息请求立即处理,该怎么办呢,对通信的机制不是很懂,我该怎么办呢,JAVA中有没 
∶ 有类似中断的方法来实现呢?KHP是不是曾有过类似的经验,请指教,非常感谢! 
∶ 把问题说得明白点 
 
 
 
 
发信人: cmusic (一飞冲天~燕入云), 信区: Java        
 
我是这样考虑了,问题是:在主程序需要进行传输数据时首先调用"写"函数,写出去后可能 
还要做别的事,但又得观望着是否已经有数据信息返回,在主程序一开始已经声明了的该 
通信对象可能已经收到了对方返回过来的信息,因为什么时候能完整返回是不确定的,观� 
望的主程序如何观望,一旦通信对象得到了完整信息怎么通知主程序你可以取返回信息了, 
问题主要在这个地方,另外主程序是多任务的,宏观上可能同时发出几条信息并等待返回 
实在是新手,高手指点迷津,程序结构的安排是不是有什么不妥,还是需要其他方法,因为 
我们的最终目的并不仅仅为了看到通信结果。 
对KHP先生的帮助非常感激,若不嫌麻烦,请再赐高招,非常感谢!!! 
 
【 在 KHP (人之初) 的 
∶ 当数据到达时,先把数据写入一个缓冲区,再判断目前缓冲区中的数据是否已经 
∶ 构成了所期望的一个完整的数据帧(帧格式的定义应该能提供需要的信息),如果 
∶ 是,则调用相应的方法进行处理,然后对缓冲区进行复位。若尚未接收到足够的数 
∶ 据,则不做任何处理直接返回即可。 
∶ 这样可以吧� 
 
 
 

BBS水木清华站∶精华区