Write data in database table

This commit is contained in:
2020-09-02 09:02:30 +02:00
parent 8f7a285289
commit ac3bb1ebe9
7 changed files with 106 additions and 74 deletions

View File

@@ -8,7 +8,7 @@ import (
"strconv"
"strings"
"mqttListener/Config"
"mqttListener/env"
"mqttListener/models"
"regexp"
"time"
@@ -22,18 +22,11 @@ import (
URI = mqtt://<user>:<pass>@<server>:<port>
*/
/* TODO: This options are just a suggestion
Options:
[-help] Display help
[-customer] Customer- or project number
[-device] Device number
[-uri <uri>] Broker URI
*/
var client MQTT.Client
var opts *MQTT.ClientOptions
var topic string
var uri url.URL
var ev *env.Env
func Connect() {
client = MQTT.NewClient(opts)
@@ -64,17 +57,19 @@ func Listen() {
*/
}
func Setup() {
func Setup(environment *env.Env) {
ev = environment
scheme := "tcp://"
if Config.EnableTLS {
if ev.Config.EnableTLS {
scheme = "ssl://"
}
urlString := scheme
urlString += Config.BrokerUsername + ":" + Config.BrokerPassword + "@"
urlString += Config.BrokerAddress + ":"
urlString += strconv.FormatInt(Config.BrokerPort, 10)
urlString += ev.Config.BrokerUsername + ":" + ev.Config.BrokerPassword + "@"
urlString += ev.Config.BrokerAddress + ":"
urlString += strconv.FormatInt(ev.Config.BrokerPort, 10)
fmt.Println("broker urlString: ", urlString)
@@ -89,7 +84,7 @@ func Setup() {
topic = "/ATB/#"
opts = createClientOptions(Config.BrokerClientId, uri)
opts = createClientOptions(ev.Config.BrokerClientID, uri)
}
@@ -101,7 +96,7 @@ func createClientOptions(ClientID string, uri *url.URL) *MQTT.ClientOptions {
opts.SetPassword(password)
opts.SetClientID(ClientID)
opts.SetDefaultPublishHandler(f)
if Config.EnableTLS {
if ev.Config.EnableTLS {
tlsConfig := &tls.Config{InsecureSkipVerify: true, ClientAuth: tls.NoClientCert}
opts.SetTLSConfig(tlsConfig)
}
@@ -180,4 +175,9 @@ var subscriptionHandler = func(client MQTT.Client, msg MQTT.Message) {
fmt.Printf("Device SN = %s\n", device.SN)
// TODO: store this device in database
err = ev.DB.InsertDevice(&device)
if err != nil {
fmt.Println(err.Error())
return
}
}