update record_log

This commit is contained in:
lyp-home 2019-06-23 23:54:04 +08:00
parent 75177c54a9
commit 9a94dddb26
5 changed files with 77 additions and 12 deletions

View File

@ -106,10 +106,16 @@ var today string
//var femaledemoDevice Device
//var maledemoDevice Device
var nodeUpdateMap sync.Map
var logch = make(chan []byte)
//log channel
var logch = make(chan []byte)
var loraNodeMap sync.Map
var db, _ = sql.Open("sqlite3", "./db/gateway.db")
var loraNodeMap sync.Map
// 加载配置文件
func init() {

View File

@ -6,6 +6,7 @@ import (
"net"
"os"
"strconv"
"time"
)
var err error
@ -15,7 +16,6 @@ func main() {
go gw_router()
go serial_run()
c := cron.New()
//获取数据防抖处理时间配置
if conf.SYNEXTENSIONTIME {
@ -52,9 +52,16 @@ func main() {
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)

View File

@ -58,6 +58,8 @@ var dparkConf DparkConf
var connTest net.Conn
//获取数据防抖配置时间
func getConf() {
resp, err := http.Get("https://smartoilets.cn/socketServer/dpark/getConf")
@ -94,7 +96,7 @@ func getConf() {
if dparkConf.ExtensionOutTime < 0 {
dparkConf.ExtensionOutTime = 0
}
// time.
extensionInTime = dparkConf.ExtensionInTime
extensionOutTime = dparkConf.ExtensionOutTime
@ -102,8 +104,8 @@ func getConf() {
}
//距离有效判断
var reactTof = 1650
//距离有效判断time.
var reactTof = 1650time.
//数据防抖 进入时间
var extensionInTime = 6

View File

@ -117,7 +117,9 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
//尿布台数据地址1位 数据2位
dataType := data[i+1]
values := make([]byte,0)
if data[i+1] == 1 {
if dataType == 1 {
continueCount = 3
end = 4
@ -208,7 +210,6 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
if err != nil {
log.Println("write msg error!", err)
}
}
log.Println("yunhorndeug.push.data.tcp:",buffer.String(),addrs,dataType,values)
@ -222,7 +223,7 @@ func readConn(conn net.Conn, readChan chan<- []byte, stopChan chan<- bool) {
buffer = new(bytes.Buffer)
go record_log(data[i-4:i+end])
go write_log_channel(data[i-4:i+end])
go dealDatav3(data[i-4:i+end])

View File

@ -10,6 +10,8 @@ import (
"sync"
"encoding/json"
"time"
"strconv"
"bytes"
)
type Devicedatas struct {
@ -77,18 +79,64 @@ func yunhorn_xdy_l_v1(data_buf []byte) {
}
//wirte data to log channel
func write_log_channel(data []byte){
logch <- data
}
//get data from log channel and write file
func record_log_channel(){
for {
data_buf := <- logch
addrs := data_buf[:4]
buffer := new(bytes.Buffer)
for i:=0;i<len(addrs);i++{
s := strconv.FormatInt(int64(addrs[i]&0xff), 16)
buffer.WriteString(s)
}
adr := buffer.String()
// log.Println("addrs and data",adr,data_buf)
now := time.Now()
oldTime,ok := nodeUpdateMap.Load(adr);
if(ok){
//have data
var duration = now.Sub(oldTime.(time.Time)).Seconds()
var durationAsInt64 = int(duration)
if(durationAsInt64>1){
record_log(data_buf)
}
//same data
}else{
//not data
// log.Println("save adr:",adr)
nodeUpdateMap.Store(adr,now)
record_log(data_buf)
}
}
}
//打印原始数据进log
func record_log(data_buf []byte){
time := today
folder := conf.RECORD_LOG_PATH+"/"+time
err2 :=os.MkdirAll(folder,os.ModePerm)
if err2!=nil{
if err2!=nil{
log.Println(err2)
}
f, err := os.OpenFile(folder+"/"+time, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
}
f, err := os.OpenFile(folder+"/"+time+".log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err != nil{
log.Fatalln("HHHHH")
log.Fatalln("HHHHH")
}
record := log.New(f,"",log.Llongfile)
//debugLog.SetPrefix("[Debug]")
@ -96,6 +144,7 @@ func record_log(data_buf []byte){
record.Println(data_buf)
}
func yunhorn_lora_l_v1(data_buf []byte) {
// for _, i := range conf.RS485DEVICES {