package main import ( "github.com/robfig/cron" "log" "net" "os" "strconv" "time" ) var err error func main() { go gw_router() go serial_run() c := cron.New() //获取数据防抖处理时间配置 if conf.SYNEXTENSIONTIME { go getConf() } //有线方案,发送全部数据,包括gateway配置 if conf.PROCATEGORY == PRO_CATEGORY_WIRED { go send_data(CODE1001) } //一分钟一次 同步数据 c.AddFunc("0, *, *, *, *, *", func() { if conf.SYNDATA { if conf.PROCATEGORY == PRO_CATEGORY_WIRED { send_data(CODE1001) }else if conf.PROCATEGORY == PRO_CATEGORY_WIRELESS{ yunhorn_hb_dpark_v1() } } }) // c.AddFunc("*/10, *, *, *, *, *", func() { // devices := []Device{} // log.Println(string(build_data(1001,devices))) // }) c.AddFunc("*/30, *, *, *, *, *", func() { //dpark客户需要拉取api获取数据防抖时间配置 if conf.SYNEXTENSIONTIME { getConf() } }) c.AddFunc("0, */10, *, *, *, *", savedata_cron) c.AddFunc("0, 0, 0, *, *, *", insertdata) c.AddFunc("0, 0, *, *, *, *", get_weather) //定时更新today字段,当前日期 c.AddFunc("0, *, *, *, *, *", func(){ t := time.Now() today = t.Format("2006-01-02") }) c.Start() if conf.OPENTCPSETVER { //开启mqtt默认认定是无线方案 go record_log_channel() tcp_port := strconv.Itoa(conf.TCPPORT) listener, err := net.Listen("tcp", "0.0.0.0:"+tcp_port) if err != nil { log.Printf("listen fail, err: %v\n", err) return } for { conn, err := listener.Accept() if err != nil { log.Printf("accept fail, err: %v\n", err) continue } // go process(conn) go handleConn(conn) } } else { //如果不启动tcpserver,则需要执行这里 让程序不退出 select {} } } func check(err error) { if err != nil { log.Println(err) os.Exit(1) } }