通过达纳·沃利|更新日期:04/09/2021
您目前是否在CRBasic数据记录器程序中使用SMSSend()通过Campbell Scientific CELL2XX内部或外部蜂窝模块发送SMS消息?关于我们最近所做的一些影响SMSSend()工作方式的改进,您应该知道一些事情。
随着CR300版本10.3、CR1000X版本5和CR6版本11操作系统的发布,我们做了一些改进,以便您可以使用SMSSend()更有效地将消息发送给多个收件人,或将多个消息发送给单个收件人。然而,这些改进需要对使用SMSSend()的现有CRBasic程序进行更改。如果您正在数据记录器程序中使用SMSSend(),并计划安装这个最新的操作系统,请继续阅读本文,了解这些更改的好处,以及如何修改程序以适应这些更改。
你可能已经在CR300、CR1000X和CR6操作系统的修订历史中注意到这个警告:
更新了SMSSend()来处理数组。升级到这个操作系统需要更新运行旧SMSSend()实例的CRBasic程序。
SMSSend()曾经是一个函数。现在它是一个支持数组的指令。在CRBasic编程中,在如何在程序中使用指令和函数方面存在细微的差别。例如,一个函数可以作为参数在指令,而是一个指令不能作为另一个参数使用指令.CRBasic中最常见的函数是数学函数,如LOG()或ASIN()。
对SMSSend()进行了更改,这样数据记录器就可以使用一次指令执行将消息发送给多个收件人(或多个消息发送给同一收件人)。为了更好地理解更改的原因,我可以解释执行SMSSend()时发生了什么。
蜂窝模块必须放在一个不同的模式发送SMS消息。这需要时间,并可能破坏IP通信。对于之前版本的SMSSend(),如果在短时间内发送了多条消息,则模块将随着每条消息的发送而进入和退出该模式。短信可能会被备份,而蜂窝模块可能无法满足需求。
在SMSSend()的新格式中,多个收件人和多个消息都是在一个指令中使用数组定义的。蜂窝模块只被置于其特殊模式一次,所有的信息都被发送出去,然后它就恢复正常工作。此更改可以显著提高发送消息的速度。
让我们看看前面的SMSSend()函数的格式,以及使用代码片段的新SMSSend()指令。
之前版本的SMSSend()只有两个参数:
为了监视成功或失败,您将结果返回给一个变量。
Public SMSResultCode, PhoneNumber, SMSMessage '为函数声明变量SMSResultCode = SMSSend (PhoneNumber, SMSMessage) ' SMSResultCode保存函数的结果
新的SMSSend()指令有四个参数:
Public SMSResultCode, PhoneNumber, SMSMessage '为指令SMSSend (SMSResultCode, Swath, PhoneNumber, SMSMessage)声明变量' SMSResultCode现在是指令中的一个变量
如果你想在数据记录器程序中看到这条指令,请查看CRBasic联机帮助中的SMSSend()示例程序:
当使用更新后的SMSSend()指令时,有几点需要考虑:
SMSSend()指令是一种很好的方式,可以通过SMS消息发送警报,甚至在其他数据收集方法不可用的情况下传输数据。您是否在应用程序中使用SMSSend() ?如果是这样,请在下面的评论中告诉我们!
评论
请登录或注册置评。