请教大侠,我用java做界面,需要调用一个用c写的dll,这个dll主要是一些数据通讯协议。过程是这样的,
java界面发送一条命令,让c底层去打包,打完包后发送给java界面,界面获得这些包后通过串口发送出去。
现在的问题是包内容当中会出现一些字符串结束符。比如01 00 19 80 00 16 10 00 06 00 46 00 0F 53
59 4E 43 4D 4C 5F 53 59 4E 43 00,当中的比如00 16这个是长度,因为从Unsigned int 16转换为两个
字节所以0X0016就是00 16了。
问题一、我将这个c中的字符串传给java的string的时候(用jni),调试时发现string中的内容
只有01,后面的就丢失了
问题二、即使第一个问题解决了,java的串口不能像c那样知道要发送多长的buffer,用string传出去的
话同样的只能传出01,之后的数据就没再发出去了。
我的想法是c还负责数据的收发,就是串口放在dll这个里面,可是不知道这个java和c如何交互的,在jni中
没有涉及到这个的呀,谢谢。论坛上有开发过在macos上面运行的程序吗?我的
qq326966022,共同探讨,谢谢
java界面发送一条命令,让c底层去打包,打完包后发送给java界面,界面获得这些包后通过串口发送出去。
现在的问题是包内容当中会出现一些字符串结束符。比如01 00 19 80 00 16 10 00 06 00 46 00 0F 53
59 4E 43 4D 4C 5F 53 59 4E 43 00,当中的比如00 16这个是长度,因为从Unsigned int 16转换为两个
字节所以0X0016就是00 16了。
问题一、我将这个c中的字符串传给java的string的时候(用jni),调试时发现string中的内容
只有01,后面的就丢失了
问题二、即使第一个问题解决了,java的串口不能像c那样知道要发送多长的buffer,用string传出去的
话同样的只能传出01,之后的数据就没再发出去了。
我的想法是c还负责数据的收发,就是串口放在dll这个里面,可是不知道这个java和c如何交互的,在jni中
没有涉及到这个的呀,谢谢。论坛上有开发过在macos上面运行的程序吗?我的
qq326966022,共同探讨,谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货