请选择 进入手机版 | 继续访问电脑版

UBAINS

 找回密码
 立即注册
搜索
热搜: UBAINS
查看: 929|回复: 0

[软件设置] 从中控主机中读取配置项数据实现一个程序用多个主机

[复制链接]

71

主题

75

帖子

706

积分

公司员工

积分
706
发表于 2021-11-8 12:09:20 | 显示全部楼层 |阅读模式
本帖最后由 zhengxb 于 2021-11-16 08:30 编辑

有些项目中控主机比较多,存在项目控制设备差不多,或者项目设备控制一致,但也存在IP地址不一致,可通过配置项的方式实现一个程序传多个主机
具体
/***********************配置文件*************************************
注:
确保左侧Tree Pane的DEVICE选项已添加Controller子项,固件中控固件为20210140及以上版本
1.通过ftpuser上传Custom.ini文件至System/Setting/Custom.ini目录下,
2.变量定义方法var vATSIP = getCustomConf("master","vATSIP","");
  getCustomConf对应的参数分别为Custom.ini文件对应的组,子项,无选项时的默认值
3.在Controller的接收方法里,接收到数据赋值,case "A":B = data.value;break;
  A为配置文件的子项,B为变量,A和B可以一样,根据命名
4.涉及到初始化实例的IP配置项需延时3秒调用,确保从配置文件获取到IP地址再创建实例,
  对应创建或调用方法有涉及到实例的晚创建或变量同样也延时个5秒
  如,_TCP方法:
    var vATSIP = getCustomConf("master","vATSIP","");
    var devATS;
    delay(5,function(){
       devATS = new _TCP(vATSIP,setVoiceData)
    });
**********************************************************************/
function getCustomConf(group,item,value)
{
        sendCodeString("Controller",JSON.stringify({"action":"getConf","group":group,"item":item,"value":value})+"\r\n");
        return value
}

setStringReceive("Controller",getReceiveCon);
function getReceiveCon(vReceiveData)
{
    sendLog("xxxxxxx",vReceiveData);
        var data = JSON.parse(vReceiveData);
        if(data.action=="getConf" && data.group=="master"){
                switch(data.item){
                        case "vATSIP":vATSIP= data.value;break;
                }
        }
}
//默认配置为192.168.1.91
var vATSIP = getCustomConf("master","vATSIP","");
var devATS;
delay(5,function(){
       devATS = new _TCP(vATSIP,setVoiceData)
});


//Custom.ini文件内格格式如下
[master]
#IP地址
vATSIP= 192.168.1.155

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

Archiver|手机版|小黑屋|BBS.UBAINSYUN.COM

GMT+8, 2022-8-11 10:43 , Processed in 0.033275 second(s), 18 queries .

Powered by UBAINS! X3.4

© 2001-2017 UBAINS Inc.

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