通过达纳·沃利|更新:04/09/2021 |评论:0

您目前是否在CRBasic数据记录器程序中使用SMSSend()通过坎贝尔科学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()时会发生什么。
手机模块必须处于不同的模式才能发送短信。这需要时间,并可能对IP通信造成干扰。在先前版本的SMSSend()中,如果在短时间内发送多个消息,则模块将随着每条消息的发送而进入或退出此模式。短信可能会被备份,而手机模块可能无法跟上需求。
使用SMSSend()的新格式,在单个指令中使用数组定义多个收件人和多个消息。蜂窝模块只进入它的特殊模式一次,所有的消息都被发送出去,然后它就恢复正常运行。此更改可以显著提高发送消息的速度。
让我们看看前面的SMSSend()函数的格式和使用代码片段的新的SMSSend()指令。
之前版本的SMSSend()只有两个参数:
为了监视成功或失败,您将结果返回给一个变量。
Public SMSResultCode, PhoneNumber, SMSMessage ' declare variables for the function SMSResultCode = SMSSend (PhoneNumber, SMSMessage)
新的SMSSend()指令有四个参数:
Public SMSResultCode, PhoneNumber, SMSMessage ' declare variables for the指令SMSSend (SMSResultCode, Swath, PhoneNumber, SMSMessage) ' SMSResultCode现在是指令中的一个变量
如果你想看到这个指令在数据记录器程序中使用,请查看CRBasic联机帮助中的SMSSend()示例程序:
当使用更新后的SMSSend()指令时,有几件事需要考虑:
SMSSend()指令是通过SMS消息发送警报的一个很好的方法,甚至在其他数据收集方法不可用的情况下传输数据。您是否在应用程序中使用了SMSSend() ?如果是的话,请在下面的评论中告诉我们!
评论
请登录或注册置评。