首页
版块
访问AI主站
登录
百度账号登录
Github账号登录
注册
发帖
goJhou
86帖子
·
3474回复
3458
积分
积分商城
450
获赞
Ta的动态
Ta的帖子
Ta的回复
人脸识别的发展难点在哪里?
Ta的回复 :声纹,也不错的
37
交互型灯光群控软件平台案例教程1.选材及交流尝试
Ta的回复 :第二期起我如果使用图文慢更新的方式= =你们会不会打我
35
在unity中使用UNTI 怎么解析百度AI返回
Ta的回复 :你w什么内容
21
在unity中使用UNTI 怎么解析百度AI返回
Ta的回复 :那你不是已经拿到回复了么
21
[语音技术]C#在win平台基于录音类试写打断
Ta的回复 :。。。。。。你这话我接不下去
40
原帖已删除
Ta的回复 :我们首先来构思一下系统的框架。 这个平台,基本上是由语音识别、UNIT为核心工作的。 所以我们的框架基本可以定成 [图片]
0
原帖已删除
Ta的回复 :在这一期,我们会将重点放在如何将与灯光之间的通信进行封装。 因为我工作中常用WPF应用程序进行开发,所以我在这手顺也新建了WPF。 但并没有用到很多WPF独有的功能,各位可以以一种学习思想的态度看待。 那因为当初我设计的程序,它是以无前端界面运行的程序,所以本程序并没什么卵用。 (本项目的WPF仅作为宿主,提供一个主线程来顺利请求所需服务。并没有真正的前端界面) 在封装之前,我将为各位介绍一个比较好用的功能。 因为WPF程序等其他应用程序不同于控制台应用程序,他不能很方便的查看变量的变化。 在WPF程序中,我们并没有命令提示符窗口,Console系列常用命令都无法使用。 那我们有什么办法去方便我们调试呢,答案是有的。 微软的kernel32.dll包含了这个命令提示符的相关操作。 那有人已经将这个程序集文件的主要功能开发了出来。 代码如下所示: [代码] 那基本上各位只需要用到show方法,hide方法就可以跟普通的控制台应用程序别无他样了。 demo: [图片]
0
原帖已删除
Ta的回复 :在Visual Studio 2017 版本之后,就可以不使用ConsoleManager了。能直接在输出中查看 [图片]
0
原帖已删除
Ta的回复 :好,言归正传。我们回到对Yeelight这类灯泡的对象构思上。 如果看过上一期的朋友应该还记得整个灯泡通信的过程。 首先我们需要对239.255.255.250:1982发送基于UDP协议的发现请求(Search Request), 之后他将会将局域网中所有的灯泡状态封包,以回应的方式回复回来(有一定几率会再接到一个状态更新包,只需覆盖掉原实体即可) 我们将要维护这一系列灯光对象。 要操作每个对象,我们都要与其单一对象进行基于TCP协议的控制请求。 所以,每个灯泡除了它自身的一些参数需要维护外,我们可能还需要维护一个socket。 那在我这个项目中,其实设备的上层还有一层地方层。这个地方层包含了我家的客厅、主卧室、次卧室三个地方。 有了地方层的限定,我可以限定多个对象内的符合要求的对象。(虽然我只有一个灯泡,但是想法有了)。 所以我们还有一个place的参数需要维护。 清楚了交互机制之后,我们接下去就开始对Yeelight的实体进行封装了!
0
原帖已删除
Ta的回复 :我的这个代码,并没有使用任何sql去维护设备的地址,纯粹的是在运行的那一刻搜索设备,并将对象都存在内存中。 所以我们要自定义一个搜索的方法。 在这个项目中,我将该方法封装在了一个我自己定义的弱鸡队列类库中了。(可能后续会讲到。、。也可能不讲这个弱鸡队列的设计) [图片] 我将这个类命名为FindDevices。如果以后接入了其他的基于网络协议的设备,我只需要在这添加即可。 在类中,我定义了一个静态类的静态方法,那就是搜索设备了。 [代码] 可以看到,我定义了一个YeelightFinder的类,调用了FindYeeLights方法。那接下去我们会将首次调用UDP进行SearchRequest的逻辑,封装在这个方法内
0
原帖已删除
Ta的回复 :[代码] 这是整个FindDevices的代码,有备注,各位看不懂请回复这层楼,我会解释
0
原帖已删除
Ta的回复 :[图片] 新增几个类库。用来维护接下去的列表和实体。 各位也可以不新增类库,纯粹都是我的坏习惯。。碰到点新玩意儿就想着 弄个新类库 List类: [代码] 就是一个很正常的全局设备列表对象。 Yeelight类中,我们先写一个外壳然后慢慢讲: [代码]
0
原帖已删除
Ta的回复 :哇,好累好累,还是录视频讲着舒服。。。。 上放class内写了一个构造函数。我们在类内继续补充。 [代码] 上方是私有变量。我们会在变量的上层再封装一层属性。 [代码] 上面2个比较简单,就不说了。 接下去我们可以分析一下Yeelight协议。他所有的控制指令都是以{id,method,params}这样的格式去控制的。那么我们可以考虑用一个方法来封装这种控制字符串的输出和发送的请求。我把逻辑合一起封装成了SendMessage方法。 [代码]
0
原帖已删除
Ta的回复 :然后我们就可以着眼开始写Yeelight那些控制型方法啦。我这里直接放出代码,然后对头几条进行备注解释。后面都是一样的写法。 [代码]
0
原帖已删除
Ta的回复 :那至此所有第二期的内容就码完啦。这里介绍了很多东西的。 有有利于调试的ConsoleManager。 有Socket基于UDP\TCP的两种发送方式。 有对于实物实体的封装思想。 有如何去维护实体的基本思想。 有体现集合与泛型、装箱与拆箱的暗操作在性能上的差异与取舍。 其实我的代码基础很差 我只是希望能传递一种封装的思想和系统框架结构设计的思想~ 希望我的代码能被在座读者们理解 希望这一期对各位有所启发,晚安~
0
【AI社区等级与积分激励】传递知识,赢取奖励
Ta的回复 :11月15日
2.8K
【百度AI有奖调研】只需3-5分钟做出你的选择!
Ta的回复 :跪求京东卡hhh
13
[语音技术]C#在win平台基于录音类试写打断
Ta的回复 :。。。。。,,,,不同寻常的用户 我发现你能接所有人的话 然后又能让所有人接不了你的话 你也蛮厉害的
40
浅谈,我为什么特别关注百度AI开放平台
Ta的回复 :。。。。。。。。
3.0K
原帖已删除
Ta的回复 :小伙子 你在我的心血帖里灌水灌成这样。。。不怕遭报应吗
0
1
...
7
8
9
10
11
...
167
切换版块
操作指南
常见问答
平台公告
经验交流
技术专区
文字识别
人脸识别
语音技术
PaddlePaddle
EasyDL
BML
EasyData
AI Studio
UNIT
人体分析
图像搜索
图像识别
内容审核
自然语言处理
机器人视觉
视频技术
增强现实
知识图谱
智能创作
智能呼叫中心
文心
EdgeBoard
DuerOS
EasyEdge
度目硬件
百度AI市场
Doris
AI赛事
百度之星大赛
AI Studio人工智能竞赛
语言与智能技术竞赛
千言数据集
集思广益
共享工具
头脑风暴
成果展示
智能客服