小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 10296|回复: 6

android上位机发送指令问题

[复制链接]
发表于 2012-9-7 21:36:22 | 显示全部楼层 |阅读模式
最近在研究android手机控制端程序,单独的视频接受显示是没问题了。但是在加上发送运动控制的语句后程序就卡在那里了。
关键代码如下:
        public static byte[] combineByte(byte paramByte1, byte paramByte2, byte paramByte3){
            byte[] arrayOfByte = new byte[5];
            arrayOfByte[0] = -1;
            arrayOfByte[1] = paramByte1;
            arrayOfByte[2] = paramByte2;
            arrayOfByte[3] = paramByte3;
            arrayOfByte[4] = -1;
            return arrayOfByte;
        }

        public static byte[] toHex(String paramString){
            byte b1= 0x00;
            try{
                byte[] arrayOfByte1 = new BigInteger(paramString, 16).toByteArray();
                return arrayOfByte1;
            }catch (Exception arrayOfByte2){
                byte[] arrayOfByte = combineByte(b1, b1, b1);
                return arrayOfByte;
            }
        }

        private static void send(byte[] paramArrayOfByte){
            if (consocket == null);
            while (true){
              try{
                  OutputStream localOutputStream = consocket.getOutputStream();
                  localOutputStream.write(paramArrayOfByte);
                  localOutputStream.flush();
              }catch (IOException localIOException){
                  localIOException.printStackTrace();
              }
           }
        }

第一个和第二个函数是用来将String转换为十六进制数组,然后通过将指令send发送出去
使用过程如下:
ROBOT_CONTROLPORT_CON = localSharedPreferences.getString("ControlPort", "2001");
ROBOT_CONTROLIP_CON = localSharedPreferences.getString("ControlIP", "192.168.1.1");


InetAddress localInetAddress = InetAddress.getByName(ROBOT_CONTROLIP_CON);
int port = Integer.parseInt(ROBOT_CONTROLPORT_CON);
consocket = new Socket(localInetAddress, port);
send(toHex("FFEEEEEEFF"));


然后程序就卡在send语句上了,连视频都无法接收了。这到底是什么情况?请教各位大神
回复

使用道具 举报

发表于 2012-9-7 23:11:16 | 显示全部楼层
加log打印,看看死在哪一步了,这么直接贴代码远没有你贴log打印有用。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-9-8 10:06:50 | 显示全部楼层
liuviking 发表于 2012-9-7 23:11
加log打印,看看死在哪一步了,这么直接贴代码远没有你贴log打印有用。

谢谢老大,已经发现问题所在了。
回复 支持 反对

使用道具 举报

发表于 2012-10-22 12:42:13 | 显示全部楼层
wanghai 发表于 2012-9-8 10:06
谢谢老大,已经发现问题所在了。

说说怎么解决的啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-10-22 23:00:23 | 显示全部楼层
mengbinya 发表于 2012-10-22 12:42
说说怎么解决的啊

就是发送控制指令的语句中有个while死循环,一开始没注意到。。。。。
回复 支持 反对

使用道具 举报

发表于 2013-5-16 20:51:47 | 显示全部楼层
那个安卓控制端的界面是编程后自动生成的吗?可以直接在电脑上测试这个安卓控制端吗?求回复啊 谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-5-31 22:41:32 | 显示全部楼层
zk0349 发表于 2013-5-16 20:51
那个安卓控制端的界面是编程后自动生成的吗?可以直接在电脑上测试这个安卓控制端吗?求回复啊 谢谢

是的,你编程设置界面后自动生成的。但是测试控制端还是要手机的,毕竟要wifi连接
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-23 00:07 , Processed in 1.086948 second(s), 19 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表