您现在的位置:首页 >> 装修问答

开发者作品▏智能家居系统开发实践,实现了 4 种控制方式为

发布时间:2025/09/25 12:16    来源:大丰家居装修网

+ 滑鼠左键,匹配到

匹配到这里:

简化后:

4.4.简化踏入App基本上浏览器弹出的相片,此处基本上浏览器为幽默感名曰的,过去我们换如此一来自己的相片

简化如此一来如下的相片:

把这个特所写复制到,如下的附录下:drawable附录下

按如下的必需简化:

简化如此一来我们就让的相片:

基本数据简化完如此一来后可以电子书到真机下看一下这个App的变化:

5.填所写App ID与App Secret时APP和幽默感名曰名曰后端适配

App ID与App Secret用法与起到

App ID:运用于标上码,当开发新者需为一款智能产品开发新运用于(包括iOS、Android、Web运用于等)时,在幽默感名曰开发新者中所创建人运用于的时候,除此以外可能会相应生如此一来一个AppID,并与此器材透过关联。运用于开发新时需抽出此AppID。在APP注册的所有浏览器适配在该Appid下。

App Secret:App ID的验证密钥。

如下图所示,为APPID在开发新APP过程中所的起到。

必需:

1.踏入幽默感名曰开发新者中所心,敞开开发新的概念设计,寻觅如下的数据

2.敞开Android sturio的APP->src-assets下的UIconfig.jsonPDF填所写资料如下:

此PDF参考说明: ... 8D%A2%E8%82%A4.html

备注:在这个PDF同样可以简化可选的肌肤:

概念如下:

buttonColor:按动紫色

buttonTextColor:按动书所写紫色

navigationBarColor:定位系统栏中紫色

navigationBarTextColor:定位系统栏中书所写紫色

configProgressViewColor:内置中所插件 progress view 紫色

先简化肤色为:

则互换的标上符为:

"buttonColor": "16B599","buttonTextColor": "FFFFFF","navigationBarColor": "16B599","navigationBarTextColor": "FFFFFF","configProgressViewColor": "000000",

请注意:这里的紫色值,字幕需大所写

6.UI插件编纂

因为这均具体内容来得多,所以并不需放在另一篇网站了:UI插件编纂

插件如下:

7.出发点整理及准备文书工作

各种GUI的适用匹配链接:

TextViewGUI适用: _36243942/article/details/82107426 ButtonGUI的适用: _36243942/article/details/82113312 ImageView的适用: _36243942/article/details/81783895 CheckBox的适用: _36243942/article/details/81744237 Toast的适用 _36243942/article/details/82622796

在透过操纵标上符编纂前先理确实一下出发点:

7.1. 我们所写的操纵标上符如何和ESP8266显卡联系一起?

在第5步的时候适配了App和名曰后端,幽默感名曰OpenBSD基本的SDK有一个难以实现应用程序。

SDK难以实现应用程序说明:

APP后端接收到MCU上交资料的难以实现应用程序:didReceiveData,辨别result为GizWifiErrorCode.GIZ_SDK_SUCCESS,则接收到的资料可能为基本上资料点或者扩张资料点。

那么我们只需在工程施工中所初始化这个难以实现应用程序formula_,就可以在幽默感名曰服务器提供我们工程施工相应的资料点。

所谓,幽默感名曰也提供了一个GizWifiDevice这个类,让我们能去操纵名曰后端资料点的资料,通过这个类的write()分析方法就可以操纵。

如果当我们所写好了ESP8266的标上符,并它刻录进开发新台湾版,透过医疗系统和名曰后端透过连接,ESP开发新台湾版就可能会根据名曰后端的资料去操纵开发新台湾版(当然这均标上符还是得我们自己来所写,幽默感名曰只是提供了资料操纵点)

7.2.在工程施工中所建立联系操纵资料点的名称

我们操纵一个器材也是通过辨别哪一个资料点来透过操纵的,因此我们设的资料点的名称需和工程施工资料点的名称互换:

看一下工程施工的资料点的标上名:

7.3.在工程施工中所建立联系复原资料的数组

既然我们能从名曰后端提供这些资料,那我们就需把这些资料复原一起,并存储在本地数组中所 。

7.4.建立联系一个ConcurrentHashMap的全局数组

用于存储报送的指示:

范例:

比如需使Red_OnOff 这个资料点变如此一来1,那么只需认真如下加载:

map=new ConcurrentHashMap<>();map.put(RED_OnOff,true);//初始化device的write分析方法device.write(map,0);

需使Red_OnOff 这个资料点变如此一来0,那么只需认真如下加载:

map=new ConcurrentHashMap<>();map.put(RED_OnOff,false);//初始化device的write分析方法device.write(map,0);7.5.**layoutPDF中所GUI的的数组

//**两个按动数组,分别是罢黜和侦测罢黜private Button btn_Reset;private Button btn_reset_det;

//**TextView主要是标示出一些长时间private TextView tv_RED; //标示出一楼灯具长时间的数组private TextView tv_GREEN; //标示出食厅灯具长时间的数组private TextView tv_BLUE; //标示出卧室灯具长时间的数组private TextView tv_indicate;//标示出后门长时间的数组private TextView tv_racall; //湿度标示出private TextView tv_hum; //湿度标示出private TextView tv_body; //消化系统红外线侦测private TextView tv_gas; //烟雾侦测private TextView tv_dettimes; //消化系统红外线放电次数

