| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- package main
- //屏幕管理
- import (
- "context"
- "github.com/sirupsen/logrus"
- "lc/common/mqtt"
- "lc/common/util"
- "sync"
- )
- var ledMgr *LedMgr
- var once sync.Once
- type LedMgr struct {
- ctx context.Context
- cancel context.CancelFunc
- downQueue *util.MlQueue
- mapTopicHandle map[string]func(m mqtt.Message)
- wrlock sync.RWMutex
- mapLedDevice map[string]*LedDevice
- }
- func GetLedMgr() *LedMgr {
- once.Do(func() {
- ctx, cancel := context.WithCancel(context.Background())
- ledMgr = &LedMgr{
- ctx: ctx,
- cancel: cancel,
- mapTopicHandle: make(map[string]func(m mqtt.Message)),
- mapLedDevice: make(map[string]*LedDevice),
- }
- })
- return ledMgr
- }
- func (l *LedMgr) initAll() error {
- if err := loadDevInfos(); err != nil {
- logrus.Errorf("加载配置文件失败:%s", err.Error())
- return err
- }
- CreateLedDevs()
- return nil
- }
- func CreateLedDevs() {
- for _, info := range ledInfos {
- device := NewLedDevice(info)
- ledMgr.mapLedDevice[device.IP] = device
- }
- }
- // todo
- func (l *LedMgr) Update() error {
- return nil
- }
- func (l *LedMgr) HandleMessage(m mqtt.Message) {
- l.downQueue.Put(m)
- }
|