95 lines
1.7 KiB
Go
95 lines
1.7 KiB
Go
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)
|
||
c.AddFunc("0, *, *, *, *, *", func(){
|
||
t := time.Now()
|
||
today = t.Format("2006-01-02")
|
||
})
|
||
c.Start()
|
||
|
||
if conf.OPENTCPSETVER {
|
||
|
||
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)
|
||
}
|
||
}
|