private CheckBox cb_01; //一楼灯具继电器的CheckBOxprivate CheckBox cb_02; //食厅灯具继电器的CheckBOxprivate CheckBox cb_03; //卧室灯具继电器的CheckBOx

private ImageButton iv_door_open; //后门开的IamgeButtonprivate ImageButton iv_door_close;//后门关的IamgeButton//记录消化系统红外线侦测的次数private static int detcton_times=0;

7.6.在initView分析方法中所提供所有GUI;也8.编纂操纵标上符

那就顺着UI插件一个大编纂吧。

8.1.编纂罢黜按动的标上符:

敞开GosDeviceControlActivity.java这个类,在initView中所为btn_Reset互换的按动适配**

8.2编纂红外线侦测罢黜按动的点击意外事件

8.3.编纂车头灯具LCD的点击意外事件(CheckBox)

也就是所如果指名所第一个CheckBox让Red_OnOff资料点替换如此一来低电平,否则替换如此一来低电平。

指名所第二CheckBox让Green_OnOff资料点替换如此一来低电平,否则替换如此一来低电平。

指名所第三个CheckBox让Blue_OnOff资料点替换如此一来低电平,否则替换如此一来低电平。

标上符如下,这均标上符同样所写在initView中所:

//车头灯具LCD的点击意外事件 cb_01.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) {if(cb_01.isChecked()) {map=new ConcurrentHashMap<>();map.put(RED_OnOff,true); device.write(map,0); tv_RED.setText("一楼灯具继电器:开"); }else {

map=new ConcurrentHashMap<>();map.put(RED_OnOff,false); device.write(map,0); tv_RED.setText("一楼灯具继电器:关"); }

} }); cb_02.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) {if(cb_02.isChecked()) {map=new ConcurrentHashMap<>();map.put(GREEN_OnOff,true); device.write(map,0); tv_GREEN.setText("食厅灯具继电器:开");

}else {map=new ConcurrentHashMap<>();map.put(GREEN_OnOff,false); device.write(map,0); tv_GREEN.setText("食厅灯具继电器:关"); }

} }); cb_03.setOnClickListener(new View.OnClickListener() { @Overridepublic void onClick(View view) {if(cb_03.isChecked()){//开蓝灯具指示map=new ConcurrentHashMap<>();map.put(BLUE_OnOff,true); device.write(map,0); tv_BLUE.setText("卧室灯具继电器:开"); }else {map=new ConcurrentHashMap<>();map.put(BLUE_OnOff,false); device.write(map,0); tv_BLUE.setText("卧室灯具继电器:关"); }

} })

8.4.编纂后门继电器LCD

这均相对于于在后来说是来得复杂的,因为当点击了绿色按动开门的时候是需回传攻击者的,在这里的加载是适用Intent匹配到另一个Activity,同时适用Intent传输资料,如果在另一个Activity回传正确的攻击者,那么就可能会回到原来这个Activity,并敞开后门,否则敞开后门,停止后门这个按动相对于简单一点,就并不需是发送一个停止的命令而已。

所以当我们在后门继电器点击了绿色按动就可能会匹配到LockActivity

也就是如下这个插件:

那么过去去LockActivity.java这个类去所写特别的操纵formula_了

8.5.LockActivity特别标上符

和上面一样,这个GUI有一个EditView,两个按动:具体,取消,还需适用一个数组来复原攻击者,基本上浏览器为"abc"

同样在initView提供GUI;也:

初始化EidtView的addTextChangedListener分析方法来复制到我们回传EditView回传的资料:

再一就是编纂确认按动(sure_button)和取消按动(cancle_button)的标上符了。

出发点:当在EditView回传攻击者时,上后端的具体内容可能会实时复原在mpassward这个数组中所,当按下确认按动,就去辨别这个mpassward这个数组中所前提复原有“open”这个表达式,如果有的话就返回上一级,并返回正确的结果,如果回传攻击者为空提示回传正确的攻击者,回传攻击者误判提示误判;按下取消按动并不需返回上一级,并返回失败!

在此段程中所更新UI,标上符如下:

仍要在initDevide()分析方法中所,设难以实现的**

自始,所有的逻辑操纵标上符并未编纂完如此一来。

8.8.自动化飞行测试

必需:

1.踏入幽默感名曰部落格,敞开你的概念设计,敞开虚拟器材

2.点击二维码

3.适用APP扫描

4.扫描后踏入

5.适用APP操纵看自动化结果

经过验证,我们所所写的操纵标上符并未能完如此一来我们的需求了,既能操纵工程施工名曰后端的资料点,又能把工程施工名曰后端的资料点推送到APP上。

武汉看妇科去什么医院好
上海看男科去哪家医院好
成都男科医院哪家好
沈阳白癜风医院哪里好
泰州白癜风专科医院哪好
润喉药
媒体资讯
婴儿口臭
紧急提醒:新冠“反扑”,中老年人或面临更高风险!
秋冬小儿化痰止咳的药哪个效果好

上一篇: PICK这些超好用的P图软件,轻松让你的录像A爆朋友圈!

下一篇: 人工智能系统里的不确定性量化

友情链接