lorawan 网桥 chirpstack-gateway-bridge改造 单频段改多频段

问题遇到的现象和发生背景

这是一个lorawan的网桥。主要的功能是负责转发,目前可以实现单频段的转发。想把改项目单频段改成多频段集成在一个服务上。

问题相关代码,请勿粘贴截图

原代码

    viper.SetDefault("backend.basic_station.region", "EU868")
    viper.SetDefault("backend.basic_station.frequency_min", 863000000)
    viper.SetDefault("backend.basic_station.frequency_max", 870000000)

自己改的

    viper.SetDefault("backend.basic_station.region", []string{"EU868", "EU863", "US915"})
    viper.SetDefault("backend.basic_station.frequency_min", []uint32{863000000, 867500000, 902000000})
    viper.SetDefault("backend.basic_station.frequency_max", []uint32{870000000, 868500000, 928000000})

运行结果及报错内容
我的解答思路和尝试过的方法

我想着是通过配置文件 把单频段改成多个数据。当服务启动后,创建端口的方法根据数据的长度和for循环,达到一个创建多个频段的效果。但是我发现创建端口的方法在初始化项目的时候没有调用。目前不知道怎么处理了。

我想要达到的结果

在一个程序中实现多频段的转发。

目前无法实现你的想法,
你可以修改项目实现你的功能
https://github.com/spf13/viper
方法SetDefault在下面这个文件中,目前参数(第一个字符串,第二个接口)
https://github.com/spf13/viper/blob/master/viper.go


或者你可以创建3个viper;
分别命名为viper1;viper2;viper3

viper1.SetDefault("backend.basic_station.region", "EU868")
viper1.SetDefault("backend.basic_station.frequency_min", 863000000)
viper1.SetDefault("backend.basic_station.frequency_max", 870000000)
viper2.SetDefault("backend.basic_station.region", "EU863")
viper2.SetDefault("backend.basic_station.frequency_min", 867500000)
viper2.SetDefault("backend.basic_station.frequency_max", 868500000)
viper3.SetDefault("backend.basic_station.region", "US915")
viper3.SetDefault("backend.basic_station.frequency_min", 902000000)
viper3.SetDefault("backend.basic_station.frequency_max", 928000000)

如解决你的问题,望采纳

https://blog.csdn.net/RAKwireless/article/details/120449762?spm=1005.2026.3001.5635&utm_medium=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~Rate-4.pc_feed_download_top3ask&depth_1-utm_source=distribute.pc_relevant_ask_down.none-task-blog-2~default~OPENSEARCH~Rate-4.pc_feed_download_top3ask

https://blog.csdn.net/jiangjunjie_2005/article/details/77895737