改造成支持lora mesh(没实现,只是支持)
This commit is contained in:
@@ -136,9 +136,16 @@ type TaskConfig struct {
|
||||
NumWorkers int `yaml:"num_workers"`
|
||||
}
|
||||
|
||||
type LoraMode string
|
||||
|
||||
const (
|
||||
LoraMode_LoRaWAN LoraMode = "lora_wan"
|
||||
LoraMode_LoRaMesh LoraMode = "lora_mesh"
|
||||
)
|
||||
|
||||
// LoraConfig 代表Lora配置
|
||||
type LoraConfig struct {
|
||||
Mode string `yaml:"mode"`
|
||||
Mode LoraMode `yaml:"mode"`
|
||||
}
|
||||
|
||||
// LoraMeshConfig 代表Lora Mesh配置
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
package lora
|
||||
|
||||
import (
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/config"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/transport"
|
||||
)
|
||||
|
||||
// LoRaMeshUartPassthroughTransport 实现 transport.Communicator 接口, 用于 LoRa 网状网络 UART 透传
|
||||
type LoRaMeshUartPassthroughTransport struct {
|
||||
// 在这里添加必要的字段
|
||||
}
|
||||
|
||||
// NewLoRaMeshUartPassthroughTransport 创建一个新的 LoRaMeshUartPassthroughTransport
|
||||
func NewLoRaMeshUartPassthroughTransport(config config.LoraMeshConfig, logger *logs.Logger) *LoRaMeshUartPassthroughTransport {
|
||||
return &LoRaMeshUartPassthroughTransport{}
|
||||
}
|
||||
|
||||
// Send 将数据发送到指定的地址
|
||||
func (t *LoRaMeshUartPassthroughTransport) Send(address string, payload []byte) (*transport.SendResult, error) {
|
||||
// TODO: 实现发送逻辑
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func (t *LoRaMeshUartPassthroughTransport) Listen() error {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
|
||||
func (t *LoRaMeshUartPassthroughTransport) Stop() error {
|
||||
//TODO implement me
|
||||
panic("implement me")
|
||||
}
|
||||
27
internal/infra/transport/lora/placeholder_transport.go
Normal file
27
internal/infra/transport/lora/placeholder_transport.go
Normal file
@@ -0,0 +1,27 @@
|
||||
package lora
|
||||
|
||||
import (
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/logs"
|
||||
"git.huangwc.com/pig/pig-farm-controller/internal/infra/transport"
|
||||
)
|
||||
|
||||
type PlaceholderTransport struct {
|
||||
logger *logs.Logger
|
||||
}
|
||||
|
||||
func NewPlaceholderTransport(logger *logs.Logger) transport.Listener {
|
||||
logger.Info("当前配置非 LoRaMesh, LoRaMesh UART 透传传输器未激活。")
|
||||
return &PlaceholderTransport{
|
||||
logger: logger,
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PlaceholderTransport) Listen() error {
|
||||
p.logger.Warnf("当前不是LoRa Mesh 模式, 这只是个占位监听器")
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *PlaceholderTransport) Stop() error {
|
||||
p.logger.Warnf("当前不是LoRa Mesh 模式, 占位监听器停止工作")
|
||||
return nil
|
||||
}
|
||||
@@ -13,3 +13,12 @@ type SendResult struct {
|
||||
// 调用方需要保存此 ID,以便后续关联 ACK 等事件。
|
||||
MessageID string
|
||||
}
|
||||
|
||||
// Listener 用于监听其他设备发送过来的数据
|
||||
type Listener interface {
|
||||
// Listen 用于开始监听其他设备发送过来的数据
|
||||
Listen() error
|
||||
|
||||
// Stop 用于停止监听
|
||||
Stop() error
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user