统一对象消息编程详解——命令行消息输入模块

本文介绍TLMsgScanner命令行消息输入模块的功能与使用,该模块允许通过命令行向指定模块发送消息,控制参数调整、任务启动等操作。文章详细解释了如何配置接收模块、指令及参数,确保消息安全及正确传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在很多情况下,程序需要命令行的输入控制,如更改参数、重启等。TLMsgScanner为命令行消息输入模块,可以通过命令行给任何一个模块发送消息。如启动了TLMsgScanner,则可以以下参数发送消息:

  m=modulename  a=action   p1=value1   p2=value2

  m:接收消息的模块    a:消息中的指令action   p1 、p2 为消息中的参数 。m、 a 为必须项。例如要给定时案例中的定时模块发送消息:

 m=myTaskManger   a=startTask   taskid=pcboy_eat

配置文件:

<?xml version="1.0" encoding="UTF-8" ?>
<moduleConfig>
    <params>
        <defaultModule value="myTaskManger"/>
        <defaultAction value="setTaskStatus"/>
    </params>
    <msgToModules>
        <module name="HSServer"  actions="info;warn;debug"  ></module>
        <module name="myTaskManger"  actions="setTaskStatus;shutdown"  ></module>
    </msgToModules>
</moduleConfig>

为防止消息误发及安全,msgToModules 项定义接收消息的模块 及可发送的指令 actions,上例配置中定义了允许接收命令行的模块为 HSServer及 myTaskManger, 其中myTaskManger 只允许发送指令 setTaskStatus、shutdown。

为方便,定义了默认模块defaultModule  及默认指令defaultAction ,当不设定m 及 a时,采用默认模块及默认的指令。

命令行消息输入模块的启动与其他模块一样,可以在程序入口函数中启动,或工厂boot中启动 ,或被控制模块中等。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值