90 lines
3.1 KiB
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 = database.RowLimit
|
|
}
|
|
|
|
//——————————————————————————————————————————————————————————————————————————————
|
|
// 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})
|
|
}
|