吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3400|回复: 2
收起左侧

[其他原创] vb.net加载vbs实现事后多参数逻辑判断

[复制链接]
WaterDropTec 发表于 2017-3-15 09:57
本帖最后由 WaterDropTec 于 2018-12-18 12:49 编辑

大大们,首次发帖,如有违规请删除,谢谢

背景:由于单位的一套设备监控系统过于陈旧,很多的设备报警信息都报不出来,也没有办法实现后增(在不修改源代码的情况下)的报警逻辑,而监控的维保也已经过期啦,领导让我做个能够实现上述不足的辅助出来,一开始寻思着也不难,就直接答应了,后来发现这是个坑啊,但是还是用了半个月写了出来,个中点滴收获与各位分享下,希望能够对各位有点帮助

技术:通信采用的BacNet智能楼宇通信协议(这个协议看了我一个多星期,头都大了),编程采用的是vb.net(本人也就会用这个写点稍微大点的程序)

好了,废话不多说进入正文

先上一个程序主图:

再来一张报警配置页面:


页面什么的就不多解释了,直接说思路了:


BacNet通信

这个通信协议的文档在网上有很多,随便下载一个,粗略看一看,有个概念就好了因为我的目的就是做通通信,所以我在对bacnet有了初步的概念后,直接在网上查找相关代码,试了很多代码,多少都有点问题,最后找个这个yetanotherbacnetexplorer-code-221-trunk,这个是C#的,直接修改成vb.net的,调试,通过了,这个代码不是本人写的,就不放出来了,需要的朋友自己查找下



实现多参数输入的逻辑
在程序完成的情况下,如何实现后续自建逻辑,是我遇到的第二个问题,由于本人技术有限,最初的想法是通过主程序调用动态库的形式,在每次新建一个报警逻辑的时候需要生成一个dll文件,然后再由主程序调用,但这种方式只是稍微方便了一点,于是有了第二步本人想找个无非就是输入参数不定,报警逻辑不定,既然如此,像这点要求vbs即可完成,然后就有了通过主程序调用vbs实现新建报警逻辑的功能直接上代码,代码很简单,仅是实现了参数输入(para变量),及报警逻辑(纯vbs代码,CoderFunction变量),通过CreateObject调用vbs对象

Public Function AlarmVBS(para As String, CodeFunction As String)
        Dim VBS
        VBS = CreateObject("ScriptControl")
        VBS.language = "VBScript"
        Try
            VBS.addcode(CodeFunction)
        Catch ex As Exception
            ErrLogSub(ex, "Module1中Alarm!")
            Return Nothing
        End Try
        If para.EndsWith("@") Then
            para = para.Remove(para.Count - 1, 1)
        End If
        Dim tmps() = para.Split(New [Char]() {"@"c})
        Dim p(tmps.Count - 1)
        For i = 0 To tmps.Count - 1
            Try
                p(i) = CSng(tmps(i))
            Catch ex As Exception
                p(i) = IIf(tmps(i), 1, 0)
            End Try
        Next
        Try
            Return VBS.run("Main", p)
        Catch ex As Exception
            Return Nothing
        End Try
    End Function

原理都很简单,自己mark下,并分享给可能需要的朋友,

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

ycc714 发表于 2017-3-15 10:01
抢个沙发,感谢楼主的分析
夏末moent 发表于 2017-3-15 10:40
欢迎分析讨论交流,吾爱破解论坛有你更精彩!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 04:41

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表