Xamarin效果第十二篇之控制祖传PLC

Posted dotNET跨平台

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xamarin效果第十二篇之控制祖传PLC相关的知识,希望对你有一定的参考价值。

在前面使用DllImport去调用了公司祖传的PLC;坑也被坑了一下,但是总感觉还是基于祖传的Dll木有一点意思;毕竟就是一个数据的监控和开关量的控制;要是直接能用我的屌丝机控制一下就可以好好开(Z)心(B);毕竟前面咱也是玩过一点点Xamarin的,那就再次拾起来去玩耍一下吧;来看看最终咱实现的视频效果:

1、在CollectionView中通过绑定后台集合实现了单通道控制

<CollectionView ItemsSource="Binding CurrentDataContext"/>

2、CollectionView的ItemTemplate

<CollectionView.ItemTemplate>
    <DataTemplate>
        <StackLayout Orientation="Horizontal">
            <Label Text="Binding ChannelID,StringFormat='D0-0'" VerticalTextAlignment="Center" WidthRequest="45"/>
            <Ellipse WidthRequest="20" HeightRequest="20" VerticalOptions="Center"
                                             Fill="Binding OpenStatus,Converter=StaticResource OpenStatusToColorConverter"/>
            <Switch OnColor="Gray" ThumbColor="White" HorizontalOptions="EndAndExpand">
                <Switch.GestureRecognizers>
                    <TapGestureRecognizer Command="Binding Source=RelativeSource AncestorType=x:Type vm:MainViewModel,Path=SwitchChannelStatusCmd"
                                                                  CommandParameter="Binding ."/>
                </Switch.GestureRecognizers>
            </Switch>
        </StackLayout>
    </DataTemplate>
</CollectionView.ItemTemplate>

3、结果在ItemTemplate中的Switch通过GestureRecognizers绑定后后台Command不起作用,最后通过命令实现

<Switch.Behaviors>
    <behaviorsPack:EventToCommandBehavior EventName="Toggled"
      Command="Binding Path=BindingContext.SwitchChannelStatusCmd,Source=x:Reference Name=MyMainPage" 
      CommandParameter="Binding"/>
</Switch.Behaviors>

4、对于祖传的dll没有文档,只能用最笨的方式去抓包然后记录,归纳总结:

message = $ ":0010003nID00010002Bend\\r\\n";

5、然后最简单UDP客户端

IPAddress  iPAddress  = IPAddress.Parse( ip );
IPEndPoint  iPEndPoint  = new IPEndPoint( iPAddress, port );
UdpClient  udpClient  = new UdpClient();
udpClient.Connect( iPEndPoint );
byte[] sendData = Encoding.ASCII.GetBytes( message );
‍

最终简单的效果先这样吧;以后有时间的话,可以再去摸索一下更复杂的效果;编程不息、Bug不止、无Bug、无生活;改bug的冷静、编码的激情、完成后的喜悦、挖坑的激动 、填坑的兴奋;这也许就是屌丝程序员的乐趣吧;今天就到这里吧;希望自己有动力一步一步坚持下去;生命不息,代码不止;大家抽空可以看看今天分享的效果,有好的意见和想法,可以在留言板随意留言;我看到后会第一时间回复大家,多谢大家的一直默默的关注和支持!如果觉得不错,那就伸出您的小手点个赞并关注一下,多谢您的支持!

以上是关于Xamarin效果第十二篇之控制祖传PLC的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin效果第二篇之公众号App

Windows界面编程第十二篇 位图显示特效 飞入效果与伸展效果

javaWeb核心技术第十二篇之分页和条件

java基础第十二篇之集合增强for循环迭代器和泛型

Xamarin效果第十六篇之GIS添加Mark

Xamarin效果第十七篇之AR GIS