DataHouse/models/soilMoisture/soilMoisture.go

90 lines
3.1 KiB
Go

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})
}