在上一篇文章中使用Xamarin实现控制了一下祖传的PLC;基本的功能也就完事了,这不总觉得少点最基本的配置;那就趁着激情还在赶紧再去完善一下,不然激情已过就懒得去摸索了;来看看最终咱实现的视频效果:
1、关于弹窗,直接使用开源的PopupPage
Install-Package Rg.Plugins.Popup -Version 2.1.0
2、调用和关闭
PopupNavigation.Instance.PushAsync(new SettingPage());
PopupNavigation.Instance.PopAsync(true);
3、验证IP能否ping通
Install-Package Xam.Plugin.Connectivity -Version 3.2.0
4、具体调用方式
CrossConnectivity.Current.IsReachable(ip, 200);
5、关于验证IP失败抖动窗口,代码:
Task.Factory.StartNew(new Action(() =>
{for (int i = 0; i <2; i++) {int offsetX = ran.Next(10, 30);int offsetY = ran.Next(30,60);double x = this.X - offsetX;double y = this.Y - offsetY;this.Content.TranslateTo(x,y, 100);System.Threading.Thread.Sleep(100);x = x+ offsetX;y = y + offsetY;this.Content.TranslateTo(x, y, 100);System.Threading.Thread.Sleep(100);}
}));
6、毕竟简单配置存储,那就直接文本就完事了
var cofnigFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), plcConfigFile);
using (var writer = File.CreateText(cofnigFile))
{string content = $"{PlcConfig.IP}#{PlcConfig.Port}";await writer.WriteLineAsync(content);
}
7、配置文件的读取
var cofnigFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), plcConfigFile);
if (cofnigFile != null && File.Exists(cofnigFile))
{using (var reader = new StreamReader(cofnigFile, true)){string line = await reader.ReadToEndAsync();if (!string.IsNullOrEmpty(line)){string[] strs = line.Split('#');if (strs != null && strs.Length == 2){plcConfig.IP = strs[0];plcConfig.Port = Convert.ToInt32(strs[1]);}}}
}
最终简单的效果先这样吧;以后有时间的话,可以再去摸索一下更复杂的效果;编程不息、Bug不止、无Bug、无生活;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下,多谢您的支持!