ajout controller, model soilmoisture
This commit is contained in:
parent
cfdbb68f62
commit
19e37f3481
|
|
@ -0,0 +1,25 @@
|
|||
package controllers
|
||||
|
||||
import (
|
||||
"github.com/astaxie/beego"
|
||||
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/soilMoisture"
|
||||
)
|
||||
|
||||
type AddSoilMoistController struct {
|
||||
beego.Controller
|
||||
}
|
||||
|
||||
func (c *AddSoilMoistController) Get() {
|
||||
macArduino := c.GetString(soilMoisture.MacModuleWifiArduino)
|
||||
pinArduino := c.GetString(soilMoisture.PinArduino)
|
||||
valeurCapteur, _ := c.GetInt(soilMoisture.ValeurCapteur)
|
||||
|
||||
soilMoisture.AddData(pinArduino, macArduino, int64(valeurCapteur))
|
||||
|
||||
cpt := soilMoisture.GetCapteurByAdresse(macArduino, pinArduino)
|
||||
if cpt == nil || cpt.Id == 0 {
|
||||
soilMoisture.AddCapteur(macArduino, pinArduino)
|
||||
}
|
||||
c.Ctx.Output.Body([]byte(""))
|
||||
}
|
||||
|
|
@ -0,0 +1,89 @@
|
|||
package soilMoisture
|
||||
|
||||
import (
|
||||
"github.com/astaxie/beego/logs"
|
||||
"github.com/astaxie/beego/orm"
|
||||
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/database"
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/utils"
|
||||
"git.kingpenguin.tk/chteufleur/datahouse.git/models/variables"
|
||||
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
MacModuleWifiArduino = "MAC"
|
||||
PinArduino = "PIN"
|
||||
ValeurCapteur = "VAL"
|
||||
)
|
||||
|
||||
var (
|
||||
_, timezoneOffset = time.Now().Zone()
|
||||
log = logs.NewLogger(10000)
|
||||
)
|
||||
|
||||
func init() {
|
||||
log.SetLogger(variables.LogType, variables.LogParams)
|
||||
orm.RegisterModel(new(SoilMoistureTable),new(CapteurSoilMoistureTable))
|
||||
orm.DefaultRowsLimit = 4500
|
||||
}
|
||||
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
// SoilMoistureTable
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
|
||||
type SoilMoistureTable struct {
|
||||
Id int64
|
||||
HorodateGMT time.Time `orm:"auto_now;type(datetime)"`
|
||||
CapteurPin string // Pin Arduino
|
||||
MacId string // Id Bac à Fleur
|
||||
ValeurCapteur int64
|
||||
}
|
||||
|
||||
func AddData(pinCapteur string, macId string, valeur int64) {
|
||||
log.Info("Add soilMoisture {BacMac: %s, pinArduino: %s, valeur: %d}", macId, pinCapteur, valeur)
|
||||
o := orm.NewOrm()
|
||||
o.Using(database.Alias)
|
||||
|
||||
ti := new(SoilMoistureTable)
|
||||
ti.CapteurPin = pinCapteur
|
||||
ti.ValeurCapteur = valeur
|
||||
ti.MacId = macId
|
||||
o.Insert(ti)
|
||||
}
|
||||
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
// CapteurSoilMoistureTable
|
||||
//——————————————————————————————————————————————————————————————————————————————
|
||||
type CapteurSoilMoistureTable struct {
|
||||
Id int64
|
||||
MacArduino string
|
||||
PinArduino string
|
||||
Description string
|
||||
}
|
||||
|
||||
func GetCapteurByAdresse(mac string, pin string) *CapteurSoilMoistureTable {
|
||||
o := orm.NewOrm()
|
||||
o.Using(database.Alias)
|
||||
|
||||
ret := new(CapteurSoilMoistureTable)
|
||||
var maps []orm.Params
|
||||
_, err := o.QueryTable(new(CapteurSoilMoistureTable)).Filter("MacArduino", mac).Filter("PinArduino", pin).Values(&maps)
|
||||
if err == nil {
|
||||
for _, m := range maps {
|
||||
ret.Id = utils.GetInt(m, "Id")
|
||||
ret.MacArduino = utils.GetString(m, "MacArduino")
|
||||
ret.PinArduino = utils.GetString(m, "PinArduino")
|
||||
ret.Description = utils.GetString(m, "Description")
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return ret
|
||||
}
|
||||
|
||||
func AddCapteur(mac string, pin string) {
|
||||
o := orm.NewOrm()
|
||||
o.Using(database.Alias)
|
||||
_, _ = o.Insert(&CapteurSoilMoistureTable{MacArduino: mac, PinArduino: pin})
|
||||
}
|
||||
Loading…
Reference in New Issue