old mode 100755
new mode 100644
 |  |  | 
 |  |  | 17=请选择模式 | 
 |  |  | 18=未命名 | 
 |  |  | 19=模式类型 | 
 |  |  | 20=绑定设备 | 
 |  |  | 21=绑定场景 | 
 |  |  | 22=保存 | 
 |  |  | 23=移除成功 | 
 |  |  | 24=移除失败 | 
 |  |  | 25=模式配置失败 | 
 |  |  | 26=请先配置按键模式 | 
 |  |  | 28=删除 | 
 |  |  | 29=模式设置失败 | 
 |  |  | 30=失败,节点设备或场景不存在 | 
 |  |  | 31=绑定已经存在 | 
 |  |  | 32=绑定失败 | 
 |  |  | 33=失败,控制设备的绑定列表已满 | 
 |  |  | 20=绑定设备
 | 
 |  |  | 21=绑定场景
 | 
 |  |  | 22=保存
 | 
 |  |  | 23=移除成功
 | 
 |  |  | 24=移除失败
 | 
 |  |  | 25=模式配置失败
 | 
 |  |  | 26=请先配置按键模式
 | 
 |  |  | 28=删除
 | 
 |  |  | 29=模式设置失败
 | 
 |  |  | 30=失败,节点设备或场景不存在
 | 
 |  |  | 31=绑定已经存在
 | 
 |  |  | 32=绑定失败
 | 
 |  |  | 33=失败,控制设备的绑定列表已满
 | 
 |  |  | 34=获取数据失败,请检查设备是否在线 | 
 |  |  | 35=当前已经存在场景,确定要替换吗? | 
 |  |  | 36=切换场景失败,请检查设备是否在线 | 
 |  |  | 37=该按键已经存在场景,请删除当前场景后再重新绑定 | 
 |  |  | 38=按键中已存在设备,请删除当前被绑定的设备后才能添加场景。 (点确定按钮前往场景编辑,将当前的绑定设备添加到场景中) | 
 |  |  | 35=当前已经存在场景,确定要替换吗?
 | 
 |  |  | 36=切换场景失败,请检查设备是否在线
 | 
 |  |  | 37=该按键已经存在场景,请删除当前场景后再重新绑定
 | 
 |  |  | 38=按键中已存在设备,请删除当前被绑定的设备后才能添加场景。 (点确定按钮前往场景编辑,将当前的绑定设备添加到场景中)
 | 
 |  |  | 39=该绑定已经存在 | 
 |  |  | 40=当前按键没有支持的模式 | 
 |  |  | 41=场景触发 | 
 |  |  | 
 |  |  | 200= 修改临时密码信息前 | 
 |  |  | 201=请点击右上角“清除密码” | 
 |  |  | 202=一楼 | 
 |  |  | 203=网关回复超时 | 
 |  |  | 203=网关回复超时
 | 
 |  |  | 204=云服务器回复时 | 
 |  |  | 205=确定要将该账户冻结? | 
 |  |  | 206=冻结失败 | 
 |  |  | 
 |  |  | 5406=夜灯开关 | 
 |  |  | 5407=色温 | 
 |  |  | 5408=蜂鸣器 | 
 |  |  | 5409=环境光照度 | 
 |  |  | 5410=照度值< | 
 |  |  | 5411=暗{\r\n} 0lux | 
 |  |  | 5412=亮{\r\n} 100lux | 
 |  |  | 5413=在室内条件下,黑暗照度值约为0.02lux,黄昏照度值{\r\n}约为10lux,阴天照度值约为5~50lux,请根据实际{\r\n}需要进行调节 | 
 |  |  | 5414=可视对讲 | 
 |  |  | 5415=栋 | 
 |  |  | 5416=单元 | 
 |  |  | 5417=室外机 | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | 10000=HDL Home | 
 |  |  | 
 |  |  | 15224=编辑备份 | 
 |  |  | 15225=备注 | 
 |  |  | 15226=请输入备份名称 | 
 |  |  | 15227=恢复文件成功 | 
 |  |  | 15227=恢复文件成功
 | 
 |  |  | 15246=报警目标设置 | 
 |  |  | 15247=当该防区报警时,以下目标将会响应 | 
 |  |  | 15248=推送通知 | 
 |  |  | 
 |  |  | 15873=拍照 | 
 |  |  | 15874=从相册中选择 | 
 |  |  | 15875=抱歉,程序出现错误 | 
 |  |  | 15876=请输入手势a | 
 |  |  | 15876=请输入手势 | 
 |  |  | 15877=请再次输入手势 | 
 |  |  | 15878=更改手势,请输入手势 | 
 |  |  | 15879=确认手势错误,请重新设置 | 
 |  |  | 
 |  |  | 16132=蜂鸣器开关 | 
 |  |  | 16133=小夜灯开关 | 
 |  |  | 16134=设置设备功能类型失败 | 
 |  |  | 16135=获取场景列表失败,网关回复超时 | 
 |  |  | 16136=需重新绑定 | 
 |  |  | 16137=出现意外情况,数据丢失 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★ | 
 |  |  | 18004=指定网关已经被绑定 | 
 |  |  | 18005=用户不存在于此住宅 | 
 |  |  | 18006=账号已经存在于此住宅 | 
 |  |  | 18009=操作权限不足 | 
 |  |  | 18010=被绑定的子账号不存在,请注册后再试 | 
 |  |  | 18011=操作的子账号不存在 | 
 |  |  | 18012=解除绑定的子账号不存在 | 
 |  |  | 18013=验证码发送失败 | 
 |  |  | 18015=账号已经存在 | 
 |  |  | 18016=验证码错误 | 
 |  |  | 18017=验证码已失效 | 
 |  |  | 18018=绑定的账号不存在 | 
 |  |  | 18019=指定账号已存在 | 
 |  |  | 18022=验证码发送失败 | 
 |  |  | 18024=指定账号不存在 | 
 |  |  | 18025=原密码和新密码相同 | 
 |  |  | 18026=原密码错误 | 
 |  |  | 18034=账号未注册 | 
 |  |  | 18035=请求参数错误 | 
 |  |  | 18036=无效的登录密匙 | 
 |  |  | 18039=当前编辑的住宅名称已经存在 | 
 |  |  | 18040=当前添加的住宅名称已经存在 | 
 |  |  | 18041=指定的住宅不存在 | 
 |  |  | 18042=当前备份不属于您当前的住宅 | 
 |  |  | 18043=备注名称已经存在,请更换后重试! | 
 |  |  | 18044=指定的网关ID并不存在 | 
 |  |  | 18045=当前住宅下并没有绑定指定的网关 | 
 |  |  | 18046=当前住宅还存在着未解除绑定的网关 | 
 |  |  | 18047=共享数据不存在 | 
 |  |  | 18048=分享的目标账号不存在 | 
 |  |  | 18049=分享数据操作失败 | 
 |  |  | 18050=不能把自己添加为成员 | 
 |  |  | 18051=不能把主账号添加为成员 | 
 |  |  |  | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是设备的入网步骤,从21000开始★★★★ | 
 |  |  | ;智能门锁入网操作指示 | 
 |  |  | 21000=唤醒门锁,输入“*”、“#”、“管理员密码”{0}按语音提示,输入“4”选择功能菜单{0}输入“1”,确认设备入网 | 
 |  |  | ;3路继电器入网操作指示 | 
 |  |  | 21001=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功 | 
 |  |  | ;1路调光器小模块入网操作指示 | 
 |  |  | 21002=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功 | 
 |  |  | ;二按键面板入网操作指示 | 
 |  |  | 21003=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功 | 
 |  |  | ;三按键面板入网操作指示 | 
 |  |  | 21004=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功 | 
 |  |  | ;四按键面板入网操作指示 | 
 |  |  | 21005=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功 | 
 |  |  | ;Zigbee智能开合帘电机入网操作指示 | 
 |  |  | 21006=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功 | 
 |  |  | ;Zigbee智能管状电机入网操作指示 | 
 |  |  | 21007=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功 | 
 |  |  | ;红外传感器入网操作指示 | 
 |  |  | 21008=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功 | 
 |  |  | ;门窗传感器入网操作指示 | 
 |  |  | 21009=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功 | 
 |  |  | ;燃气传感器入网操作指示 | 
 |  |  | 21010=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功 | 
 |  |  | ;烟雾传感器入网操作指示 | 
 |  |  | 21011=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功 | 
 |  |  | ;水浸传感器入网操作指示 | 
 |  |  | 21012=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功 | 
 |  |  | ;空气开关入网操作指示 | 
 |  |  | 21013=按键从工作模式拨到配对模式,5秒后红灯{0}慢闪烁时拨回工作模式,{0}进入配网模式,红灯常亮则配网成功 | 
 |  |  | ;中继器入网操作指示 | 
 |  |  | 21014=长按图示按键5秒以上,指示灯变绿闪烁{0}进入配网状态,绿灯熄灭则入网成功 | 
 |  |  | ;空调入网操作指示 | 
 |  |  | 21015=长按编程按键5秒,DATA绿色LED闪烁,{0}频率为亮0.5秒,灭0.5秒 | 
 |  |  | ;pir传感器入网操作指示 | 
 |  |  | 21016=长按图示按键5秒以上,指示灯变绿、{0}闪烁进入配网状态。绿灯熄灭则配网成功 | 
 |  |  | ;温湿度传感器入网操作指示 | 
 |  |  | 21017=长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。图标常亮则配网成功 | 
 |  |  | ;方悦2按键轻触式面板入网操作指示 | 
 |  |  | 21018=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态 | 
 |  |  | ;方悦4按键轻触式面板入网操作指示 | 
 |  |  | 21019=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态 | 
 |  |  | ;方悦8按键轻触式面板入网操作指示 | 
 |  |  | 21020=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态 | 
 |  |  | ;方悦环境面板入网操作指示 | 
 |  |  | 21021=按住面板功能(function)按键,所有按键{0}指示灯亮起,则配网成功 | 
 |  |  | ;窗帘面板的入网操作指示 | 
 |  |  | 21022=长按面板左上角按键,所有按键{0}指示灯亮起,则配网成功 | 
 |  |  | ;吸顶燃气传感器的入网操作指示 | 
 |  |  | 21023=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是模块ID的官方名字,从30000开始★★★★ | 
 |  |  | 30000=紧急按钮 | 
 |  |  | 30001=燃气传感器 | 
 |  |  | ;★★★★下面这些是接口的返回信息翻译,从18000开始★★★★
 | 
 |  |  | 18004=指定网关已经被绑定
 | 
 |  |  | 18005=用户不存在于此住宅
 | 
 |  |  | 18006=账号已经存在于此住宅
 | 
 |  |  | 18009=操作权限不足
 | 
 |  |  | 18010=被绑定的子账号不存在,请注册后再试
 | 
 |  |  | 18011=操作的子账号不存在
 | 
 |  |  | 18012=解除绑定的子账号不存在
 | 
 |  |  | 18013=验证码发送失败
 | 
 |  |  | 18015=账号已经存在
 | 
 |  |  | 18016=验证码错误
 | 
 |  |  | 18017=验证码已失效
 | 
 |  |  | 18018=绑定的账号不存在
 | 
 |  |  | 18019=指定账号已存在
 | 
 |  |  | 18022=验证码发送失败
 | 
 |  |  | 18024=指定账号不存在
 | 
 |  |  | 18025=原密码和新密码相同
 | 
 |  |  | 18026=原密码错误
 | 
 |  |  | 18034=账号未注册
 | 
 |  |  | 18035=请求参数错误
 | 
 |  |  | 18036=无效的登录密匙
 | 
 |  |  | 18039=当前编辑的住宅名称已经存在
 | 
 |  |  | 18040=当前添加的住宅名称已经存在
 | 
 |  |  | 18041=指定的住宅不存在
 | 
 |  |  | 18042=当前备份不属于您当前的住宅
 | 
 |  |  | 18043=备注名称已经存在,请更换后重试!
 | 
 |  |  | 18044=指定的网关ID并不存在
 | 
 |  |  | 18045=当前住宅下并没有绑定指定的网关
 | 
 |  |  | 18046=当前住宅还存在着未解除绑定的网关
 | 
 |  |  | 18047=共享数据不存在
 | 
 |  |  | 18048=分享的目标账号不存在
 | 
 |  |  | 18049=分享数据操作失败
 | 
 |  |  | 18050=不能把自己添加为成员
 | 
 |  |  | 18051=不能把主账号添加为成员
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | ;★★★★下面这些是设备的入网步骤,从21000开始★★★★
 | 
 |  |  | ;智能门锁入网操作指示
 | 
 |  |  | 21000=唤醒门锁,输入“*”、“#”、“管理员密码”{0}按语音提示,输入“4”选择功能菜单{0}输入“1”,确认设备入网
 | 
 |  |  | ;3路继电器入网操作指示
 | 
 |  |  | 21001=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功
 | 
 |  |  | ;1路调光器小模块入网操作指示
 | 
 |  |  | 21002=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功
 | 
 |  |  | ;二按键面板入网操作指示
 | 
 |  |  | 21003=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
 | 
 |  |  | ;三按键面板入网操作指示
 | 
 |  |  | 21004=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
 | 
 |  |  | ;四按键面板入网操作指示
 | 
 |  |  | 21005=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯快闪3秒则配网成功
 | 
 |  |  | ;Zigbee智能开合帘电机入网操作指示
 | 
 |  |  | 21006=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功
 | 
 |  |  | ;Zigbee智能管状电机入网操作指示
 | 
 |  |  | 21007=长按图示按键5秒以上,指示灯{0}变绿闪烁,则进入配网状态{0}绿灯熄灭则配网成功
 | 
 |  |  | ;红外传感器入网操作指示
 | 
 |  |  | 21008=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
 | 
 |  |  | ;门窗传感器入网操作指示
 | 
 |  |  | 21009=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
 | 
 |  |  | ;燃气传感器入网操作指示
 | 
 |  |  | 21010=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
 | 
 |  |  | ;烟雾传感器入网操作指示
 | 
 |  |  | 21011=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
 | 
 |  |  | ;水浸传感器入网操作指示
 | 
 |  |  | 21012=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
 | 
 |  |  | ;空气开关入网操作指示
 | 
 |  |  | 21013=按键从工作模式拨到配对模式,5秒后红灯{0}慢闪烁时拨回工作模式,{0}进入配网模式,红灯常亮则配网成功
 | 
 |  |  | ;中继器入网操作指示
 | 
 |  |  | 21014=长按图示按键5秒以上,指示灯变绿闪烁{0}进入配网状态,绿灯熄灭则入网成功
 | 
 |  |  | ;空调入网操作指示
 | 
 |  |  | 21015=长按编程按键5秒,DATA绿色LED闪烁,{0}频率为亮0.5秒,灭0.5秒
 | 
 |  |  | ;pir传感器入网操作指示
 | 
 |  |  | 21016=长按图示按键5秒以上,指示灯变绿、{0}闪烁进入配网状态。绿灯熄灭则配网成功
 | 
 |  |  | ;温湿度传感器入网操作指示
 | 
 |  |  | 21017=长按图示按键5秒以上,信号图标{0}快闪, 进入配网状态。图标常亮则配网成功
 | 
 |  |  | ;方悦2按键轻触式面板入网操作指示
 | 
 |  |  | 21018=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
 | 
 |  |  | ;方悦4按键轻触式面板入网操作指示
 | 
 |  |  | 21019=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
 | 
 |  |  | ;方悦8按键轻触式面板入网操作指示
 | 
 |  |  | 21020=长按BUTTON1按键5秒,所有指示灯{0}变为绿色并闪烁,进入配网状态
 | 
 |  |  | ;方悦环境面板入网操作指示
 | 
 |  |  | 21021=按住面板功能(function)按键,所有按键{0}指示灯亮起,则配网成功
 | 
 |  |  | ;窗帘面板的入网操作指示
 | 
 |  |  | 21022=长按面板左上角按键,所有按键{0}指示灯亮起,则配网成功
 | 
 |  |  | ;吸顶燃气传感器的入网操作指示
 | 
 |  |  | 21023=长按图示按键5秒以上,绿色快闪{0}进入配网状态,绿灯常亮则入网成功
 | 
 |  |  | ;球型移动传感器的入网操作指示
 | 
 |  |  | 21024=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态,绿灯熄灭则配网成功
 | 
 |  |  | 
 | 
 |  |  | ;★★★★下面这些是模块ID的官方名字,从30000开始★★★★
 | 
 |  |  | 30000=紧急按钮
 | 
 |  |  | 30001=燃气传感器
 | 
 |  |  | 30002=烟雾传感器 | 
 |  |  | 30003=水侵传感器 | 
 |  |  | 30004=钥匙扣 | 
 |  |  | 
 |  |  | 30042=简约环境面板 | 
 |  |  | 30043=Mini网关 | 
 |  |  | 30044=色温灯 | 
 |  |  | 30045=ZigBee球型移动传感器 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是设备所属种类的翻译名字,从40000开始★★★★ | 
 |  |  | 40000=遮阳 | 
 |  |  | 
 |  |  | 40018=新风 | 
 |  |  | 40019=空气质量 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★ | 
 |  |  | 50000=紧急按钮 | 
 |  |  | 50001=Zigbee燃气传感器 | 
 |  |  | ;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★
 | 
 |  |  | 50000=紧急按钮
 | 
 |  |  | 50001=Zigbee燃气传感器
 | 
 |  |  | 50002=Zigbee烟雾传感器 | 
 |  |  | 50003=Zigbee水浸传感器 | 
 |  |  | 50004=钥匙扣 | 
 |  |  | 
 |  |  | 50042=简约环境面板 | 
 |  |  | 50043=Mini网关 | 
 |  |  | 50044=色温灯 | 
 |  |  | 50045=球型移动传感器 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是模块ID的设备类型名字,从60000开始.注:它并不需要再R.cs文件中定义★★★★ | 
 |  |  | ;★★★★下面这些是模块ID的设备类型名字,从60000开始.注:它并不需要再R.cs文件中定义★★★★
 | 
 |  |  | 60000=传感器 | 
 |  |  | 60001=开关模块 | 
 |  |  | 60002=遮阳模块 | 
 |  |  | 
 |  |  | 70025=吸顶燃气传感器 | 
 |  |  | 70026=PM2.5空气质量传感器 | 
 |  |  | 70027=简约多功能面板 | 
 |  |  | 70028=简约环境面板 | 
 |  |  | 70028=简约环境面板 | 
 |  |  | 70029=球型移动传感器 | 
 
 |  |  | 
 |  |  |     <MandroidI18n>CJK</MandroidI18n>
 | 
 |  |  |     <AndroidTlsProvider>btls</AndroidTlsProvider>
 | 
 |  |  |     <AndroidEnableSGenConcurrent>true</AndroidEnableSGenConcurrent>
 | 
 |  |  |     <AndroidSupportedAbis>arm64-v8a;armeabi-v7a;x86;x86_64</AndroidSupportedAbis>
 | 
 |  |  |     <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk>
 | 
 |  |  |     <AndroidSupportedAbis />
 | 
 |  |  |     <AndroidDexTool>d8</AndroidDexTool>
 | 
 |  |  |     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
 | 
 |  |  |     <AndroidKeyStore>True</AndroidKeyStore>
 | 
 |  |  |     <AndroidSigningKeyStore>/Users/hdl/Desktop/Keystore/HDL Home/HDL Home.keystore</AndroidSigningKeyStore>
 | 
 |  |  |     <AndroidUseSharedRuntime>true</AndroidUseSharedRuntime>
 | 
 |  |  |     <AndroidSigningKeyStore>/Users/hdl/Desktop/Keystore/HDL\ Home/HDL\ Home.keystore</AndroidSigningKeyStore>
 | 
 |  |  |   </PropertyGroup>
 | 
 |  |  |   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
 | 
 |  |  |     <DebugSymbols>true</DebugSymbols>
 | 
 |  |  | 
 |  |  |     <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow>
 | 
 |  |  |     <AndroidDexTool>d8</AndroidDexTool>
 | 
 |  |  |     <AndroidUseAapt2>false</AndroidUseAapt2>
 | 
 |  |  |     <AndroidKeyStore>True</AndroidKeyStore>
 | 
 |  |  |     <AndroidSigningKeyStore>/Users/hdl/Desktop/Keystore/HDL Home/HDL Home.keystore</AndroidSigningKeyStore>
 | 
 |  |  |   </PropertyGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <Reference Include="BouncyCastle.Crypto, Version=1.8.1.0, Culture=neutral, PublicKeyToken=0e99375e54769942">
 | 
 |  |  | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Safeguard\ProtectionRemoveHomeSelected.png" />
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Safeguard\WithdrawGarrison.png" />
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Safeguard\WithdrawGarrisonSelected.png" />
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\SynchronizationSelected.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\InputAccountIcon.png" />
 | 
 |  |  | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\BindPic\Switch.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\ZigeeLogic\addLuminosity.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\ZigeeLogic\lesLuminositys.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\ZigeeLogic\selectedsensor541.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\ZigeeLogic\sensor541.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\ZigeeLogic\tipIcon.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Device\SensorSphericalMotion.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Device\SensorSphericalMotionSelected.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Device\SensorSphericalMotionSelected2.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Instruct\SensorSphericalMotion.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\RealDevice\SensorSphericalMotion.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\Battery.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\BatterySelected.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\videoIntercom.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\videoIntercomNext.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <ItemGroup>
 | 
 |  |  |     <AndroidAsset Include="Assets\Phone\Item\SynchronizationSelected.png" />
 | 
 |  |  |   </ItemGroup>
 | 
 |  |  |   <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" />
 | 
 |  |  |   <Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
 | 
 |  |  |   <Import Project="..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Annotations.26.0.2\build\MonoAndroid80\Xamarin.Android.Support.Annotations.targets')" />
 | 
 |  |  | 
 |  |  |   <Import Project="..\packages\Xamarin.Android.Support.Fragment.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets" Condition="Exists('..\packages\Xamarin.Android.Support.Fragment.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.Fragment.targets')" />
 | 
 |  |  |   <Import Project="..\packages\Xamarin.Android.Support.v4.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.v4.targets" Condition="Exists('..\packages\Xamarin.Android.Support.v4.25.4.0.1\build\MonoAndroid70\Xamarin.Android.Support.v4.targets')" />
 | 
 |  |  |   <Import Project="..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets" Condition="Exists('..\packages\NETStandard.Library.2.0.0\build\netstandard2.0\NETStandard.Library.targets')" />
 | 
 |  |  | </Project>
 | 
 |  |  | </Project> | 
 
 |  |  | 
 |  |  | <?xml version="1.0" encoding="utf-8"?> | 
 |  |  | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="0120071301" android:installLocation="auto" android:versionName="1.1.0120071301"> | 
 |  |  | <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hdl.home" android:versionCode="0120072004" android:installLocation="auto" android:versionName="1.1.0120072004"> | 
 |  |  |     <uses-sdk android:minSdkVersion="23" android:targetSdkVersion="26" /> | 
 |  |  |     <permission android:name="com.hdl.home.permission.JPUSH_MESSAGE" android:protectionLevel="signature" /> | 
 |  |  |     <uses-permission android:name="android.permission.WAKE_LOCK" /> | 
 
 |  |  | 
 |  |  |         <MtouchArch>x86_64</MtouchArch> | 
 |  |  |         <MtouchLink>None</MtouchLink> | 
 |  |  |         <MtouchDebug>true</MtouchDebug> | 
 |  |  |         <CodesignProvision>Home_Dev2</CodesignProvision> | 
 |  |  |         <CodesignKey>iPhone Developer</CodesignKey> | 
 |  |  |     </PropertyGroup> | 
 |  |  |     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' "> | 
 |  |  |         <DebugType>none</DebugType> | 
 |  |  | 
 |  |  |         <MtouchDebug>true</MtouchDebug> | 
 |  |  |         <MtouchExtraArgs>-gcc_flags -dead_strip</MtouchExtraArgs> | 
 |  |  |         <MtouchI18n>cjk</MtouchI18n> | 
 |  |  | <CodesignProvision>Home_Dev</CodesignProvision> | 
 |  |  |     </PropertyGroup> | 
 |  |  |     <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhone' "> | 
 |  |  |         <DebugType>none</DebugType> | 
 |  |  | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\timeparagraph.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\light.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor44.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\selectedsensor541.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\back1.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\selectedpanel.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\ZigeeLogic\nofunction.png" /> | 
 |  |  | 
 |  |  |       <BundleResource Include="Resources\Phone\Gateway\WiredGateway.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\Gateway\WirelessGateway.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\Gateway\AddGatewaySuccess.png" /> | 
 |  |  |       <BundleResource Include="Resources\Phone\Item\SynchronizationSelected.png" /> | 
 |  |  |     </ItemGroup> | 
 |  |  |     <Import Project="..\Shared\Shared.projitems" Label="Shared" Condition="Exists('..\Shared\Shared.projitems')" /> | 
 |  |  |     <Import Project="$(MSBuildExtensionsPath)\Xamarin\iOS\Xamarin.iOS.CSharp.targets" /> | 
 |  |  | </Project> | 
 |  |  | </Project> | 
 
 |  |  | 
 |  |  |     <key>LSRequiresIPhoneOS</key> | 
 |  |  |     <true/> | 
 |  |  |     <key>MinimumOSVersion</key> | 
 |  |  |     <string>11.0</string> | 
 |  |  |     <string>9.0</string> | 
 |  |  |     <key>UIDeviceFamily</key> | 
 |  |  |     <array> | 
 |  |  |         <integer>1</integer> | 
 
 |  |  | 
 |  |  | 17=请选择模式 | 
 |  |  | 18=未命名 | 
 |  |  | 19=模式类型 | 
 |  |  | 20=绑定设备 | 
 |  |  | 21=绑定场景 | 
 |  |  | 22=保存 | 
 |  |  | 23=移除成功 | 
 |  |  | 24=移除失败 | 
 |  |  | 25=模式配置失败 | 
 |  |  | 26=请先配置按键模式 | 
 |  |  | 28=删除 | 
 |  |  | 29=模式设置失败 | 
 |  |  | 30=失败,节点设备或场景不存在 | 
 |  |  | 31=绑定已经存在 | 
 |  |  | 32=绑定失败 | 
 |  |  | 33=失败,控制设备的绑定列表已满 | 
 |  |  | 20=绑定设备
 | 
 |  |  | 21=绑定场景
 | 
 |  |  | 22=保存
 | 
 |  |  | 23=移除成功
 | 
 |  |  | 24=移除失败
 | 
 |  |  | 25=模式配置失败
 | 
 |  |  | 26=请先配置按键模式
 | 
 |  |  | 28=删除
 | 
 |  |  | 29=模式设置失败
 | 
 |  |  | 30=失败,节点设备或场景不存在
 | 
 |  |  | 31=绑定已经存在
 | 
 |  |  | 32=绑定失败
 | 
 |  |  | 33=失败,控制设备的绑定列表已满
 | 
 |  |  | 34=获取数据失败,请检查设备是否在线 | 
 |  |  | 35=当前已经存在场景,确定要替换吗? | 
 |  |  | 36=切换场景失败,请检查设备是否在线 | 
 |  |  | 37=该按键已经存在场景,请删除当前场景后再重新绑定 | 
 |  |  | 38=按键中已存在设备,请删除当前被绑定的设备后才能添加场景。 (点确定按钮前往场景编辑,将当前的绑定设备添加到场景中) | 
 |  |  | 35=当前已经存在场景,确定要替换吗?
 | 
 |  |  | 36=切换场景失败,请检查设备是否在线
 | 
 |  |  | 37=该按键已经存在场景,请删除当前场景后再重新绑定
 | 
 |  |  | 38=按键中已存在设备,请删除当前被绑定的设备后才能添加场景。 (点确定按钮前往场景编辑,将当前的绑定设备添加到场景中)
 | 
 |  |  | 39=该绑定已经存在 | 
 |  |  | 40=当前按键没有支持的模式 | 
 |  |  | 41=场景触发 | 
 |  |  | 
 |  |  | 200= 修改临时密码信息前 | 
 |  |  | 201=请点击右上角“清除密码” | 
 |  |  | 202=一楼 | 
 |  |  | 203=网关回复超时 | 
 |  |  | 203=网关回复超时
 | 
 |  |  | 204=云服务器回复时 | 
 |  |  | 205=确定要将该账户冻结? | 
 |  |  | 206=冻结失败 | 
 |  |  | 
 |  |  | 231=接近感应 | 
 |  |  | 232=接近感应功能设置置失败 | 
 |  |  | 233=获取接近感应功能失败 | 
 |  |  | 235=按住面板模式按键5秒,绿色指示灯闪烁{0}进入配网状态;闪烁停止{0}指示灯变白色表示配网成功 | 
 |  |  | 235=按住面板模式按键5秒,绿色指示灯闪烁{0}进入配网状态;闪烁停止{0}指示灯变白色表示配网成功  | 
 |  |  | 236=绿色指示灯闪烁 | 
 |  |  | 237=指示灯 | 
 |  |  | 238=长按5秒(按键) | 
 |  |  | 239=长按图示按键5秒以上,指示灯变绿、闪烁{0}进入配网状态。绿灯熄灭则配网成功 | 
 |  |  | 241=设置常开模式后,您的门锁将始终{0}处于打开状态,确认开启? | 
 |  |  | 241=设置常开模式后,您的门锁将始终{0}处于打开状态,确认开启?  | 
 |  |  | 242=电量 | 
 |  |  | 243=常开模式已开启 | 
 |  |  | 244=失效设置 | 
 |  |  | 
 |  |  | 259=失效时间不合法,请重写设置 | 
 |  |  | 260=音量设置失败 | 
 |  |  | 261=音量设置成功 | 
 |  |  | 262=当前时区 | 
 |  |  | 262=当前时区  | 
 |  |  | 263=区 | 
 |  |  | 264=东 | 
 |  |  | 265=西 | 
 |  |  | 265=西  | 
 |  |  | 266=当前设备不在线 | 
 |  |  | 267=获取音量失败 | 
 |  |  | 268=确定取消该成员的远程开锁权限 | 
 |  |  | 
 |  |  | 319=轻度污染 | 
 |  |  | 320=中度污染 | 
 |  |  | 321=重度污染 | 
 |  |  | 322=严重污染 | 
 |  |  | 322=严重污染  | 
 |  |  | 323=自动化关闭【门锁常开模式】,门锁已关 | 
 |  |  | 324=入网 | 
 |  |  | ;注意“入网”的英文“Connection",因为屏幕上是这样显示的 | 
 |  |  | 
 |  |  | 5390=失效设置 | 
 |  |  | 5391=小时 | 
 |  |  | 5392=门锁始终打开 | 
 |  |  | 5393=设置常开模式后,您的门锁将始终{0}处于打开状态,确认开启? | 
 |  |  | 5393=设置常开模式后,您的门锁将始终{0}处于打开状态,确认开启?  | 
 |  |  | 5394=不能小于1小时 | 
 |  |  | 5395=大于12小时 | 
 |  |  | 5396=或 | 
 |  |  | 
 |  |  | 15224=编辑备份 | 
 |  |  | 15225=备注 | 
 |  |  | 15226=请输入备份名称 | 
 |  |  | 15227=恢复文件成功 | 
 |  |  | 15227=恢复文件成功
 | 
 |  |  | 15246=报警目标设置 | 
 |  |  | 15247=当该防区报警时,以下目标将会响应 | 
 |  |  | 15248=推送通知 | 
 |  |  | 
 |  |  | 40018=新风 | 
 |  |  | 40019=空气质量 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★ | 
 |  |  | 50000=紧急按钮 | 
 |  |  | 50001=Zigbee燃气传感器 | 
 |  |  | ;★★★★下面这些是模块ID的设备默认备注名字,从50000开始.注:它并不需要再R.cs文件中定义★★★★
 | 
 |  |  | 50000=紧急按钮
 | 
 |  |  | 50001=Zigbee燃气传感器
 | 
 |  |  | 50002=Zigbee烟雾传感器 | 
 |  |  | 50003=Zigbee水浸传感器 | 
 |  |  | 50004=钥匙扣 | 
 |  |  | 
 |  |  | 50044=色温灯 | 
 |  |  | 50045=球型移动传感器 | 
 |  |  |  | 
 |  |  | ;★★★★下面这些是模块ID的设备类型名字,从60000开始.注:它并不需要再R.cs文件中定义★★★★ | 
 |  |  | ;★★★★下面这些是模块ID的设备类型名字,从60000开始.注:它并不需要再R.cs文件中定义★★★★
 | 
 |  |  | 60000=传感器 | 
 |  |  | 60001=开关模块 | 
 |  |  | 60002=遮阳模块 | 
 |  |  | 
 |  |  | 70026=PM2.5空气质量传感器 | 
 |  |  | 70027=简约多功能面板 | 
 |  |  | 70028=简约环境面板 | 
 |  |  | 70029=球型移动传感器 | 
 |  |  | 70029=球型移动传感器 | 
 
 |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 版本号 | 
 |  |  |         /// </summary> | 
 |  |  |         public static string CodeIDString = "1.1.0120071301"; | 
 |  |  |         public static string CodeIDString = "1.1.0120072004"; | 
 |  |  |         /// <summary> | 
 |  |  |         /// 注册来源(0:HDL On 1:Zigbee) | 
 |  |  |         /// </summary> | 
 
