最近因为项目需要,开始做硬件项目。项目的大体流程就是现在手机上输入wifi名称和wifi密码,然后硬件就会根据你输入的东西就会自动的连上wifi,然后想服务器发送指令。连接上wifi之后可以根据需求对硬件进行操作,具体的操作方式就不在细说了。当时我的反应就是窝草?还有这种操作?这么牛逼?我怎么不知道还可以这么玩?
额,是不是感觉很高大上,很黑科技,很牛逼?然而事实上,你会感觉很蛋疼。下面细细道来这里面的坑
(1)首先这个技术呢,是用Ti的smartconfig,就是德州仪器出品的SmartConfig软件,硬件也是德州仪器的cc3200,网上百度一把,真哔哔哔的鬼,就是这么个东西
怎么变小点?具体的东西按照每家的需求是不太一样的,这个硬件的价格大概在300左右吧,现在想想看,感觉这么玩好像也不是太好,数据不是太安全,它的运行原理大致就是将你输入的wifi名称和密码按照一定的顺序插在wifi信号中,然后硬件解析出来这部分,根据解析出来的数据,连上WiFi,组建socket通道,具体的百度一搜一大把,我也不再细说了,浪费各位看官的时间。
(2)讲讲这个里面的坑吧
刚上手的时候甲方提供的demo运行不起来,sdk也有问题,就自己去ti的官网上下载一把,浪费了两天的时间,终于找到了相对应的sdk,因为是cc3200wifi模组,并不是完整的ti硬件,找起来有点困难,不过总算是能用了(在此提醒各位看官,一定要看好硬件再去下相对应的软件,要不然呵呵哒了,不要模棱两可!!!),运行一遍,没问题,成功率一般般吧,当时看完效果之后,从心里认为这个东西好像达不到客户的要求的成功率,连接wifi的成功率不到20%,成功回调的几率更是可怜的很。但是客户爸爸指定用这个,没办法硬着头皮上吧,花了好久的时间,废了九牛二虎之力,终于!!!!!失败了,官方给的demo比较哔哔(cao dan),连运行都是问题,没办法,只能把demo中所有的东西在扒一遍。这回好了,本想着能高高兴兴的去把妹了,结果却反过来给了你一巴掌,连接成功之后居然不回调!!!!!,上两张原谅色
SmartConfig这个是smartconfig的连接步骤,里面的listener并没有什么卵用,至少本项目暂时用不上
这是主要的这个里面是主要的回调,设备连接上wifi之后,会走这里的回调,传回来的json串是设备的mac地址和设备所在WiFi的ip地址,需要说明的是一旦这个回调走了之后一定要关闭smartconfgi,不然会一直发送信号,什么时候smartconfig被销毁,信号才会消失,这会导致一些其它的问题,比如说这个回调会被调用好几次,或者会获取到其它设备的mac地址。另外再次需要注意的是,这个回调是在子线程中回调的,在子线程,子线程,子线程!!!重要的事情说三遍,一开始你所有的不正常的认识都是在这里发生的,什么连接之后不回调啊,或者回调之后莫名其妙的挂掉,就是在这里发生的,官方的demo成功率不是非常高是因为它在这里做了几个判断,你集成到项目中的时候需要将判断去调,事实证明去调之后,10s之内的连接成功率在70%,1分钟之内的连接成功率在90%左右
(3)所有的所有都是建立在你的wifi环境很好,或者说是你的wifi连接数量很少,这样的成功率是非常高的,好了就说这么多,希望各位看官能够吸取我接入smartconfig的教训不要在走错路。好,打完收工,回家泡妹子去
网友评论