DataHouse/controllers/viewTemp.go

64 lines
1.2 KiB
Go

package controllers
import (
"github.com/astaxie/beego"
"datahouse/models/temperature"
"datahouse/models/sensor"
"html/template"
"strconv"
"time"
)
var (
_, timezoneOffset = time.Now().Zone()
)
type ViewTempController struct {
beego.Controller
}
func (c *ViewTempController) Prepare() {
c.Data["IsViewTemp"] = true;
}
func (c *ViewTempController) Get() {
dataTemp := ""
sensors := sensor.GetAllSensor()
for i := 0; i<len(sensors); i++ {
if i > 0 {
dataTemp += ","
}
desc := sensors[i].Description
if desc == "" {
desc = sensors[i].SensorMAC
}
dataTemp += formatDataSensor(desc, temperature.GetAllTempForSensor(sensors[i].Id))
}
c.Data["dataTemp"] = template.JS(dataTemp)
c.TplNames = "temp.tpl"
}
/*
--------------------------------------------------------------------------------
*/
func formatDataSensor(sensorName string, values []temperature.TempTable) string {
ret := "{name : \""+sensorName+"\", data : ["
for i := 0; i<len(values); i++ {
if i > 0 {
ret += ","
}
horodate := strconv.FormatInt((values[i].HorodateGMT.Unix()+int64(timezoneOffset)) * 1000, 10)
value := strconv.FormatInt(values[i].Value, 10)
ret += "["+horodate+","+value+"]"
}
ret += "]}"
return ret
}