diff --git a/controllers/default.go b/controllers/default.go index 3f7eb10..43cec72 100644 --- a/controllers/default.go +++ b/controllers/default.go @@ -2,12 +2,46 @@ package controllers import ( "github.com/astaxie/beego" + + "datahouse/models/sensor" + "datahouse/models/temperature" + + "strconv" ) +type SensorPrint struct { + Name string + Value string + Unit string +} + type MainController struct { beego.Controller } func (c *MainController) Get() { + c.Data["sensors"] = getLastTemps() c.TplNames = "index.tpl" } + + +func getLastTemps() ([]SensorPrint) { + sensors := sensor.GetAllSensor() + var values []SensorPrint + for _, s := range sensors { + sens := new(SensorPrint) + + sens.Name = s.Description + if sens.Name == "" { + sens.Name = s.SensorMAC + } + + t := temperature.GetLastTempForSensor(s.Id) + sens.Value = strconv.FormatInt(t.Value, 10) + sens.Unit = "°C" + + values = append(values, *sens) + } + + return values +} diff --git a/models/temperature/temperature.go b/models/temperature/temperature.go index 89f85de..99bce9d 100644 --- a/models/temperature/temperature.go +++ b/models/temperature/temperature.go @@ -54,3 +54,21 @@ func GetAllTempForSensor(sensorId int64) ([]TempTable) { } return dataArray } + +func GetLastTempForSensor(sensorId int64) (*TempTable) { + o := orm.NewOrm() + o.Using(database.Alias) + + data := new(TempTable) + var maps []orm.Params + _, err := o.QueryTable(new(TempTable)).Filter("SensorID", sensorId).OrderBy("HorodateGMT").Values(&maps) + if err == nil { + for _, m := range maps { + data.Id = utils.GetInt(m, "Id") + data.HorodateGMT = utils.GetTime(m, "HorodateGMT") + data.SensorID = utils.GetInt(m, "SensorID") + data.Value = utils.GetInt(m, "Value") + } + } + return data +} diff --git a/views/index.tpl b/views/index.tpl index 707fd72..35739dc 100644 --- a/views/index.tpl +++ b/views/index.tpl @@ -2,7 +2,17 @@ {{define "meta"}} {{end}} {{define "body"}} -

Index

- - +
+ {{range $key, $val := .sensors}} +
+
+

{{$val.Name}}

+
+
+
+

{{$val.Value}} {{$val.Unit}}

+
+
+
+ {{end}} {{end}} diff --git a/views/sensors.tpl b/views/sensors.tpl index b64014b..7071f69 100644 --- a/views/sensors.tpl +++ b/views/sensors.tpl @@ -20,4 +20,5 @@ {{end}} +
{{end}}