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

在前面使用DllImport去调用了公司祖传的PLCde832dfb1f05eaaad25aaffa27c5839d.png;坑也被坑了一下,但是总感觉还是基于祖传的Dll木有一点意思;毕竟就是一个数据的监控和开关量的控制;要是直接能用我的屌丝机控制一下就可以好好开(Z)心(B)86bd034e8cc649279f845b4562b66fb2.png;毕竟前面咱也是玩过一点点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没有文档,只能用最笨的方式去抓包然后记录0665e4e58e807643d5690c64aa5e4323.png,归纳总结:

message = $ ":0010003{nID}00010002B{end}\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 );
‍

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值