| | |
| | | { |
| | | public class Method |
| | | { |
| | | /// <summary> |
| | | /// 程序主入口 |
| | | /// </summary> |
| | | /// <param name="frame"></param> |
| | | /// <param name="function"></param> |
| | | public void MainView(FrameLayout frame, Entity.Function function,Action action) |
| | | { |
| | | Pir pirDevice = new Pir(); |
| | | if (function != null) |
| | | {//数据转换 |
| | | pirDevice.name = function.name; |
| | | pirDevice.deviceId = function.deviceId; |
| | | pirDevice.sid = function.sid; |
| | | pirDevice.online = function.online; |
| | | } |
| | | Pir.currPir = pirDevice; |
| | | GetControlList(frame, () => |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | var page = new PirMain(); |
| | | MainPage.BasePageView.AddChidren(page); |
| | | page.Show(); |
| | | MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1; |
| | | page.BackAction += () => { |
| | | action?.Invoke(); |
| | | }; |
| | | }); |
| | | }, Pir.currPir); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 管理位置 |
| | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取遥控器列表 |
| | | /// 获取所有红外宝遥控器列表 |
| | | /// </summary> |
| | | /// <param name="action">回调函数</param> |
| | | public static void GetControlList(Action action) |
| | |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取单个红外宝遥控器列表 |
| | | /// </summary> |
| | | /// <param name="action">回调函数</param> |
| | | public static void GetControlList(FrameLayout frame ,Action action, Pir pirDevice) |
| | | { |
| | | Loading loading = new Loading(); |
| | | frame.AddChidren(loading); |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | |
| | | try |
| | | { |
| | | var responsePackNew = PirSend.ControlList(pirDevice); |
| | | if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") |
| | | { |
| | | var jArray = JArray.Parse(responsePackNew.Data.ToString()); |
| | | for (int a = 0; a < jArray.Count; a++) |
| | | { |
| | | var jay = jArray[a]; |
| | | //数据返序列化为Logic对象 |
| | | var str = Newtonsoft.Json.JsonConvert.SerializeObject(jay); |
| | | var pirJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<Entity.Function>(str); |
| | | if (pirJosn != null) |
| | | { |
| | | if (null == pirDevice.FunctioList.Find((c) => c.sid == pirJosn.sid)) |
| | | { |
| | | pirDevice.FunctioList.Add(pirJosn); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | |
| | | } |
| | | catch { } |
| | | |
| | | |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | loading.Hide(); |
| | | action(); |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 获取设备详情通过(spk,sid) |
| | | /// </summary> |
| | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 发送命令线程 |
| | | /// </summary> |
| | | /// <param name="control">发送数据对象</param> |
| | | /// <param name="action">回调函数</param> |
| | | /// <param name="str">判断字符</param> |
| | | /// <param name="view">判断log父控件</param> |
| | | /// <param name="frame">log父控件</param> |
| | | public void ThreadSend(Control control, Action<ResponsePackNew> action, string str, FrameLayout frame) |
| | | /// <param name="dialog">log父控件</param> |
| | | public static void ThreadSend(Control control, Action<ResponsePackNew> action, string str,string view, FrameLayout frame, Dialog dialog) |
| | | { |
| | | |
| | | //加载log |
| | | Loading loading = new Loading(); |
| | | frame.AddChidren(loading); |
| | | if (view == "dialog") |
| | | { |
| | | dialog.AddChidren(loading); |
| | | } |
| | | else |
| | | { |
| | | frame.AddChidren(loading); |
| | | } |
| | | loading.Start(); |
| | | ResponsePackNew responsePackNew = null; |
| | | new System.Threading.Thread(() => |
| | |
| | | responsePackNew = PirSend.DeviceRename(control.deviceId, control.name); |
| | | } |
| | | else if (str == "删除按键") { |
| | | // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name); |
| | | } |
| | | } |
| | | catch { } |
| | | finally |
| | | { |
| | | Application.RunOnMainThread(() => |
| | | { |
| | | loading.Hide(); |
| | | if (responsePackNew != null && responsePackNew.Code == "0" && responsePackNew.Data.ToString() != "") |
| | | { |
| | | action(responsePackNew); |
| | | } |
| | | else |
| | | { |
| | | Method method = new Method(); |
| | | method.ErrorShow(responsePackNew, ""); |
| | | } |
| | | |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | { IsBackground = true }.Start(); |
| | | |
| | | |
| | | } |
| | | /// <summary> |
| | | /// 发送命令线程 |
| | | /// </summary> |
| | | /// <param name="control">发送数据对象</param> |
| | | /// <param name="action">回调函数</param> |
| | | /// <param name="str">判断字符</param> |
| | | /// <param name="dialog">log父控件</param> |
| | | public void ThreadSend(Control control, Action<ResponsePackNew> action, string str,Dialog dialog) |
| | | { |
| | | //加载log |
| | | Loading loading = new Loading(); |
| | | dialog.AddChidren(loading); |
| | | ResponsePackNew responsePackNew = null; |
| | | loading.Start(); |
| | | new System.Threading.Thread(() => |
| | | { |
| | | try |
| | | { |
| | | |
| | | |
| | | if (str == "删除") |
| | | { |
| | | responsePackNew = PirSend.DeleteDevice(control.deviceId); |
| | | } |
| | | else if (str == "修改名称") |
| | | { |
| | | |
| | | responsePackNew = PirSend.DeviceRename(control.deviceId, control.name); |
| | | } |
| | | else if (str == "删除按键") |
| | | { |
| | | // responsePackNew = PirSend.CodeRemove(control.deviceId, control.name); |
| | | } |
| | | } |