DataHouse/controllers/viewTemp.go

64 lines
1.3 KiB
Go

package controllers
import (
"github.com/astaxie/beego"
"datahouse/models/sensor"
"datahouse/models/temperature"
"datahouse/models/variables"
"html/template"
"strconv"
)
type ViewTempController struct {
beego.Controller
}
func (c *ViewTempController) Prepare() {
sess := c.GetSession(variables.SessionName)
if sess != nil {
c.Data["IsAuthentificated"] = true
}
c.Data["IsViewTemp"] = true
c.Data["version"] = variables.Version
}
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
}