2020-06-28 18:15:50 +08:00
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
2020-08-12 17:20:49 +08:00
|
|
|
|
"fmt"
|
2020-08-19 09:14:25 +08:00
|
|
|
|
"goAdapter/device"
|
|
|
|
|
"goAdapter/httpServer"
|
2020-12-03 16:39:22 +08:00
|
|
|
|
"goAdapter/report"
|
2020-08-19 09:14:25 +08:00
|
|
|
|
"goAdapter/setting"
|
2021-03-31 22:41:09 +08:00
|
|
|
|
|
|
|
|
|
"github.com/robfig/cron"
|
2020-07-06 09:51:05 +08:00
|
|
|
|
)
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-08-19 09:14:25 +08:00
|
|
|
|
func main() {
|
|
|
|
|
|
2020-08-19 22:49:31 +08:00
|
|
|
|
/**************获取配置文件***********************/
|
|
|
|
|
setting.GetConf()
|
|
|
|
|
|
2021-02-20 21:19:11 +08:00
|
|
|
|
setting.LogerInit()
|
2020-08-12 17:20:49 +08:00
|
|
|
|
|
2020-06-28 18:15:50 +08:00
|
|
|
|
//记录起始时间
|
2020-07-06 09:51:05 +08:00
|
|
|
|
setting.GetTimeStart()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2021-04-26 16:05:31 +08:00
|
|
|
|
setting.Logger.Debugf("%s %s", setting.SystemState.Name, setting.SystemState.SoftVer)
|
2020-07-07 18:08:01 +08:00
|
|
|
|
|
2020-12-31 13:20:10 +08:00
|
|
|
|
setting.MemoryDataStream = setting.NewDataStreamTemplate("内存使用率")
|
|
|
|
|
setting.DiskDataStream = setting.NewDataStreamTemplate("硬盘使用率")
|
|
|
|
|
setting.DeviceOnlineDataStream = setting.NewDataStreamTemplate("设备在线率")
|
|
|
|
|
setting.DevicePacketLossDataStream = setting.NewDataStreamTemplate("通信丢包率")
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
|
|
|
|
/**************网口初始化***********************/
|
2020-08-01 17:22:06 +08:00
|
|
|
|
setting.NetworkParaRead()
|
2020-11-19 20:22:26 +08:00
|
|
|
|
setting.NetworkParamList.GetNetworkParam()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
|
|
|
|
/**************变量模板初始化****************/
|
2020-07-06 09:51:05 +08:00
|
|
|
|
device.DeviceNodeManageInit()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-09-17 10:55:33 +08:00
|
|
|
|
/**************NTP校时初始化****************/
|
|
|
|
|
setting.NTPInit()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
|
|
|
|
/**************创建定时获取网络状态的任务***********************/
|
|
|
|
|
// 定义一个cron运行器
|
2020-09-17 10:55:33 +08:00
|
|
|
|
cronProcess := cron.New()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
// 定时5秒,每5秒执行print5
|
2020-12-03 16:39:22 +08:00
|
|
|
|
_ = cronProcess.AddFunc("*/5 * * * * *", setting.NetworkParamList.GetNetworkParam)
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-08-12 17:20:49 +08:00
|
|
|
|
// 定时
|
2020-11-19 20:22:26 +08:00
|
|
|
|
for k, v := range device.CollectInterfaceMap {
|
|
|
|
|
device.CommunicationManage = append(device.CommunicationManage, device.NewCommunicationManageTemplate(v))
|
2020-09-05 13:01:03 +08:00
|
|
|
|
//CommunicationManage.CollInterfaceName = v.CollInterfaceName
|
2020-11-19 20:22:26 +08:00
|
|
|
|
str := fmt.Sprintf("@every %dm%ds", v.PollPeriod/60, v.PollPeriod%60)
|
|
|
|
|
setting.Logger.Infof("str %+v", str)
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-12-03 16:39:22 +08:00
|
|
|
|
_ = cronProcess.AddFunc(str, device.CommunicationManage[k].CommunicationManagePoll)
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-11-19 20:22:26 +08:00
|
|
|
|
go device.CommunicationManage[k].CommunicationManageDel()
|
2020-08-12 17:20:49 +08:00
|
|
|
|
}
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-08-12 17:20:49 +08:00
|
|
|
|
// 定时60秒,定时获取系统信息
|
2020-12-03 16:39:22 +08:00
|
|
|
|
_ = cronProcess.AddFunc("*/60 * * * * *", setting.CollectSystemParam)
|
2020-09-17 10:55:33 +08:00
|
|
|
|
|
|
|
|
|
// 每天0点,定时获取NTP服务器的时间,并校时
|
2020-12-31 13:20:10 +08:00
|
|
|
|
_ = cronProcess.AddFunc("0 0 0 * * ?", func() {
|
2020-09-17 10:55:33 +08:00
|
|
|
|
setting.NTPGetTime()
|
|
|
|
|
})
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-08-15 10:21:39 +08:00
|
|
|
|
// 定时60秒,mqtt发布消息
|
|
|
|
|
//cronGetNetStatus.AddFunc("*/30 * * * * *", mqttClient.MqttAppPublish)
|
|
|
|
|
|
2020-09-17 10:55:33 +08:00
|
|
|
|
cronProcess.Start()
|
|
|
|
|
defer cronProcess.Stop()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-11-19 20:22:26 +08:00
|
|
|
|
report.ReportServiceInit()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
|
2020-12-31 13:20:10 +08:00
|
|
|
|
for _, v := range device.CommunicationManage {
|
|
|
|
|
v.CommunicationManagePoll()
|
|
|
|
|
}
|
|
|
|
|
|
2020-11-19 20:22:26 +08:00
|
|
|
|
httpServer.RouterWeb()
|
2020-06-28 18:15:50 +08:00
|
|
|
|
}
|