这是一个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/jiangjunjie_2005/article/details/77895737