old mode 100644
new mode 100755
 |  |  | 
 |  |  |             {
 | 
 |  |  |                 CommonDevice device = null;
 | 
 |  |  |                 //反序列化为指定的类,不然数据会丢失而导致无法强转
 | 
 |  |  |                 try | 
 |  |  |                 try  | 
 |  |  |                 {
 | 
 |  |  |                     device = CommonDevice.CommonDeviceByFilePath(file);
 | 
 |  |  |                 }
 | 
 |  |  | 
 |  |  |                 //添加缓存
 | 
 |  |  |                 this.AddDeviceToMemory(ref device);
 | 
 |  |  | 
 | 
 |  |  |                 //移除存在的设备内存
 | 
 |  |  |                 //移除存在的设备内存  | 
 |  |  |                 string maikey = this.GetDeviceMainKeys(device);
 | 
 |  |  |                 if (dicExist.ContainsKey(maikey) == true)
 | 
 |  |  |                 {
 | 
 |  |  | 
 |  |  |                 this.SaveRealDeviceRoomId(null, null);
 | 
 |  |  |             }
 | 
 |  |  |             return true;
 | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 删除缓存的一般设备
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |                 }
 | 
 |  |  |                 this.dicOTADevice.Remove(otaKeys);
 | 
 |  |  |             }
 | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  |  | 
 |  |  | 
 | 
 |  |  |         #region ■ 同步设备___________________________
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///  同步设备并且刷新缓存(同步失败时,会显示信息)
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         /// <param name="litdevice">设备对象(MAC地址必须要相同)</param>
 | 
 |  |  |         public async Task<bool> SynchronizationDevice(List<CommonDevice> listdevice)
 | 
 |  |  |         { | 
 |  |  |             //虚拟住宅的话,不需要删除网关的设备 | 
 |  |  |         {
 | 
 |  |  |             //虚拟住宅的话,不需要删除网关的设备
 | 
 |  |  |             if (Config.Instance.Home.IsVirtually == false)
 | 
 |  |  |             { | 
 |  |  |                 //同步 | 
 |  |  |             {
 | 
 |  |  |                 //同步
 | 
 |  |  |                 var result = await listdevice[0].SyncMsgToBindSource(listdevice[0].DeviceAddr, listdevice[0].DeviceEpoint);
 | 
 |  |  |                 if (result == null || result.result != 0)
 | 
 |  |  |                 {
 | 
 |  |  | 
 |  |  |                 }
 | 
 |  |  |             }
 | 
 |  |  |             return true;
 | 
 |  |  |         } | 
 |  |  |         #endregion | 
 |  |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |         }
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 测试设备___________________________
 | 
 |  |  |  | 
 |  |  | 
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 发送定位指令到设备
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |                     return true;
 | 
 |  |  |                 }
 | 
 |  |  |             }
 | 
 |  |  |             return false;
 | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 检测设备是否拥有一键同步功能
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         /// <param name="device"></param>
 | 
 |  |  |         /// <returns></returns>
 | 
 |  |  |         public bool DeviceIsCanSynchronization(CommonDevice device)
 | 
 |  |  |         { | 
 |  |  |             //获取设备类型的 | 
 |  |  |             var deviceEnumInfo = Common.LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
 | 
 |  |  |             if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) | 
 |  |  |             { | 
 |  |  |                 return true; | 
 |  |  |             } | 
 |  |  |             return false;
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |         /// <param name="listDevice"></param>
 | 
 |  |  |         /// <returns></returns>
 | 
 |  |  |         public List<CommonDevice> GetPanelMatchEpointByMac(List<CommonDevice> listDevice, bool sort = true)
 | 
 |  |  |         { | 
 |  |  |         {  | 
 |  |  |             var list = new List<CommonDevice>();
 | 
 |  |  |             foreach (var dev in listDevice)
 | 
 |  |  |             {
 | 
 |  |  | 
 |  |  |                 else if (dev.Type == DeviceType.FreshAirHumiditySensor)
 | 
 |  |  |                 {
 | 
 |  |  |                     list.Add(dev);
 | 
 |  |  |                 } | 
 |  |  |                 }   | 
 |  |  |             }
 | 
 |  |  |             if (sort == false)
 | 
 |  |  |             {
 | 
 |  |  |                 return list;
 | 
 |  |  |             } | 
 |  |  |             list.Sort((obj1, obj2) => | 
 |  |  |             }
 | 
 |  |  |             list.Sort((obj1, obj2) =>
 | 
 |  |  |             {
 | 
 |  |  | 
 | 
 |  |  |                 if (obj1.DeviceEpoint > obj2.DeviceEpoint)
 | 
 |  |  | 
 |  |  |                     return 1;
 | 
 |  |  |                 }
 | 
 |  |  |                 return -1;
 | 
 |  |  |             }); | 
 |  |  |             });  | 
 |  |  |             return list;
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  | 
 | 
 |  |  |             if (device.Type == DeviceType.OnOffOutput
 | 
 |  |  |                 || device.Type == DeviceType.DimmableLight | 
 |  |  |                 || device.Type == DeviceType.DimmableLight  | 
 |  |  |                 || device.Type == DeviceType.ColorDimmableLight
 | 
 |  |  |                 || device.Type == DeviceType.ColorTemperatureLight)
 | 
 |  |  |             {
 | 
 |  |  | 
 |  |  |             {
 | 
 |  |  |                 //空调都叫室内机
 | 
 |  |  |                 return Language.StringByID(R.MyInternationalizationString.uIndoorUnit) + epointNo;
 | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             //获取设备类型 | 
 |  |  |             }   | 
 |  |  | 
 | 
 |  |  |             //获取设备类型
 | 
 |  |  |             var deviceInfoType = this.GetMyDeviceEnumInfo(new List<CommonDevice>() { device });
 | 
 |  |  |             if (device.Type == DeviceType.OnOffSwitch)
 | 
 |  |  |             {
 | 
 |  |  | 
 |  |  |             list.Add(DeviceBeloneType.A传感器);
 | 
 |  |  | 
 | 
 |  |  |             //其他的看着办呗,都是排在后面的,都归为这个属性
 | 
 |  |  |             list.Add(DeviceBeloneType.A未知设备); | 
 |  |  |  | 
 |  |  |             list.Add(DeviceBeloneType.A未知设备);
 | 
 |  |  |              | 
 |  |  |             return list;
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |             var listDevice = this.GetDevicesByMac(i_device.DeviceAddr, false);
 | 
 |  |  |             foreach (var device in listDevice)
 | 
 |  |  |             {
 | 
 |  |  |                 //0:离线 1:在线 2:正在刷新状态
 | 
 |  |  |                 //0:离线 1:在线 2:正在刷新状态  | 
 |  |  |                 bool statu = i_device.IsOnline == 1 || i_device.IsOnline == 2;
 | 
 |  |  |                 if (statu == true)
 | 
 |  |  |                 {
 | 
 |  |  | 
 |  |  |                 {
 | 
 |  |  |                     return false;
 | 
 |  |  |                 }
 | 
 |  |  |             } | 
 |  |  |             //2020.03.30追加式样:如果是面板的温度探头,不显示 | 
 |  |  |             }
 | 
 |  |  |             //2020.03.30追加式样:如果是面板的温度探头,不显示
 | 
 |  |  |             else if (i_device.Type == DeviceType.TemperatureSensor && ((TemperatureSensor)i_device).SensorDiv == 1)
 | 
 |  |  |             {
 | 
 |  |  |                 var myInfoType = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { i_device });
 | 
 |  |  | 
 |  |  |             {
 | 
 |  |  |                 //新风的湿度传感器不显示
 | 
 |  |  |                 return false;
 | 
 |  |  |             } | 
 |  |  |  | 
 |  |  |             //如果是新风面板或环境面板,则都不显示任何回路 | 
 |  |  |             var myInfoTypeTemp = LocalDevice.Current.GetMyDeviceEnumInfo(new List<CommonDevice>() { i_device }); | 
 |  |  |             if (myInfoTypeTemp.ConcreteType == DeviceConcreteType.ButtonPanel_FangyueFreshAir || myInfoTypeTemp.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment) | 
 |  |  |             { | 
 |  |  |                 return false; | 
 |  |  |             } | 
 |  |  |             else if (myInfoTypeTemp.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleMultifunction) | 
 |  |  |             { | 
 |  |  |                 if (i_device.Type != DeviceType.OnOffOutput) | 
 |  |  |                 { | 
 |  |  |                     return false; | 
 |  |  |                 } | 
 |  |  |             }
 | 
 |  |  | 
 | 
 |  |  |             //如果是新风面板或环境面板,则都不显示任何回路
 | 
 |  |  | 
 |  |  |             this.dicDeviceModelIdEnum["MGCD01/M-ZB.10"] = "1306-1200-60000";//吸顶燃气传感器
 | 
 |  |  | 
 | 
 |  |  |             //PM2.5空气质量传感器 【该设备属于第三方设备,没有镜像ID】
 | 
 |  |  |             this.dicDeviceModelIdEnum["MSPM25/M-ZB.10"] = "1307-1200-60000";//PM2.5空气质量传感器
 | 
 |  |  |             this.dicDeviceModelIdEnum["MSPM25/M-ZB.10"] = "1307-1200-60000";//PM2.5空气质量传感器  | 
 |  |  | 
 | 
 |  |  |             //=========★★继电器类(2300-2499)★★=========
 | 
 |  |  |             this.dicDeviceModelIdEnum["MPR0310-ZB.10"] = "2300-2300-60001";//3路继电器小模块
 | 
 |  |  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 方悦新风小模块 镜像id:2310
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         Relay_FangyueFreshAirModul = 2310, | 
 |  |  |  | 
 |  |  |         //=========★★调光器类(2500-2799)★★========= | 
 |  |  |         Relay_FangyueFreshAirModul = 2310,
 | 
 |  |  | 		 | 
 |  |  |         //=========★★调光器类(2500-2799)★★=========
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 调光器
 | 
 |  |  |         /// </summary>
 | 
 
 |  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  |                             } | 
 |  |  |  | 
 |  |  |                              | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                         taskListInfo.Add(switchdictionary); | 
 |  |  |                         completeView.Show(l).AddChidren(openView.Show()); | 
 |  |  |                         openView.lineBtn.BackgroundColor = ZigbeeColor.Current.LogicBackgroundColor; | 
 |  |  |  | 
 |  |  |                     | 
 |  |  |                         horizontalSeekBarRowLien.Y = openView.frameLayout.Bottom; | 
 |  |  |                         horizontalSeekBarVol.Y = openView.frameLayout.Bottom; | 
 |  |  |                         completeView.Show(l).AddChidren(horizontalSeekBarRowLien); | 
 |  |  | 
 |  |  |                         { | 
 |  |  |                             nightlight.Show(common, edit, _if[1]); | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                          | 
 |  |  |                     } | 
 |  |  |                     break; | 
 |  |  |             } | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                         break; | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |                  | 
 |  |  |  | 
 |  |  |             }; | 
 |  |  |         } | 
 
 |  |  | 
 |  |  |                     string state = ""; | 
 |  |  |                     switch (linkType) | 
 |  |  |                     { | 
 |  |  |  | 
 |  |  |                          | 
 |  |  |                         case 0: | 
 |  |  |                         case 8: | 
 |  |  |                             { | 
 
 |  |  | 
 |  |  |                 devicename.MouseUpEventHandler += devicclick; | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |          | 
 |  |  |     } | 
 |  |  | } | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  | using System.Collections.Specialized; | 
 |  |  | using System.Net; | 
 |  |  | using System.IO; | 
 |  |  | using System.Diagnostics.CodeAnalysis; | 
 |  |  |  | 
 |  |  | namespace Shared.Phone.Device.Logic | 
 |  |  | { | 
 |  |  | 
 |  |  |             return await System.Threading.Tasks.Task.Run(async () => | 
 |  |  |             { | 
 |  |  |                 List<int> logicIdList = new List<int>(); | 
 |  |  |                  | 
 |  |  |  | 
 |  |  |                 Action<string, string> action = (topic, data) => | 
 |  |  |                 { | 
 |  |  |                     var gatewayID = topic.Split('/')[0]; | 
 |  |  | 
 |  |  |                     { | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |                      | 
 |  |  |  | 
 |  |  |                     if (topic == $"{gatewayID}/Logic/GetLogicList_Respon") | 
 |  |  |                     { | 
 |  |  |  | 
 |  |  | 
 |  |  |                         { | 
 |  |  |                             var logicId = int.Parse(listIfon["LogicId"].ToString()); | 
 |  |  |                             logicIdList.Add(logicId); | 
 |  |  |                             | 
 |  |  |  | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                     jObject.Add("Data", jObjectdata1); | 
 |  |  |                     mainGateWay?.Send("Logic/GetLogicList", jObject.ToString()); | 
 |  |  |                 } | 
 |  |  |                 catch(Exception e) { | 
 |  |  |                 catch (Exception e) | 
 |  |  |                 { | 
 |  |  |                     var d = e.Message; | 
 |  |  |                 } | 
 |  |  |                 //await System.Threading.Tasks.Task.Run(async () => | 
 |  |  | 
 |  |  |  | 
 |  |  |                 try | 
 |  |  |                 { | 
 |  |  |                    | 
 |  |  |  | 
 |  |  |                     var jObject = new JObject { { "Cluster_ID", 0 }, { "Command", 2000 } }; | 
 |  |  |                     var selectMonthList = new JArray { }; | 
 |  |  |                     foreach (var intvalue in logic.TimeAttribute.SelectMonDate) | 
 |  |  | 
 |  |  |                                     ["LinkType"] = int.Parse(dictionary["LinkType"].ToString()), | 
 |  |  |                                     ["DeviceAddr"] = dictionary["DeviceAddr"].ToString(), | 
 |  |  |                                     ["Epoint"] = int.Parse(dictionary["Epoint"].ToString()), | 
 |  |  |                                     ["PassData"] =dictionary["PassData"].ToString(), | 
 |  |  |                                     ["PassData"] = dictionary["PassData"].ToString(), | 
 |  |  |                                 }; | 
 |  |  |                                 actions.Add(lockInfo); | 
 |  |  |                                 break; | 
 |  |  | 
 |  |  |  | 
 |  |  |                                         if (dictionary.ContainsKey("Option4")) | 
 |  |  |                                         { | 
 |  |  |                                             accounts1.Add("Option4",dictionary["Option4"]); | 
 |  |  |                                             accounts1.Add("Option4", dictionary["Option4"]); | 
 |  |  |                                         } | 
 |  |  |                                         if (dictionary.ContainsKey("Option2")) | 
 |  |  |                                         { | 
 |  |  | 
 |  |  |                         } | 
 |  |  |  | 
 |  |  |                     } | 
 |  |  |                   | 
 |  |  |  | 
 |  |  |                     var data = new JObject{ | 
 |  |  |                         { "LogicId",logic.LogicId}, | 
 |  |  |                         { "IsEnable", logic.IsEnable} , | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 catch { } | 
 |  |  |                 var dateTime = DateTime.Now; | 
 |  |  |                 while ((DateTime.Now - dateTime).TotalMilliseconds < 5* 1000) | 
 |  |  |                 while ((DateTime.Now - dateTime).TotalMilliseconds < 5 * 1000) | 
 |  |  |                 { | 
 |  |  |                     await System.Threading.Tasks.Task.Delay(100); | 
 |  |  |                     if (sum == listLogic.Count) | 
 |  |  | 
 |  |  |         { | 
 |  |  |             string s = null; | 
 |  |  |             var str = await WebClientAsync(0, CommonPage.RequestHttpsHost + "/App/GetHomePager");//不同区域域名前缀不一样 | 
 |  |  |                                                                                                 | 
 |  |  |  | 
 |  |  |             var jObject = JObject.Parse(str); | 
 |  |  |             if (jObject == null || jObject["StateCode"].ToString() != "Success") | 
 |  |  |             { | 
 |  |  | 
 |  |  |             lockifon.doorlockmac = residential.doorlockmac; | 
 |  |  |             return await WebClientAsync(2, lockifon.Url, lockifon); | 
 |  |  |         } | 
 |  |  |        | 
 |  |  |  | 
 |  |  |         public class Residential | 
 |  |  |         { | 
 |  |  |             /// <summary> | 
 |  |  | 
 |  |  |         { | 
 |  |  |             HttpWebRequest request = WebRequest.Create(getUrl) as HttpWebRequest; //创建请求 | 
 |  |  |             request.Method = method; //请求方式为POST/GET | 
 |  |  |             request.ContentType = "application/json";  | 
 |  |  |             request.ContentType = "application/json"; | 
 |  |  |             request.Timeout = second * 1000;//超时时间 | 
 |  |  |             if (_bool) { | 
 |  |  |                 //用于高胜可视对讲接口 | 
 |  |  |                 request.Headers.Add("Authorization", Config.Instance.Token); | 
 |  |  |             } | 
 |  |  |             if (method == "POST") | 
 |  |  |             { | 
 |  |  |                 byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); | 
 |  |  |                 request.ContentLength = jsonbyte.Length; | 
 |  |  |                 Stream postStream = request.GetRequestStream(); | 
 |  |  |                 postStream.Write(jsonbyte, 0, jsonbyte.Length); | 
 |  |  |                 postStream.Close(); | 
 |  |  |             } | 
 |  |  |             //发送请求并获取相应回应数据        | 
 |  |  |             HttpWebResponse res; | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 res = (HttpWebResponse)request.GetResponse(); | 
 |  |  |                 if (_bool) | 
 |  |  |                 { | 
 |  |  |                     //用于高胜可视对讲接口 | 
 |  |  |                     request.Headers.Add("Authorization", Config.Instance.Token); | 
 |  |  |                 } | 
 |  |  |                 if (method == "POST") | 
 |  |  |                 { | 
 |  |  |                     byte[] jsonbyte = System.Text.Encoding.UTF8.GetBytes(str); | 
 |  |  |                     request.ContentLength = jsonbyte.Length; | 
 |  |  |                     Stream postStream = request.GetRequestStream(); | 
 |  |  |                     postStream.Write(jsonbyte, 0, jsonbyte.Length); | 
 |  |  |                     postStream.Close(); | 
 |  |  |                 } | 
 |  |  |                 //发送请求并获取相应回应数据        | 
 |  |  |                 HttpWebResponse res; | 
 |  |  |                 try | 
 |  |  |                 { | 
 |  |  |                     res = (HttpWebResponse)request.GetResponse(); | 
 |  |  |                 } | 
 |  |  |                 catch (WebException ex) | 
 |  |  |                 { | 
 |  |  |                     res = (HttpWebResponse)ex.Response; | 
 |  |  |                 } | 
 |  |  |                 StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); | 
 |  |  |                 string content = sr.ReadToEnd(); //获得响应字符串 | 
 |  |  |                 return content; | 
 |  |  |             } | 
 |  |  |             catch (WebException ex) | 
 |  |  |             catch | 
 |  |  |             { | 
 |  |  |                 res = (HttpWebResponse)ex.Response; | 
 |  |  |                 return null; | 
 |  |  |             } | 
 |  |  |             StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.UTF8); | 
 |  |  |             string content = sr.ReadToEnd(); //获得响应字符串 | 
 |  |  |             return content; | 
 |  |  |  | 
 |  |  |         } | 
 |  |  |         /// <summary> | 
 |  |  |         /// 请求服务器的方法 | 
 
 |  |  | 
 |  |  |         public void ShowForm()
 | 
 |  |  |         {
 | 
 |  |  |             this.FormID = "HomeMainPageForm";
 | 
 |  |  |             Instance = this;
 | 
 |  |  | 
 | 
 |  |  |             //先初始化左滑房间列表界面(在反射里面初始化)
 | 
 |  |  |             Instance = this; | 
 |  |  |  | 
 |  |  |             //先初始化左滑房间列表界面(在反射里面初始化) | 
 |  |  |             if (LeftListRoomViewFrom.Instance == null) { }
 | 
 |  |  | 
 | 
 |  |  |             //整个背景的上下滑动控件
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  | 
 | 
 |  |  |             //可视对讲快捷方式
 | 
 |  |  |             Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout);
 | 
 |  |  |             //Shared.Phone.Device.VideoIntercom.VideoMachine.AccountSupportVideo(topFrameLayout);
 | 
 |  |  |             //安防快捷方式
 | 
 |  |  |             if (UserCenterResourse.ResidenceOption.SafetyShortcut)
 | 
 |  |  |             {
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |             var listDevice = new List<CommonDevice>();
 | 
 |  |  |             foreach (var mainkeys in HdlRoomLogic.Current.NowMainPageRoom.ListDevice)
 | 
 |  |  |             { | 
 |  |  |             {
 | 
 |  |  |                 var device = LocalDevice.Current.GetDevice(mainkeys);
 | 
 |  |  | 
 | 
 |  |  |                 //判断该设备能否显示在主页
 | 
 |  |  |                 if (LocalDevice.Current.CanShowInHomeHomeMainPage(device) == false)
 | 
 |  |  |                 {
 | 
 
 |  |  | 
 |  |  |         /// </summary>
 | 
 |  |  |         public bool SetCanSelect
 | 
 |  |  |         {
 | 
 |  |  |             set
 | 
 |  |  |             set  | 
 |  |  |             {
 | 
 |  |  |                 m_SetCanSelect = value;
 | 
 |  |  |             }
 | 
 |  |  | 
 |  |  |                 {
 | 
 |  |  |                     //设置功能类型到网关
 | 
 |  |  |                     var result = Common.LocalDevice.Current.SendDeviceFunctionTypeToGateway(this.device, (DeviceFunctionType)nowSelectNo);
 | 
 |  |  | 
 | 
 |  |  |                      | 
 |  |  |                     HdlThreadLogic.Current.RunMain(() =>
 | 
 |  |  |                     {
 | 
 |  |  |                         if (result == true)
 | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  |             //获取需要发送的数据
 | 
 |  |  |             var sendData = this.GetDeleteDeviceBindCommandText(delDeviceBindData);
 | 
 |  |  |             //发送命令
 | 
 |  |  |             var result = this.SendDeleteBindJobjectDataToGateway(device, "Bind/RemoveBind",
 | 
 |  |  |             var result = this.SendDeleteBindJobjectDataToGateway(device, " Bind/RemoveBind",
 | 
 |  |  |                 sendData, new List<string>() { "Bind/RemoveBind_Respon", "Bind/RemoveBindResult" }, 6);
 | 
 |  |  | 
 | 
 |  |  |             if (result.ErrorMsg != null || result.ErrorMsgDiv == 0)
 | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  |                                     var myTip = new Tip(); | 
 |  |  |                                     myTip.Direction = AMPopTipDirection.None; | 
 |  |  |                                     myTip.CloseTime = 2; | 
 |  |  |                                     myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); | 
 |  |  |                                     myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")"; | 
 |  |  |                                     myTip.Show(Common.CommonPage.Instance); | 
 |  |  |                                 }); | 
 |  |  |                                 return; | 
 |  |  | 
 |  |  |                                 var myTip = new Tip(); | 
 |  |  |                                 myTip.Direction = AMPopTipDirection.None; | 
 |  |  |                                 myTip.CloseTime = 2; | 
 |  |  |                                 myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime); | 
 |  |  |                                 myTip.Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "120_ 6533" + ")"; | 
 |  |  |                                 myTip.Show(Common.CommonPage.Instance); | 
 |  |  |                             }); | 
 |  |  |                             return; | 
 |  |  | 
 |  |  |                                     btnFinish.Enable = true; | 
 |  |  |                                     btnFinish.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                     CommonPage.Loading.Hide(); | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5001" + ")", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinish); | 
 |  |  |                                 }); | 
 |  |  |  | 
 |  |  |                                 return; | 
 
 |  |  | 
 |  |  |             btnBackFrameLayout.AddChidren(btnBack); | 
 |  |  |             titleFrameLayout.AddChidren(btnTitle); | 
 |  |  |             btnTitle.Text = titleText; | 
 |  |  |  | 
 |  |  |             btnTitle.MouseLongEventHandler = (sender, e) => | 
 |  |  |             { | 
 |  |  |                 var f1 = new FrameLayout() | 
 |  |  |                 { | 
 |  |  |                     Width = Application.GetRealWidth(400), | 
 |  |  |                     Gravity = Gravity.CenterHorizontal, | 
 |  |  |                 }; | 
 |  |  |                 this.titleFrameLayout.AddChidren(f1); | 
 |  |  |                 var btn1 = new Button() | 
 |  |  |                 { | 
 |  |  |                     Width = Application.GetRealWidth(6), | 
 |  |  |                     Height = Application.GetRealHeight(6), | 
 |  |  |                     Radius = (uint)Application.GetRealWidth(3), | 
 |  |  |                     BackgroundColor = 0xff000000, | 
 |  |  |                 }; | 
 |  |  |                 f1.AddChidren(btn1); | 
 |  |  |  | 
 |  |  |                 f1.MouseLongEventHandler += (sender1, e1) => | 
 |  |  |                 { | 
 |  |  |                     ErrroInfoLayout(this); | 
 |  |  |                     f1.RemoveFromParent(); | 
 |  |  |                 }; | 
 |  |  |             }; | 
 |  |  |         } | 
 |  |  |         /// <summary> | 
 |  |  |         /// 中部布局 | 
 |  |  | 
 |  |  |             this.midFrameLayout.AddChidren(bottomFrameLayout1); | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 显示重新加载的界面(主要是用在界面加载错误时,再次加载)
 | 
 |  |  |         /// <summary> | 
 |  |  |         /// 显示重新加载的界面(主要是用在界面加载错误时,再次加载) | 
 |  |  |         /// </summary> | 
 |  |  |         public void ShowReLoadView()
 | 
 |  |  |         public void ShowReLoadView() | 
 |  |  |         { | 
 |  |  |             var frame = new FrameLayout(); | 
 |  |  |             frame.BackgroundColor = UserCenterColor.Current.White; | 
 |  |  | 
 |  |  |             { | 
 |  |  |                 ReLoadAction?.Invoke(); | 
 |  |  |                 ReLoadAction = null; | 
 |  |  |             };
 | 
 |  |  |             }; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 添加楼层UI | 
 |  |  |         /// </summary> | 
 |  |  |         /// </summary>  | 
 |  |  |         public void BindDownFrameLayout(FrameLayout frameLayout, Panel curControlDev, Dictionary<string, string> dicFloorList, ref Button btnFloorText) | 
 |  |  |         { | 
 |  |  |             var btnAddFrameLayout = new FrameLayout | 
 |  |  | 
 |  |  |                 sidelipFrameLayout.Height = Application.GetMinReal(780); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         /// Layout | 
 |  |  |         /// </summary> | 
 |  |  |         public void ErrroInfoLayout(FrameLayout frameLayout) | 
 |  |  |         { | 
 |  |  |             // 准备加一需要输入密码才 dialog.Show(); | 
 |  |  |             var editText = new EditText | 
 |  |  |             { | 
 |  |  |                 Width = Application.GetRealWidth(800), | 
 |  |  |                 Height = Application.GetMinReal(100), | 
 |  |  |                 Text = "Bind", | 
 |  |  |                 TextAlignment = TextAlignment.Center, | 
 |  |  |                 TextSize = 12, | 
 |  |  |                 Gravity = Gravity.Center, | 
 |  |  |                 Radius = 10, | 
 |  |  |                 BorderColor = 0xffff00, | 
 |  |  |                 BorderWidth = 5, | 
 |  |  |                 BackgroundColor = 0xff000000, | 
 |  |  |             }; | 
 |  |  |             frameLayout.AddChidren(editText); | 
 |  |  |  | 
 |  |  |  | 
 |  |  |             Action<Shared.View> action = (obj) => | 
 |  |  |             { | 
 |  |  |                 if (editText.Text == "Bind") | 
 |  |  |                 { | 
 |  |  |                     editText.RemoveFromParent(); | 
 |  |  |  | 
 |  |  |                     var dialog = new Dialog | 
 |  |  |                     { | 
 |  |  |                     }; | 
 |  |  |                     dialog.Show(); | 
 |  |  |  | 
 |  |  |                     var flMain = new FrameLayout { BackgroundColor = 0xff000000 }; | 
 |  |  |                     dialog.AddChidren(flMain); | 
 |  |  |                     flMain.MouseUpEventHandler += (sender11, e11) => | 
 |  |  |                     { | 
 |  |  |                         dialog.Close(); | 
 |  |  |                     }; | 
 |  |  |  | 
 |  |  |                     var titleFrameLayout = new FrameLayout | 
 |  |  |                     { | 
 |  |  |                         BackgroundColor = 0xff2f2f2f, | 
 |  |  |                         Height = Application.GetMinReal(80), | 
 |  |  |                         Y = Application.GetMinReal(80), | 
 |  |  |                     }; | 
 |  |  |                     dialog.AddChidren(titleFrameLayout); | 
 |  |  |  | 
 |  |  |                     var title = new Button | 
 |  |  |                     { | 
 |  |  |                         Width = Application.GetRealWidth(1080 - 200), | 
 |  |  |                         Text = "Search Error Infomation", | 
 |  |  |                         TextAlignment = TextAlignment.Center, | 
 |  |  |                         TextSize = 12, | 
 |  |  |                         IsBold = true, | 
 |  |  |                     }; | 
 |  |  |                     titleFrameLayout.AddChidren(title); | 
 |  |  |                     title.MouseUpEventHandler += (sender11, e11) => | 
 |  |  |                     { | 
 |  |  |                         dialog.Close(); | 
 |  |  |                     }; | 
 |  |  |  | 
 |  |  |                     var close = new Button | 
 |  |  |                     { | 
 |  |  |                         Height = Application.GetMinReal(80), | 
 |  |  |                         Width = Application.GetRealWidth(200), | 
 |  |  |                         X = Application.GetRealWidth(1080 - 200), | 
 |  |  |                         Text = "关闭", | 
 |  |  |                         TextAlignment = TextAlignment.CenterLeft, | 
 |  |  |                         TextSize = 12, | 
 |  |  |                         Radius = 5, | 
 |  |  |                     }; | 
 |  |  |                     titleFrameLayout.AddChidren(close); | 
 |  |  |                     close.MouseUpEventHandler += (sender11, e11) => | 
 |  |  |                     { | 
 |  |  |                         dialog.Close(); | 
 |  |  |                     }; | 
 |  |  |  | 
 |  |  |                     var contentLayout = new VerticalScrolViewLayout() | 
 |  |  |                     { | 
 |  |  |                         BackgroundColor = 0xff2f2f2f, | 
 |  |  |                         Y = titleFrameLayout.Bottom, | 
 |  |  |                         Height = Application.GetRealHeight(1710), | 
 |  |  |                     }; | 
 |  |  |                     flMain.AddChidren(contentLayout); | 
 |  |  |  | 
 |  |  |                     var Info = GetErrorList(); | 
 |  |  |                     for (int i = 0; i < Info.Count; i++) | 
 |  |  |                     { | 
 |  |  |                         var mess = Info[i]; | 
 |  |  |                         var msgArry = mess.Split(new string[] { "[0]" }, StringSplitOptions.RemoveEmptyEntries); | 
 |  |  |  | 
 |  |  |                         var row = new RowLayout() | 
 |  |  |                         { | 
 |  |  |                             Height = Application.GetRealHeight(90), | 
 |  |  |                         }; | 
 |  |  |                         contentLayout.AddChidren(row); | 
 |  |  |  | 
 |  |  |                         var btnText1 = new Button | 
 |  |  |                         { | 
 |  |  |                             Height = Application.GetMinReal(80), | 
 |  |  |                             Width = Application.GetRealWidth(200), | 
 |  |  |                             X = Application.GetRealWidth(5), | 
 |  |  |                             TextAlignment = TextAlignment.CenterLeft, | 
 |  |  |                             TextSize = 10, | 
 |  |  |                             Text = msgArry[0], | 
 |  |  |                             IsBold = true, | 
 |  |  |                         }; | 
 |  |  |                         row.AddChidren(btnText1); | 
 |  |  |  | 
 |  |  |                         var btnText2 = new Button | 
 |  |  |                         { | 
 |  |  |                             Height = Application.GetMinReal(80), | 
 |  |  |                             TextAlignment = TextAlignment.CenterLeft, | 
 |  |  |                             TextSize = 8, | 
 |  |  |                             X = btnText1.Right, | 
 |  |  |                             Text = msgArry[1], | 
 |  |  |                         }; | 
 |  |  |                         row.AddChidren(btnText2); | 
 |  |  |  | 
 |  |  |                         if (msgArry.Length > 2) | 
 |  |  |                         { | 
 |  |  |                             btnText2.Height = Application.GetRealHeight(90 / 2); | 
 |  |  |  | 
 |  |  |                             var btnText3 = new Button | 
 |  |  |                             { | 
 |  |  |                                 X = btnText1.Right, | 
 |  |  |                                 Y = Application.GetRealHeight(90 / 2), | 
 |  |  |                                 Height = Application.GetRealHeight(90 / 2), | 
 |  |  |                                 Text = msgArry[2], | 
 |  |  |                                 TextAlignment = TextAlignment.CenterLeft, | 
 |  |  |                                 TextSize = 8, | 
 |  |  |                             }; | 
 |  |  |                             row.AddChidren(btnText3); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |  | 
 |  |  |             }; | 
 |  |  |             editText.EditorEnterAction += action; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary> | 
 |  |  |         ///绑定错误表 | 
 |  |  |         /// </summary> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         private List<string> GetErrorList() | 
 |  |  |         { | 
 |  |  |             var sList = new List<string> { }; | 
 |  |  |             sList.Add("0003:[0]获取按键支持的功能时,网关没回【 透传命令:0003 】"); | 
 |  |  |             sList.Add("0003_switch:[0]获取开关具体类型时(私有功能第三级别),网关没回【透传命令:0003】"); | 
 |  |  |             sList.Add("0003_dimmer:[0]获取调光具体类型时(私有功能第三级别),网关没回【透传命令:0003】"); | 
 |  |  |             sList.Add("0003_curtain:[0]获取调光具体类型时(私有功能第三级别),网关没回【透传命令:0003】"); | 
 |  |  |             sList.Add("108_ 6533:[0]读取面板的配置信息时,网关没回【命令108,属性6533】"); | 
 |  |  |             sList.Add("120_ 6533:[0]配置面板功能时,网关没回【命令120,属性6533】"); | 
 |  |  |             sList.Add("5001:[0]设备绑定时,网关没回【命令5001】"); | 
 |  |  |             sList.Add("5001_1:[0]设备添加绑定目标时,网关绑定目标失败,绑定设备目标有漏掉【命令5001】"); | 
 |  |  |             sList.Add("5001_2:[0]设备添加绑定目标时,网关回复未知错误【命令5001】"); | 
 |  |  |             sList.Add("5003:[0]删除设备时,网关没回【命令5003】"); | 
 |  |  |             sList.Add("5003_1:[0]当绑定空目标,发删除已经存在按键的目标时,[0]网关没回【命令5003】"); | 
 |  |  |             sList.Add("5003_2:[0]当绑定空目标,发删除已经存在按键的目标时,[0]按键回复错误结果【命令5003】"); | 
 |  |  |             sList.Add("5003_3:[0]当绑定空目标,发删除已经存在按键的目标时,[0]按键结果是空,网关回复错误结果【命令5003】"); | 
 |  |  |             sList.Add("5003_4:[0]更换目标时,发删除按键旧的目标时,按键结果是空,[0]网关回复错误结果【命令5003】"); | 
 |  |  |             sList.Add("5003_5:[0]更换目标时,发删除按键旧的目标时,[0]按键回复错误结果【命令5003】"); | 
 |  |  |             sList.Add("5003_6:[0]更换目标时,发删除按键旧的目标时,按键结果是空,[0]网关回复错误结果【命令5003】"); | 
 |  |  |             sList.Add("5003_7:[0]更换目标时,发删除按键旧的目标时,旧的同种类型的目标没有删除完,[0]不能绑定新的目标【命令5003】"); | 
 |  |  |             sList.Add("5003_8:[0]删除单个设备,网关回复的结果是失败的【命令5003】"); | 
 |  |  |             sList.Add("5003_9:[0]删除单个设备,网关回复错误单结果【命令5003】"); | 
 |  |  |             sList.Add("5006:[0]删除按键所有绑定表时,网关没回【命令5006】"); | 
 |  |  |             sList.Add("5007:[0]获取按键绑定表时, 网关没回【命令5007】"); | 
 |  |  |             sList.Add("5007_1:[0]获取按键绑定表时,网关没回,结果是[0]获取多功能面板的目标个数不全【命令5007】"); | 
 |  |  |             sList.Add("5007_2:[0]获取按键绑定的温度传感器失败【命令5007】"); | 
 |  |  |             sList.Add("5007_3:[0]获取按键绑定的湿度度传感器失败【命令5007】"); | 
 |  |  |             return sList; | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  | } | 
 
old mode 100644
new mode 100755
 
 |  |  | 
 |  |  |                                     { | 
 |  |  |                                         CommonPage.Loading.Hide(); | 
 |  |  |                                         midVerticalRefreshLayout.EndHeaderRefreshing(); | 
 |  |  |                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                                         return; | 
 |  |  |                                     }); | 
 |  |  |                                 } | 
 |  |  | 
 |  |  |                         { | 
 |  |  |                             CommonPage.Loading.Hide(); | 
 |  |  |                             midVerticalRefreshLayout.EndHeaderRefreshing(); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "108_ 6533" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         }); | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  | 
 |  |  |                                             btnFloorRoomNameText = tempDevFloorName + "," + tempDevRoomName; | 
 |  |  |                                         } | 
 |  |  |                                     } | 
 |  |  |                                 } | 
 |  |  |                                 else | 
 |  |  |                                 { | 
 |  |  |                                     btnFloorRoomNameText = Language.StringByID(R.MyInternationalizationString.Undistributed); | 
 |  |  |                                 }
 | 
 |  |  |                                 else | 
 |  |  |                                 { | 
 |  |  | 
 |  |  |                              { | 
 |  |  |                                  Application.RunOnMainThread(() => | 
 |  |  |                                  { | 
 |  |  |                                      new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); | 
 |  |  |                                      new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnDel); | 
 |  |  |                                  }); | 
 |  |  |                              } | 
 |  |  |                          } | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     Application.RunOnMainThread(() => | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         CommonPage.Loading.Hide(); | 
 |  |  |                     }); | 
 |  |  |                     dialog.Close(); | 
 |  |  | 
 |  |  |                     { | 
 |  |  |                         Application.RunOnMainThread(() => | 
 |  |  |                         { | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                         }); | 
 |  |  |                     } | 
 |  |  |                 } | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  |                                    btnFinifh.Enable = true; | 
 |  |  |                                    btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                    CommonPage.Loading.Hide(); | 
 |  |  |                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); | 
 |  |  |                                    new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5006" + ")", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); | 
 |  |  |                                }); | 
 |  |  |                                return; | 
 |  |  |                            } | 
 |  |  | 
 |  |  |                                        btnFinifh.Enable = true; | 
 |  |  |                                        btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                        CommonPage.Loading.Hide(); | 
 |  |  |                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); | 
 |  |  |                                        new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5001" + ")", Direction = AMPopTipDirection.Up, CloseTime = 1 }.Show(btnFinifh); | 
 |  |  |                                    }); | 
 |  |  |                                    return; | 
 |  |  |                                } | 
 |  |  | 
 |  |  |                                btnFinifh.Enable = true; | 
 |  |  |                                btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                CommonPage.Loading.Hide(); | 
 |  |  |                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh); | 
 |  |  |                                new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "120_ 6533" + ")", Direction = AMPopTipDirection.Up, CloseTime = 2 }.Show(btnFinifh); | 
 |  |  |                            }); | 
 |  |  |                            return; | 
 |  |  |                        } | 
 |  |  | 
 |  |  |                     typeDetailModeList = await GetAddSwitchMode(); | 
 |  |  |                     if (typeDetailModeList == null) | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003_switch" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  | 
 |  |  |                     typeDetailModeList = await GetAddDimmerMode(); | 
 |  |  |                     if (typeDetailModeList == null) | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003_dimmer" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  | 
 |  |  |                     typeDetailModeList = await GetAddCurtainMode(); | 
 |  |  |                     if (typeDetailModeList == null) | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003_curtain" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     Application.RunOnMainThread(() => | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003_switch" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                     }); | 
 |  |  |                     return; | 
 |  |  |                 } | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     Application.RunOnMainThread(() => | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003_dimmer" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                     }); | 
 |  |  |                     return; | 
 |  |  |                 } | 
 |  |  | 
 |  |  |             if (typeDetailModeList == null) | 
 |  |  |             { | 
 |  |  |                 //再次动态获取按键支持的类 | 
 |  |  |                 typeDetailModeList = await GetAddSwitchMode(); | 
 |  |  |                 typeDetailModeList = await GetAddCurtainMode(); | 
 |  |  |                 if (typeDetailModeList == null) | 
 |  |  |                 { | 
 |  |  |                     Application.RunOnMainThread(() => | 
 |  |  |                     { | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "0003_curtain" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                     }); | 
 |  |  |                     return; | 
 |  |  |                 } | 
 
 |  |  | 
 |  |  |     /// </summary> | 
 |  |  |     public class MutilfunctionPanelMethod | 
 |  |  |     { | 
 |  |  |         #region  变量申明 | 
 |  |  |         #region  变量申明  | 
 |  |  |         /// <summary> | 
 |  |  |         /// 开关的个数 [每次进入到多功能绑定界面,都要被重新取值] | 
 |  |  |         /// </summary> | 
 |  |  | 
 |  |  |         /// <param name="currentPanelSupportBindDeviceList"></param> | 
 |  |  |         /// <param name="supportRoomList"></param> | 
 |  |  |         /// <param name="curDeviceBindType">当前设备绑定类型 1:开关  2:插座  3:灯光  4:遮阳 5:空调 6:新风</param> | 
 |  |  |         /// <param name="curBindTypeList">当前类型的绑定表</param> | 
 |  |  |         /// <param name="curBindTypeList">当前类型的绑定表</param>  | 
 |  |  |         /// <returns></returns> | 
 |  |  |         public static List<CommonDevice> GetAllRoomSupportDeviceList(List<CommonDevice> currentPanelSupportBindDeviceList, List<Room> supportRoomList, List<BindListAllInfo> curBindTypeList, int curDeviceBindType) | 
 |  |  |         { | 
 |  |  | 
 |  |  |         /// </summary> | 
 |  |  |         /// <param name="currentPanelSupportBindSceneList"></param> | 
 |  |  |         /// <param name="supportRoomList"></param> | 
 |  |  |         /// <param name="curBindTypeList">当前类型的绑定表</param> | 
 |  |  |         /// <param name="curBindTypeList">当前类型的绑定表</param>  | 
 |  |  |         /// <param name="curDeviceBindType">当前设备绑定类型 0:场景</param> | 
 |  |  |         /// <returns></returns> | 
 |  |  |         public static List<SceneUI> GetAllRoomSupportSceneList(List<SceneUI> currentPanelSupportBindSceneList, List<Room> supportRoomList, List<BindListAllInfo> curBindTypeList, int curDeviceBindType = 0) | 
 
 |  |  | 
 |  |  |                 RemoveFromParent(); | 
 |  |  |             }; | 
 |  |  |             this.btnTitle.Width = Application.GetRealWidth(1080 - 161 - 300); | 
 |  |  |  | 
 |  |  |             this.btnBack.MouseUpEventHandler += eHandlerBack; | 
 |  |  |             this.btnBackFrameLayout.MouseUpEventHandler += eHandlerBack; | 
 |  |  |             this.MidFrameLayout(this); | 
 |  |  | 
 |  |  |                             canFresh = false; | 
 |  |  |                             midVerticalScrolViewLayout.EndHeaderRefreshing(); | 
 |  |  |                             CommonPage.Loading.Hide(); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |  | 
 |  |  |                             this.midFrameLayout.RemoveAll(); | 
 |  |  |  | 
 |  |  | 
 |  |  |                         Application.RunOnMainThread(() => { CommonPage.Loading.Start(""); }); | 
 |  |  |                         if (btnTipPic.IsSelected) | 
 |  |  |                         { | 
 |  |  |                             //删除情况1:绑定空目标必须取消按键中已经存在的目标 | 
 |  |  |                             //当绑定空目标,要删除已经存在按键的目标 | 
 |  |  |                             if (oldTargetList.Count != 0) | 
 |  |  |                             { | 
 |  |  |                                 //删除按键中已经绑定的目标个数【删除成功个数】 | 
 |  |  | 
 |  |  |                                     { | 
 |  |  |                                         Application.RunOnMainThread(() => | 
 |  |  |                                         { | 
 |  |  |                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_1" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                             CommonPage.Loading.Hide(); | 
 |  |  |  | 
 |  |  |                                             ShowReLoadView(); | 
 |  |  | 
 |  |  |                                                     { | 
 |  |  |                                                         Application.RunOnMainThread(() => | 
 |  |  |                                                         { | 
 |  |  |                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_3" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                             btnFinifh.Enable = true; | 
 |  |  |                                                             btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                                             CommonPage.Loading.Hide(); | 
 |  |  | 
 |  |  |                                             { | 
 |  |  |                                                 Application.RunOnMainThread(() => | 
 |  |  |                                                 { | 
 |  |  |                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_2" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                     btnFinifh.Enable = true; | 
 |  |  |                                                     btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                                     CommonPage.Loading.Hide(); | 
 |  |  | 
 |  |  |                                 { | 
 |  |  |                                     Application.RunOnMainThread(() => | 
 |  |  |                                     { | 
 |  |  |                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_4" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                         CommonPage.Loading.Hide(); | 
 |  |  |  | 
 |  |  |                                         ShowReLoadView(); | 
 |  |  | 
 |  |  |                                                 { | 
 |  |  |                                                     Application.RunOnMainThread(() => | 
 |  |  |                                                     { | 
 |  |  |                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                         new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_6" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                         btnFinifh.Enable = true; | 
 |  |  |                                                         btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                                         CommonPage.Loading.Hide(); | 
 |  |  | 
 |  |  |                                         { | 
 |  |  |                                             Application.RunOnMainThread(() => | 
 |  |  |                                             { | 
 |  |  |                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_5" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                                 btnFinifh.Enable = true; | 
 |  |  |                                                 btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                                 CommonPage.Loading.Hide(); | 
 |  |  | 
 |  |  |                             { | 
 |  |  |                                 Application.RunOnMainThread(() => | 
 |  |  |                                 { | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5003_7" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                     btnFinifh.Enable = true; | 
 |  |  |                                     btnFinifh.BackgroundColor = Shared.Common.ZigbeeColor.Current.XMBlack; | 
 |  |  |                                     CommonPage.Loading.Hide(); | 
 |  |  | 
 |  |  |                             Application.RunOnMainThread(() => | 
 |  |  |                             { | 
 |  |  |                                 CommonPage.Loading.Hide(); | 
 |  |  |                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |                                 new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5001" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(CommonPage.Instance); | 
 |  |  |  | 
 |  |  |                                 ShowReLoadView(); | 
 |  |  |                                 ReLoadAction += () => | 
 |  |  | 
 |  |  |                                     new Tip() | 
 |  |  |                                     { | 
 |  |  |                                         MaxWidth = 150, | 
 |  |  |                                         Text = Language.StringByID(R.MyInternationalizationString.BindFailed), | 
 |  |  |                                         Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5001_1" + ")", | 
 |  |  |                                         Direction = AMPopTipDirection.None, | 
 |  |  |                                         CloseTime = 1 | 
 |  |  |                                     }.Show(CommonPage.Instance); | 
 |  |  | 
 |  |  |                                     new Tip() | 
 |  |  |                                     { | 
 |  |  |                                         MaxWidth = 150, | 
 |  |  |                                         Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError), | 
 |  |  |                                         Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError) + "(" + "5001_2" + ")", | 
 |  |  |                                         Direction = AMPopTipDirection.None, | 
 |  |  |                                         CloseTime = 1 | 
 |  |  |                                     }.Show(CommonPage.Instance); | 
 
 |  |  | 
 |  |  |     public class DeviceMacInfoEditorForm : EditorCommonForm
 | 
 |  |  |     {
 | 
 |  |  |         #region ■ 变量声明___________________________
 | 
 |  |  | 
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 设备对象
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             {
 | 
 |  |  |                 //简约面板随便一个回路来获取设备信息
 | 
 |  |  |                 var dev = Common.LocalDevice.Current.GetDevice(deviceMac, 62);
 | 
 |  |  |                 if (dev != null) | 
 |  |  |                 { | 
 |  |  |                     var key = new ZigBee.Device.Panel(); | 
 |  |  |                     key.DeviceAddr = deviceMac; | 
 |  |  |                     key.CurrentGateWayId = dev.CurrentGateWayId; | 
 |  |  |                     InitBindInfo(key); | 
 |  |  |                 } | 
 |  |  |                 if (dev != null)
 | 
 |  |  |                 {
 | 
 |  |  |                     var key = new ZigBee.Device.Panel();
 | 
 |  |  |                     key.DeviceAddr = deviceMac;
 | 
 |  |  |                     key.CurrentGateWayId = dev.CurrentGateWayId;
 | 
 |  |  |                     InitBindInfo(key);
 | 
 |  |  |                 }
 | 
 |  |  |             }
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  |             else if (deviceEnumInfo.ConcreteType == DeviceConcreteType.ButtonPanel_SimpleEnvironment)
 | 
 |  |  |             {
 | 
 |  |  |                 //添加【绑定目标】行(简约环境面板用)
 | 
 |  |  |                 //添加【绑定目标】行(简约环境面板用)  | 
 |  |  |                 this.AddSimplePanelSettionRow();
 | 
 |  |  |             }
 | 
 |  |  |             else
 | 
 |  |  | 
 |  |  |                     {
 | 
 |  |  |                         Application.RunOnMainThread(() =>
 | 
 |  |  |                         {
 | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
 | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_2" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
 | 
 |  |  |                         });
 | 
 |  |  |                         return;
 | 
 |  |  |                     }
 | 
 |  |  | 
 |  |  |                     {
 | 
 |  |  |                         Application.RunOnMainThread(() =>
 | 
 |  |  |                         {
 | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
 | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_3" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance);
 | 
 |  |  |                         });
 | 
 |  |  |                         return;
 | 
 |  |  |                     }
 | 
 |  |  | 
 |  |  |                 foreach (var bDev in bindList)
 | 
 |  |  |                 {
 | 
 |  |  |                     var device = Common.LocalDevice.Current.GetDevice(bDev.BindMacAddr, bDev.BindEpoint);
 | 
 |  |  |                     if (device == null) | 
 |  |  |                     { | 
 |  |  |                         continue; | 
 |  |  |                     if (device == null)
 | 
 |  |  |                     {
 | 
 |  |  |                         continue;
 | 
 |  |  |                     }
 | 
 |  |  |                     if (device.Type == DeviceType.TemperatureSensor)
 | 
 |  |  |                     {
 | 
 |  |  | 
 |  |  |                     //删除指定设备
 | 
 |  |  |                     this.DoDeleteDevice();
 | 
 |  |  |                 });
 | 
 |  |  |             }); | 
 |  |  |  | 
 |  |  |             //同步 | 
 |  |  |             deviceMenu = Language.StringByID(R.MyInternationalizationString.Synchronization);
 | 
 |  |  |             if (Common.LocalDevice.Current.DeviceIsCanFixedPosition(listNewDevice[0])) | 
 |  |  |             { | 
 |  |  |                 frame.AddRowMenu(deviceMenu, "", "Item/SynchronizationSelected.png", () => | 
 |  |  |                 { | 
 |  |  |                     //如果当前住宅是虚拟住宅,此功能无效 | 
 |  |  |                     if (Common.Config.Instance.Home.IsVirtually == true) | 
 |  |  |                     { | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     //同步指定设备 | 
 |  |  |                     this.SynchronizationDevice(); | 
 |  |  |                 }); | 
 |  |  |             }
 | 
 |  |  |             });
 | 
 |  |  | 
 | 
 |  |  |             //同步
 | 
 |  |  |             deviceMenu = Language.StringByID(R.MyInternationalizationString.Synchronization);
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |                 //删除设备
 | 
 |  |  |                 bool result = await Common.LocalDevice.Current.DeleteDevice(listNewDevice);
 | 
 |  |  |                 //关闭进度条
 | 
 |  |  |                 this.CloseProgressBar();
 | 
 |  |  |                 if (result == false)
 | 
 |  |  |                 {
 | 
 |  |  |                     return;
 | 
 |  |  |                 }
 | 
 |  |  |                 HdlThreadLogic.Current.RunMain(() =>
 | 
 |  |  |                 {
 | 
 |  |  |                     //关闭界面
 | 
 |  |  |                     this.CloseForm();
 | 
 |  |  |                 });
 | 
 |  |  |             });
 | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 同步指定设备
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         private void SynchronizationDevice()
 | 
 |  |  |         {
 | 
 |  |  |             HdlThreadLogic.Current.RunThread(async () =>
 | 
 |  |  |             {
 | 
 |  |  |                 //打开进度条
 | 
 |  |  |                 this.ShowProgressBar();
 | 
 |  |  | 
 | 
 |  |  |                 //同步设备
 | 
 |  |  |                 bool result = await Common.LocalDevice.Current.SynchronizationDevice(listNewDevice);
 | 
 |  |  |                 //关闭进度条
 | 
 |  |  |                 this.CloseProgressBar();
 | 
 |  |  |                 if (result == false)
 | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  | {
 | 
 |  |  |     public class PanelBackLighWithSensorForm : EditorCommonForm
 | 
 |  |  |     {
 | 
 |  |  |         #region ■ 变量声明___________________________
 | 
 |  |  |         #region ■ 变量声明___________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 列表控件
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             set { btnSleepTime.Text = value; }
 | 
 |  |  |         }
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///睡眠时间
 | 
 |  |  |         ///睡眠时间  | 
 |  |  |         /// </summary>
 | 
 |  |  |         public NormalViewControl btnSleepTime = null;
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 节能模式行_________________________
 | 
 |  |  |         #region ■ 节能模式行_________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///  添加节能模式行
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             //添加接近感应
 | 
 |  |  |             this.AddProximitySensorsRow(frameBack);
 | 
 |  |  | 
 | 
 |  |  |             //底线
 | 
 |  |  |             //底线   | 
 |  |  |             var btnLine = new NormalViewControl(965, 5, true);
 | 
 |  |  |             btnLine.Height = 1;
 | 
 |  |  |             btnLine.X = Application.GetRealWidth(52);
 | 
 |  |  | 
 |  |  |         }
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 显示选择设备睡眠时间_______________
 | 
 |  |  |         #region ■ 显示选择设备睡眠时间_______________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 显示选择设备睡眠时间的界面
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             frameColor.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColor.Y = Application.GetRealHeight(26);
 | 
 |  |  |             frameColor.X = listview.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
 | 
 |  |  |             frameBack.AddChidren(frameColor);
 | 
 |  |  | 
 | 
 |  |  |             //颜色
 | 
 |  |  |             frameBack.AddChidren(frameColor); | 
 |  |  |  | 
 |  |  |             //颜色 | 
 |  |  |             var btnColorView = new NormalViewControl(Application.GetRealHeight(110), this.GetPictrueRealSize(49), false);
 | 
 |  |  |             btnColorView.Gravity = Gravity.CenterVertical;
 | 
 |  |  |             btnColorView.TextAlignment = TextAlignment.CenterRight;
 | 
 |  |  | 
 |  |  |             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
 | 
 |  |  | 
 | 
 |  |  |             //颜色外框
 | 
 |  |  |             var btnColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             btnColorLine.Width = Application.GetRealHeight(79);
 | 
 |  |  |             btnColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
 | 
 |  |  |             btnColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
 | 
 |  |  |             btnColorLine.BorderWidth = 1;
 | 
 |  |  |             btnColorLine.BorderColor = 0xffcccccc;
 | 
 |  |  |             frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEvent);
 | 
 |  |  |             var frameColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             frameColorLine.UseClickStatu = false;
 | 
 |  |  |             frameColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColorLine.Width = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
 | 
 |  |  |             frameColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
 | 
 |  |  |             frameColorLine.BorderWidth = 1;
 | 
 |  |  |             frameColorLine.BorderColor = 0xffcccccc;
 | 
 |  |  |             frameColor.AddChidren(frameColorLine, ChidrenBindMode.NotBind);
 | 
 |  |  | 
 | 
 |  |  |             var btnColor = new NormalViewControl(this.GetPictrueRealSize(69), this.GetPictrueRealSize(69), false);
 | 
 |  |  |             //分两步计算,不然有可能它得出的结果有误差导致不居中
 | 
 |  |  |             int btnColorWidth = frameColorLine.Height - this.GetPictrueRealSize(7) - this.GetPictrueRealSize(7);
 | 
 |  |  |             var btnColor = new NormalViewControl(btnColorWidth, btnColorWidth, false);
 | 
 |  |  |             btnColor.Gravity = Gravity.Center;
 | 
 |  |  |             btnColor.Radius = (uint)this.GetPictrueRealSize(69) / 2;
 | 
 |  |  |             btnColor.Radius = (uint)btnColorWidth / 2;
 | 
 |  |  |             btnColor.BackgroundColor = backColor;
 | 
 |  |  |             btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEvent);
 | 
 |  |  |             frameColorLine.AddChidren(btnColor, ChidrenBindMode.NotBind);
 | 
 |  |  |             frameColor.ChangedChidrenBindMode(frameColorLine, ChidrenBindMode.BindEvent);
 | 
 |  |  | 
 | 
 |  |  |             //变更滑动条的颜色
 | 
 |  |  |             seekBar1.ProgressBarColor = backColor;
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |             frameColor.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColorView.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColor.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColorLine.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnRight.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  |                 var form = new PanelColorSelectForm();
 | 
 |  |  |                 form.AddForm(R1, G1, B1);
 | 
 |  |  |                 form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
 | 
 |  |  |                 {
 | 
 |  |  |                     R1 = Rcolor;
 | 
 |  |  |                     G1 = Gcolor;
 | 
 |  |  |                     B1 = Bcolor;
 | 
 |  |  | 
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// PanelColorBefore
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         private void PanelColor(NormalViewControl btnColor, SeekBarControl seekBar1, int R1, int G1, int B1)
 | 
 |  |  |         {
 | 
 |  |  |             var form = new PanelColorSelectForm();
 | 
 |  |  |             form.AddForm(R1, G1, B1);
 | 
 |  |  |             form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
 | 
 |  |  |             {
 | 
 |  |  |                 R1 = Rcolor;
 | 
 |  |  |                 G1 = Gcolor;
 | 
 |  |  |                 B1 = Bcolor;
 | 
 |  |  |                     this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16);
 | 
 |  |  |                     this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16);
 | 
 |  |  |                     this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16);
 | 
 |  |  | 
 | 
 |  |  |                 this.keyColorData.CloseColorR = Convert.ToString(Rcolor, 16);
 | 
 |  |  |                 this.keyColorData.CloseColorG = Convert.ToString(Gcolor, 16);
 | 
 |  |  |                 this.keyColorData.CloseColorB = Convert.ToString(Bcolor, 16);
 | 
 |  |  | 
 | 
 |  |  |                 btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
 | 
 |  |  |                 //变更滑动条的颜色
 | 
 |  |  |                 seekBar1.ProgressBarColor = btnColor.BackgroundColor;
 | 
 |  |  |                     btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
 | 
 |  |  |                     //变更滑动条的颜色
 | 
 |  |  |                     seekBar1.ProgressBarColor = btnColor.BackgroundColor;
 | 
 |  |  |                 };
 | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  | 
 |  |  |             btnClick.TextSize = 12;
 | 
 |  |  |             btnClick.TextColor = UserCenterColor.Current.TextGrayColor3;
 | 
 |  |  |             btnClick.TextID = R.MyInternationalizationString.uAfterClick;
 | 
 |  |  |             listview.AddChidren(btnClick);
 | 
 |  |  |             //背景
 | 
 |  |  |             listview.AddChidren(btnClick); | 
 |  |  |  | 
 |  |  |             //背景 | 
 |  |  |             var frameBack = new FrameLayout();
 | 
 |  |  |             frameBack.Y = Application.GetRealHeight(608);
 | 
 |  |  |             frameBack.Height = Application.GetRealHeight(395);
 | 
 |  |  | 
 |  |  |             frameColor.Y = Application.GetRealHeight(26);
 | 
 |  |  |             frameColor.X = listview.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
 | 
 |  |  |             frameBack.AddChidren(frameColor);
 | 
 |  |  | 
 | 
 |  |  |             //颜色
 | 
 |  |  |             var btnColorView = new NormalViewControl(Application.GetRealHeight(110), this.GetPictrueRealSize(49), false);
 | 
 |  |  |             btnColorView.Gravity = Gravity.CenterVertical;
 | 
 |  |  | 
 |  |  |             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
 | 
 |  |  | 
 | 
 |  |  |             //颜色外框
 | 
 |  |  |             var btnColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             btnColorLine.Width = Application.GetRealHeight(79);
 | 
 |  |  |             btnColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
 | 
 |  |  |             btnColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
 | 
 |  |  |             btnColorLine.BorderWidth = 1;
 | 
 |  |  |             btnColorLine.BorderColor = 0xffcccccc;
 | 
 |  |  |             frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEvent);
 | 
 |  |  |             var frameColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             frameColorLine.UseClickStatu = false;
 | 
 |  |  |             frameColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColorLine.Width = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
 | 
 |  |  |             frameColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
 | 
 |  |  |             frameColorLine.BorderWidth = 1;
 | 
 |  |  |             frameColorLine.BorderColor = 0xffcccccc;
 | 
 |  |  |             frameColor.AddChidren(frameColorLine, ChidrenBindMode.NotBind);
 | 
 |  |  | 
 | 
 |  |  |             var btnColor = new NormalViewControl(this.GetPictrueRealSize(69), this.GetPictrueRealSize(69), false);
 | 
 |  |  |             //分两步计算,不然有可能它得出的结果有误差导致不居中
 | 
 |  |  |             int btnColorWidth = frameColorLine.Height - this.GetPictrueRealSize(7) - this.GetPictrueRealSize(7);
 | 
 |  |  |             var btnColor = new NormalViewControl(btnColorWidth, btnColorWidth, false);
 | 
 |  |  |             btnColor.Gravity = Gravity.Center;
 | 
 |  |  |             btnColor.Radius = (uint)this.GetPictrueRealSize(69) / 2;
 | 
 |  |  |             btnColor.Radius = (uint)btnColorWidth / 2;
 | 
 |  |  |             btnColor.BackgroundColor = backColor;
 | 
 |  |  |             btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEvent);
 | 
 |  |  |             frameColorLine.AddChidren(btnColor, ChidrenBindMode.NotBind);
 | 
 |  |  |             frameColor.ChangedChidrenBindMode(frameColorLine, ChidrenBindMode.BindEvent);
 | 
 |  |  | 
 | 
 |  |  |             //变更滑动条的颜色
 | 
 |  |  |             seekBar1.ProgressBarColor = backColor;
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |             frameColor.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelAfterColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColorView.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelAfterColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColor.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelAfterColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColorLine.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelAfterColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnRight.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelAfterColor(btnColor, seekBar1, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  |                 var form = new PanelColorSelectForm();
 | 
 |  |  |                 form.AddForm(R1, G1, B1);
 | 
 |  |  |                 form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
 | 
 |  |  |                 {
 | 
 |  |  |                     R1 = Rcolor;
 | 
 |  |  |                     G1 = Gcolor;
 | 
 |  |  |                     B1 = Bcolor;
 | 
 |  |  | 
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// PanelColorBefore
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         private void PanelAfterColor(NormalViewControl btnColor, SeekBarControl seekBar1, int R1, int G1, int B1)
 | 
 |  |  |         {
 | 
 |  |  |             var form = new PanelColorSelectForm();
 | 
 |  |  |             form.AddForm(R1, G1, B1);
 | 
 |  |  |             form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
 | 
 |  |  |             {
 | 
 |  |  |                 R1 = Rcolor;
 | 
 |  |  |                 G1 = Gcolor;
 | 
 |  |  |                 B1 = Bcolor;
 | 
 |  |  |                     this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
 | 
 |  |  |                     this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
 | 
 |  |  |                     this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
 | 
 |  |  | 
 | 
 |  |  |                 this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
 | 
 |  |  |                 this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
 | 
 |  |  |                 this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
 | 
 |  |  | 
 | 
 |  |  |                 btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
 | 
 |  |  |                 //变更滑动条的颜色
 | 
 |  |  |                 seekBar1.ProgressBarColor = btnColor.BackgroundColor;
 | 
 |  |  |                     btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
 | 
 |  |  |                     //变更滑动条的颜色
 | 
 |  |  |                     seekBar1.ProgressBarColor = btnColor.BackgroundColor;
 | 
 |  |  |                 };
 | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 补充容器___________________________
 | 
 |  |  |         #region ■ 补充容器___________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 行数超过容器时,补一个空白FrameLayout,使之能滑动
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             return (uint)(0xFF000000 + R * 256 * 256 + G * 256 + B);
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  |         #endregion  | 
 |  |  |     }
 | 
 |  |  | }
 | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  |             set { btnSleepTime.Text = value; }
 | 
 |  |  |         }
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///睡眠时间
 | 
 |  |  |         ///睡眠时间  | 
 |  |  |         /// </summary>
 | 
 |  |  |         public NormalViewControl btnSleepTime = null; | 
 |  |  |         #endregion
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 屏幕亮度级别_______________________
 | 
 |  |  |         #region ■ 屏幕亮度级别_______________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 添加屏幕亮度级别控件
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             btnLevelView.Y = Application.GetRealHeight(54);
 | 
 |  |  |             btnLevelView.Gravity = Gravity.CenterVertical;
 | 
 |  |  |             btnLevelView.TextID = R.MyInternationalizationString.BackgroundLightColor;
 | 
 |  |  |             frameBack.AddChidren(btnLevelView);
 | 
 |  |  | 
 | 
 |  |  |             frameBack.AddChidren(btnLevelView); | 
 |  |  |  | 
 |  |  |             var frameColor = new FrameLayoutStatuControl();
 | 
 |  |  |             frameColor.UseClickStatu = false;
 | 
 |  |  |             frameColor.Width = Application.GetRealHeight(262);
 | 
 |  |  |             frameColor.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColor.Gravity = Gravity.CenterVertical;
 | 
 |  |  |             frameColor.X = frameBack.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
 | 
 |  |  |             frameBack.AddChidren(frameColor);
 | 
 |  |  | 
 | 
 |  |  |             //颜色
 | 
 |  |  |             frameColor.Y = Application.GetRealHeight(26);
 | 
 |  |  |             frameColor.X = listview.Width - ControlCommonResourse.XXLeft - Application.GetRealHeight(262);
 | 
 |  |  |             frameBack.AddChidren(frameColor); | 
 |  |  |  | 
 |  |  |             //颜色 | 
 |  |  |             var btnColorView = new NormalViewControl(Application.GetRealHeight(110), this.GetPictrueRealSize(49), false);
 | 
 |  |  |             btnColorView.Gravity = Gravity.CenterVertical;
 | 
 |  |  |             btnColorView.TextAlignment = TextAlignment.CenterRight;
 | 
 |  |  | 
 |  |  |             int R1 = Convert.ToInt32(this.keyColorData.OpenColorR, 16);
 | 
 |  |  |             int G1 = Convert.ToInt32(this.keyColorData.OpenColorG, 16);
 | 
 |  |  |             int B1 = Convert.ToInt32(this.keyColorData.OpenColorB, 16);
 | 
 |  |  |             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
 | 
 |  |  |             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1); | 
 |  |  |  | 
 |  |  |             //颜色外框 | 
 |  |  |             var frameColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             frameColorLine.UseClickStatu = false;
 | 
 |  |  |             frameColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColorLine.Width = this.GetPictrueRealSize(79);
 | 
 |  |  |             frameColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
 | 
 |  |  |             frameColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
 | 
 |  |  |             frameColorLine.BorderWidth = 1;
 | 
 |  |  |             frameColorLine.BorderColor = 0xffcccccc;
 | 
 |  |  |             frameColor.AddChidren(frameColorLine, ChidrenBindMode.NotBind);
 | 
 |  |  | 
 | 
 |  |  |             //颜色外框
 | 
 |  |  |             var btnColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             btnColorLine.Width = Application.GetRealHeight(79);
 | 
 |  |  |             btnColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  |             btnColorLine.X = btnColorView.Right + Application.GetRealHeight(18);
 | 
 |  |  |             btnColorLine.Radius = (uint)this.GetPictrueRealSize(79) / 2;
 | 
 |  |  |             btnColorLine.BorderWidth = 1;
 | 
 |  |  |             btnColorLine.BorderColor = 0xffcccccc;
 | 
 |  |  |             frameColor.AddChidren(btnColorLine, ChidrenBindMode.BindEvent);
 | 
 |  |  | 
 | 
 |  |  |             var btnColor = new NormalViewControl(this.GetPictrueRealSize(69), this.GetPictrueRealSize(69), false);
 | 
 |  |  |             //分两步计算,不然有可能它得出的结果有误差导致不居中
 | 
 |  |  |             int btnColorWidth = frameColorLine.Height - this.GetPictrueRealSize(7) - this.GetPictrueRealSize(7);
 | 
 |  |  |             var btnColor = new NormalViewControl(btnColorWidth, btnColorWidth, false);
 | 
 |  |  |             btnColor.Gravity = Gravity.Center;
 | 
 |  |  |             btnColor.Radius = (uint)this.GetPictrueRealSize(69) / 2;
 | 
 |  |  |             btnColor.Radius = (uint)btnColorWidth / 2;
 | 
 |  |  |             btnColor.BackgroundColor = backColor;
 | 
 |  |  |             btnColorLine.AddChidren(btnColor, ChidrenBindMode.BindEvent);
 | 
 |  |  | 
 | 
 |  |  |             frameColorLine.AddChidren(btnColor, ChidrenBindMode.NotBind);
 | 
 |  |  |             frameColor.ChangedChidrenBindMode(frameColorLine, ChidrenBindMode.BindEvent); | 
 |  |  |  | 
 |  |  |             var btnRight = new NormalViewControl(this.GetPictrueRealSize(58), this.GetPictrueRealSize(58), false);
 | 
 |  |  |             btnRight.UnSelectedImagePath = "Item/RightNext.png";
 | 
 |  |  |             btnRight.Y = Application.GetRealHeight(5);
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |             frameColor.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColorView.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColor.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnColorLine.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |             btnRight.ButtonClickEvent += (sender, e) =>
 | 
 |  |  |             {
 | 
 |  |  |                 PanelColor(btnColor, R1, G1, B1);
 | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  |                 var form = new PanelColorSelectForm();
 | 
 |  |  |                 form.AddForm(R1, G1, B1);
 | 
 |  |  |                 form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
 | 
 |  |  |                 {
 | 
 |  |  |                     R1 = Rcolor;
 | 
 |  |  |                     G1 = Gcolor;
 | 
 |  |  |                     B1 = Bcolor;
 | 
 |  |  | 
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// PanelColorSelectForm
 | 
 |  |  |         /// </summary>
 | 
 |  |  |         private void PanelColor(NormalViewControl btnColor, int R1, int G1, int B1)
 | 
 |  |  |         {
 | 
 |  |  |             var form = new PanelColorSelectForm();
 | 
 |  |  |             form.AddForm(R1, G1, B1);
 | 
 |  |  |             form.FinishSelectColorEvent += (Rcolor, Gcolor, Bcolor) =>
 | 
 |  |  |             {
 | 
 |  |  |                 R1 = Rcolor;
 | 
 |  |  |                 G1 = Gcolor;
 | 
 |  |  |                 B1 = Bcolor;
 | 
 |  |  |                     this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
 | 
 |  |  |                     this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
 | 
 |  |  |                     this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
 | 
 |  |  | 
 | 
 |  |  |                 this.keyColorData.OpenColorR = Convert.ToString(Rcolor, 16);
 | 
 |  |  |                 this.keyColorData.OpenColorG = Convert.ToString(Gcolor, 16);
 | 
 |  |  |                 this.keyColorData.OpenColorB = Convert.ToString(Bcolor, 16);
 | 
 |  |  | 
 | 
 |  |  |                 btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor);
 | 
 |  |  |                     btnColor.BackgroundColor = this.GetColorByRGB((byte)Rcolor, (byte)Gcolor, (byte)Bcolor); | 
 |  |  |                 };
 | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         } | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 节能模式行_________________________
 | 
 |  |  |  | 
 |  |  |         #region ■ 节能模式行_________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///  添加节能模式行
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  |             //添加接近感应
 | 
 |  |  |             this.AddProximitySensorsRow(frameBack);
 | 
 |  |  |             //底线
 | 
 |  |  |             //底线   | 
 |  |  |             var btnLine = new NormalViewControl(965, 5, true);
 | 
 |  |  |             btnLine.Height = 1;
 | 
 |  |  |             btnLine.X = Application.GetRealWidth(52);
 | 
 |  |  | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 显示选择设备睡眠时间_______________
 | 
 |  |  |         #region ■ 显示选择设备睡眠时间_______________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 显示选择设备睡眠时间的界面
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |         }
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 补充容器___________________________
 | 
 |  |  |         #region ■ 补充容器___________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 行数超过容器时,补一个空白FrameLayout,使之能滑动
 | 
 |  |  |         /// </summary>
 | 
 
 |  |  | 
 |  |  |             set { btnSleepTime.Text = value; }
 | 
 |  |  |         }
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///睡眠时间
 | 
 |  |  |         ///睡眠时间  | 
 |  |  |         /// </summary>
 | 
 |  |  |         public NormalViewControl btnSleepTime = null;
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 屏幕亮度级别_______________________
 | 
 |  |  |         #region ■ 屏幕亮度级别_______________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 添加屏幕亮度级别控件
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             int B1 = Convert.ToInt32(this.keyColorData.OpenColorB, 16);
 | 
 |  |  |             uint backColor = this.GetColorByRGB((byte)R1, (byte)G1, (byte)B1);
 | 
 |  |  | 
 | 
 |  |  |             //颜色外框
 | 
 |  |  |             //颜色外框  | 
 |  |  |             var btnColorLine = new FrameLayoutStatuControl();
 | 
 |  |  |             btnColorLine.Width = Application.GetRealHeight(79);
 | 
 |  |  |             btnColorLine.Height = this.GetPictrueRealSize(79);
 | 
 |  |  | 
 |  |  | 
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 节能模式行_________________________
 | 
 |  |  |         #region ■ 节能模式行_________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         ///  添加节能模式行
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |             }
 | 
 |  |  |             //添加接近感应
 | 
 |  |  |             this.AddProximitySensorsRow(frameBack);
 | 
 |  |  |             //底线
 | 
 |  |  |             //底线   | 
 |  |  |             var btnLine = new NormalViewControl(965, 5, true);
 | 
 |  |  |             btnLine.Height = 1;
 | 
 |  |  |             btnLine.X = Application.GetRealWidth(52);
 | 
 |  |  | 
 |  |  |             };
 | 
 |  |  |         }
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 显示选择设备睡眠时间_______________
 | 
 |  |  |         #region ■ 显示选择设备睡眠时间_______________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 显示选择设备睡眠时间的界面
 | 
 |  |  |         /// </summary>
 | 
 |  |  | 
 |  |  |         }
 | 
 |  |  |         #endregion
 | 
 |  |  | 
 | 
 |  |  |         #region ■ 补充容器___________________________
 | 
 |  |  |         #region ■ 补充容器___________________________  | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 行数超过容器时,补一个空白FrameLayout,使之能滑动
 | 
 |  |  |         /// </summary>
 | 
 
 |  |  | 
 |  |  |  | 
 |  |  |                         Application.RunOnMainThread(() => | 
 |  |  |                         { | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         }); | 
 |  |  |                     } | 
 |  |  |                 } | 
 
 |  |  | 
 |  |  |  | 
 |  |  |                         Application.RunOnMainThread(() => | 
 |  |  |                         { | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                         }); | 
 |  |  |                     } | 
 |  |  |                 } | 
 
 |  |  | 
 |  |  |                         new Tip() | 
 |  |  |                         { | 
 |  |  |                             MaxWidth = 150, | 
 |  |  |                             Text = Language.StringByID(R.MyInternationalizationString.BindFailed), | 
 |  |  |                             Text = Language.StringByID(R.MyInternationalizationString.BindFailed) + "(" + "5001_1" + ")", | 
 |  |  |                             Direction = AMPopTipDirection.Up, | 
 |  |  |                             CloseTime = 1 | 
 |  |  |                         }.Show(btnFinifh); | 
 |  |  | 
 |  |  |                         new Tip() | 
 |  |  |                         { | 
 |  |  |                             MaxWidth = 150, | 
 |  |  |                             Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError), | 
 |  |  |                             Text = Language.StringByID(R.MyInternationalizationString.BindUnknownError) + "(" + "5001_2" + ")", | 
 |  |  |                             Direction = AMPopTipDirection.Up, | 
 |  |  |                             CloseTime = 1 | 
 |  |  |                         }.Show(btnFinifh); | 
 
 |  |  | 
 |  |  |                                     RefreshBindListUI(); | 
 |  |  |                                     midVerticalScrolViewLayout.EndHeaderRefreshing(); | 
 |  |  |                                     CommonPage.Loading.Hide(); | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5007_1" + ")", Direction = AMPopTipDirection.None, CloseTime = 1 }.Show(Common.CommonPage.Instance); | 
 |  |  |                                 }); | 
 |  |  |                                 break; | 
 |  |  |                             } | 
 |  |  | 
 |  |  |                     { | 
 |  |  |                         Application.RunOnMainThread(() => | 
 |  |  |                         { | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                             CommonPage.Loading.Hide(); | 
 |  |  |                         }); | 
 |  |  |                         return; | 
 |  |  | 
 |  |  |                                     { | 
 |  |  |                                         Application.RunOnMainThread(() => | 
 |  |  |                                         { | 
 |  |  |                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                                             new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.uDeviceDeleteFail) + "(" + "5003_8" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                                             CommonPage.Loading.Hide(); | 
 |  |  |                                         }); | 
 |  |  |                                         return; | 
 |  |  | 
 |  |  |                             { | 
 |  |  |                                 Application.RunOnMainThread(() => | 
 |  |  |                                 { | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime), Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                                     new Tip() { MaxWidth = 150, Text = Language.StringByID(R.MyInternationalizationString.GwResponseOvertime) + "(" + "5003_9" + ")", Direction = AMPopTipDirection.None, CloseTime = 2 }.Show(CommonPage.Instance); | 
 |  |  |                                     CommonPage.Loading.Hide(); | 
 |  |  |                                 }); | 
 |  |  |                                 return; | 
 
old mode 100644
new mode 100755
 |  |  | 
 |  |  | using Shared.Common; | 
 |  |  | using ZigBee.Device; | 
 |  |  |  | 
 |  |  |  | 
 |  |  | namespace ZigBee.Common | 
 |  |  | { | 
 |  |  |     public static class Application | 
 |  |  | 
 |  |  |                     {
 | 
 |  |  |                         busSocket.BeginSendTo(bytes, 0, bytes.Length, SocketFlags.None, iPEndPoint, new AsyncCallback(asyncEndSend), null);
 | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                      | 
 |  |  |                 } | 
 |  |  |                 catch (Exception ex) | 
 |  |  |                 {
 | 
 |  |  | 
 |  |  |                 { | 
 |  |  |                     int bytesSent = busSocket.EndSendTo(iar); | 
 |  |  |                 } | 
 |  |  |                 catch(Exception ex) | 
 |  |  |                 catch(Exception ex)  | 
 |  |  |                 {
 | 
 |  |  |                     //调试用
 | 
 |  |  |                     if (Shared.Phone.UserCenter.UserCenterResourse.HideOption.WriteSocketReceiveDataToFile == 1)
 | 
 
old mode 100644
new mode 100755
 
old mode 100644
new mode 100755
 |  |  | 
 |  |  |                         { | 
 |  |  |                             RemoteMqttClient.UseConnectedHandler(async (e) =>
 | 
 |  |  |                             {
 | 
 |  |  |                                 DebugPrintLog($"远程连接成功"); | 
 |  |  |  | 
 |  |  |                                 DebugPrintLog($"远程连接成功");
 | 
 |  |  | 
 | 
 |  |  |                                 if (Config.Instance.Home.IsOthreShare == true)
 | 
 |  |  |                                 {
 | 
 |  |  |                                     //订阅一个成员被删除的主题
 | 
 |  |  | 
 |  |  |            .WithTcpServer(domain, int.Parse(port))
 | 
 |  |  |            .WithCredentials(connEmqUserName, connEmqPwd)
 | 
 |  |  |            .WithKeepAlivePeriod(TimeSpan.FromSeconds(20))
 | 
 |  |  |            .WithCleanSession() | 
 |  |  |            //.WithCommunicationTimeout(TimeSpan.FromSeconds(10)) | 
 |  |  |            .WithCleanSession()
 | 
 |  |  |            //.WithCommunicationTimeout(TimeSpan.FromSeconds(10))
 | 
 |  |  |            .Build();
 | 
 |  |  |                                 await DisConnectRemoteMqttClient("StartRemoteMqtt");
 | 
 |  |  |                                 await RemoteMqttClient.ConnectAsync(options, CancellationToken.None);
 | 
 
 |  |  | 
 |  |  |         /// </summary>
 | 
 |  |  |         public const int uAddFangyueEnvironmentPanelMsg = 21021;
 | 
 |  |  |         /// <summary>
 | 
 |  |  |         /// 窗帘面板 -> 长按面板左上角按键,所有按键{0}指示灯亮起,则配网成功
 | 
 |  |  |         /// 窗帘面板 -> 长按面板左上角按键,所有按键{0}指示灯亮起,则配网成功  | 
 |  |  |         /// </summary>
 | 
 |  |  |         public const int uAddCurtaunPanelMsg = 21022;
 | 
 |  |  |         /// <summary>
 | 
 
old mode 100755
new mode 100644
 |  |  | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentButtonSettionForm.cs" />
 | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentLightSettionForm.cs" />
 | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueEnvironmentTargetForm.cs" />
 | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirBackLightSettionForm.cs" />
 | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFreshAirButtonSettionForm.cs" />
 | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelFangyueFunctionSettionForm.cs" />
 | 
 |  |  |     <Compile Include="$(MSBuildThisFileDirectory)Phone\UserCenter\Device\Panel\PanelSimpleEnvironmentButtonSettionForm.cs" />
 |