1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package main
- import (
- "context"
- "dlt645-server/server"
- "github.com/gogf/gf/frame/g"
- "github.com/gogf/gf/os/glog"
- "github.com/gogf/gf/os/gproc"
- "os"
- "sparrow-sdk/config"
- gatewayV2 "sparrow-sdk/v2"
- )
- func main() {
- ctx := context.Background()
- err := glog.SetLevelStr(g.Cfg().GetString("Server.RunMode"))
- if err != nil {
- panic(err)
- }
- gw := gatewayV2.NewGateway(&config.Config{
- SparrowServer: g.Cfg().GetString("Sparrow.Server"),
- ProductKey: g.Cfg().GetString("Sparrow.ProductKey"),
- Protocol: "mqtt",
- DeviceCode: g.Cfg().GetString("Sparrow.DeviceCode"),
- Version: "1.0.0",
- Debug: g.Cfg().GetBool("Sparrow.Debug"),
- })
- if _, err = gw.Register(); err != nil {
- panic(err)
- }
- if _, err = gw.Authentication(); err != nil {
- panic(err)
- }
- go gw.Connect()
- srv := server.NewServer(
- ctx,
- g.Cfg().GetString("Server.Addr"),
- g.Cfg().GetInt("Server.Port"),
- gw,
- )
- go func() {
- if err := srv.Start(); err != nil {
- panic(err)
- }
- }()
- gw.SetReportCommandCallback(func(deviceCode, subId string) error {
- client := srv.GetClient(subId)
- if client != nil {
- if err = client.ReportActivePower(); err != nil {
- glog.Errorf("上报数据发生错误:%s", err.Error())
- return err
- }
- }
- return nil
- })
- gproc.AddSigHandlerShutdown(func(sig os.Signal) {
- gw.Close()
- srv.Stop()
- })
- gproc.Listen()
- }
|