uhf.go 1023 B

123456789101112131415161718192021222324252627282930313233343536
  1. package initialize
  2. import (
  3. "go.uber.org/zap"
  4. "wails-app/internal/dao"
  5. "wails-app/internal/global"
  6. parkingService "wails-app/internal/service/parking"
  7. "wails-app/internal/service/uhf"
  8. )
  9. // InitGateController 根据配置初始化真实设备或模拟道闸控制器。
  10. func InitGateController() {
  11. if global.GVA_CONFIG.System.GateSimulator {
  12. parkingService.SetGateController(parkingService.NewSimulatedGateController())
  13. global.GVA_LOG.Warn("道闸模拟模式已启用,不会发送真实设备指令")
  14. return
  15. }
  16. InitUHFDevices()
  17. }
  18. func InitUHFDevices() {
  19. var devices []dao.UHFReader
  20. // 从数据库查询所有激活的设备
  21. if err := global.GVA_DB.Where("is_active = ?", true).Find(&devices).Error; err != nil {
  22. return
  23. }
  24. // 逐个启动设备处理协程
  25. for _, d := range devices {
  26. go func(device dao.UHFReader) {
  27. if err := uhf.StartDeviceHandler(&device); err != nil {
  28. global.GVA_LOG.Error("启动设备失败", zap.String("code", device.DeviceCode), zap.Error(err))
  29. }
  30. }(d)
  31. }
  32. }