20
20
#include <ns_list.h>
21
21
#include <nsdynmemLIB.h>
22
22
#include "NWK_INTERFACE/Include/protocol.h"
23
+ #include "6LoWPAN/ws/ws_common_defines.h"
23
24
#include "6LoWPAN/ws/ws_common.h"
24
25
#include "6LoWPAN/ws/ws_bbr_api_internal.h"
25
26
#include "ws_management_api.h"
28
29
#define TRACE_GROUP "wscm"
29
30
int8_t ws_common_regulatory_domain_config (protocol_interface_info_entry_t * cur )
30
31
{
31
- cur -> ws_info -> channel_plan = 0 ;
32
- cur -> ws_info -> channel_function = CHANNEL_FUNCTION_TR51CF ;
32
+ cur -> ws_info -> hopping_schdule . channel_plan = 0 ;
33
+ cur -> ws_info -> hopping_schdule . channel_function = CHANNEL_FUNCTION_TR51CF ;
33
34
34
- if (cur -> ws_info -> regulatory_domain == REG_DOMAIN_KR ) {
35
- if (cur -> ws_info -> operating_class == 1 ) {
36
- cur -> ws_info -> ch0_freq = 9171 ;
37
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_200 ;
38
- cur -> ws_info -> number_of_channels = 32 ;
39
- } else if (cur -> ws_info -> operating_class == 2 ) {
40
- cur -> ws_info -> ch0_freq = 9173 ;
41
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_400 ;
42
- cur -> ws_info -> number_of_channels = 16 ;
35
+ if (cur -> ws_info -> hopping_schdule . regulatory_domain == REG_DOMAIN_KR ) {
36
+ if (cur -> ws_info -> hopping_schdule . operating_class == 1 ) {
37
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9171 ;
38
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_200 ;
39
+ cur -> ws_info -> hopping_schdule . number_of_channels = 32 ;
40
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 2 ) {
41
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9173 ;
42
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_400 ;
43
+ cur -> ws_info -> hopping_schdule . number_of_channels = 16 ;
43
44
} else {
44
45
return -1 ;
45
46
}
46
- } else if (cur -> ws_info -> regulatory_domain == REG_DOMAIN_EU ) {
47
- if (cur -> ws_info -> operating_class == 1 ) {
48
- cur -> ws_info -> ch0_freq = 8631 ;
49
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_100 ;
50
- cur -> ws_info -> number_of_channels = 69 ;
51
- } else if (cur -> ws_info -> operating_class == 2 ) {
52
- cur -> ws_info -> ch0_freq = 8631 ;
53
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_200 ;
54
- cur -> ws_info -> number_of_channels = 35 ;
55
- } else if (cur -> ws_info -> operating_class == 3 ) {
56
- cur -> ws_info -> ch0_freq = 8701 ;
57
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_100 ;
58
- cur -> ws_info -> number_of_channels = 59 ;
59
- } else if (cur -> ws_info -> operating_class == 4 ) {
60
- cur -> ws_info -> ch0_freq = 8701 ;
61
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_200 ;
62
- cur -> ws_info -> number_of_channels = 30 ;
47
+ } else if (cur -> ws_info -> hopping_schdule . regulatory_domain == REG_DOMAIN_EU ) {
48
+ if (cur -> ws_info -> hopping_schdule . operating_class == 1 ) {
49
+ cur -> ws_info -> hopping_schdule . ch0_freq = 8631 ;
50
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_100 ;
51
+ cur -> ws_info -> hopping_schdule . number_of_channels = 69 ;
52
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 2 ) {
53
+ cur -> ws_info -> hopping_schdule . ch0_freq = 8631 ;
54
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_200 ;
55
+ cur -> ws_info -> hopping_schdule . number_of_channels = 35 ;
56
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 3 ) {
57
+ cur -> ws_info -> hopping_schdule . ch0_freq = 8701 ;
58
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_100 ;
59
+ cur -> ws_info -> hopping_schdule . number_of_channels = 59 ;
60
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 4 ) {
61
+ cur -> ws_info -> hopping_schdule . ch0_freq = 8701 ;
62
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_200 ;
63
+ cur -> ws_info -> hopping_schdule . number_of_channels = 30 ;
63
64
} else {
64
65
return -1 ;
65
66
}
66
- } else if (cur -> ws_info -> regulatory_domain == REG_DOMAIN_NA ) {
67
- if (cur -> ws_info -> operating_class == 1 ) {
68
- cur -> ws_info -> ch0_freq = 9022 ;
69
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_200 ;
70
- cur -> ws_info -> number_of_channels = 129 ;
71
- } else if (cur -> ws_info -> operating_class == 2 ) {
72
- cur -> ws_info -> ch0_freq = 9024 ;
73
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_400 ;
74
- cur -> ws_info -> number_of_channels = 64 ;
75
- } else if (cur -> ws_info -> operating_class == 3 ) {
76
- cur -> ws_info -> ch0_freq = 9026 ;
77
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_600 ;
78
- cur -> ws_info -> number_of_channels = 42 ;
67
+ } else if (cur -> ws_info -> hopping_schdule . regulatory_domain == REG_DOMAIN_NA ) {
68
+ if (cur -> ws_info -> hopping_schdule . operating_class == 1 ) {
69
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9022 ;
70
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_200 ;
71
+ cur -> ws_info -> hopping_schdule . number_of_channels = 129 ;
72
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 2 ) {
73
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9024 ;
74
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_400 ;
75
+ cur -> ws_info -> hopping_schdule . number_of_channels = 64 ;
76
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 3 ) {
77
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9026 ;
78
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_600 ;
79
+ cur -> ws_info -> hopping_schdule . number_of_channels = 42 ;
79
80
} else {
80
81
return -1 ;
81
82
}
82
- } else if (cur -> ws_info -> regulatory_domain == REG_DOMAIN_JP ) {
83
- if (cur -> ws_info -> operating_class == 1 ) {
84
- cur -> ws_info -> ch0_freq = 9206 ;
85
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_200 ;
86
- cur -> ws_info -> number_of_channels = 129 ;
87
- } else if (cur -> ws_info -> operating_class == 2 ) {
88
- cur -> ws_info -> ch0_freq = 9209 ;
89
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_400 ;
90
- cur -> ws_info -> number_of_channels = 64 ;
91
- } else if (cur -> ws_info -> operating_class == 3 ) {
92
- cur -> ws_info -> ch0_freq = 9208 ;
93
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_600 ;
94
- cur -> ws_info -> number_of_channels = 42 ;
83
+ } else if (cur -> ws_info -> hopping_schdule . regulatory_domain == REG_DOMAIN_JP ) {
84
+ if (cur -> ws_info -> hopping_schdule . operating_class == 1 ) {
85
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9206 ;
86
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_200 ;
87
+ cur -> ws_info -> hopping_schdule . number_of_channels = 129 ;
88
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 2 ) {
89
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9209 ;
90
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_400 ;
91
+ cur -> ws_info -> hopping_schdule . number_of_channels = 64 ;
92
+ } else if (cur -> ws_info -> hopping_schdule . operating_class == 3 ) {
93
+ cur -> ws_info -> hopping_schdule . ch0_freq = 9208 ;
94
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_600 ;
95
+ cur -> ws_info -> hopping_schdule . number_of_channels = 42 ;
95
96
} else {
96
97
return -1 ;
97
98
}
98
- } else if (cur -> ws_info -> regulatory_domain == REG_DOMAIN_WW ) {
99
- if (cur -> ws_info -> operating_class == 2 ) {
100
- cur -> ws_info -> ch0_freq = 24004 ;
101
- cur -> ws_info -> channel_spacing = CHANNEL_SPACING_400 ;
102
- cur -> ws_info -> number_of_channels = 207 ;
99
+ } else if (cur -> ws_info -> hopping_schdule . regulatory_domain == REG_DOMAIN_WW ) {
100
+ if (cur -> ws_info -> hopping_schdule . operating_class == 2 ) {
101
+ cur -> ws_info -> hopping_schdule . ch0_freq = 24004 ;
102
+ cur -> ws_info -> hopping_schdule . channel_spacing = CHANNEL_SPACING_400 ;
103
+ cur -> ws_info -> hopping_schdule . number_of_channels = 207 ;
103
104
} else {
104
105
return -1 ;
105
106
}
@@ -121,16 +122,20 @@ int8_t ws_common_allocate_and_init(protocol_interface_info_entry_t *cur)
121
122
122
123
memset (cur -> ws_info ,0 , sizeof (ws_info_t ));
123
124
124
- cur -> ws_info -> regulatory_domain = REG_DOMAIN_KR ;
125
- cur -> ws_info -> operating_mode = OPERATING_MODE_1a ;
126
- cur -> ws_info -> operating_class = 1 ;
125
+ cur -> ws_info -> pan_configuration .use_parent_bs = true;
126
+ cur -> ws_info -> pan_configuration .rpl_routing_method = true;
127
+ cur -> ws_info -> pan_configuration .version = WS_FAN_VERSION_1_0 ;
128
+
129
+ cur -> ws_info -> hopping_schdule .regulatory_domain = REG_DOMAIN_KR ;
130
+ cur -> ws_info -> hopping_schdule .operating_mode = OPERATING_MODE_1a ;
131
+ cur -> ws_info -> hopping_schdule .operating_class = 1 ;
127
132
ws_common_regulatory_domain_config (cur );
128
133
129
- cur -> ws_info -> fhss_uc_dwell_interval = 250 ;
130
- cur -> ws_info -> fhss_broadcast_interval = 800 ;
131
- cur -> ws_info -> fhss_bc_dwell_interval = 200 ;
134
+ cur -> ws_info -> hopping_schdule . fhss_uc_dwell_interval = 250 ;
135
+ cur -> ws_info -> hopping_schdule . fhss_broadcast_interval = 800 ;
136
+ cur -> ws_info -> hopping_schdule . fhss_bc_dwell_interval = 200 ;
132
137
133
- memset (& cur -> ws_info -> channel_mask ,0xff ,sizeof (cur -> ws_info -> channel_mask ));
138
+ memset (& cur -> ws_info -> hopping_schdule . channel_mask ,0xff ,sizeof (cur -> ws_info -> hopping_schdule . channel_mask ));
134
139
135
140
return 0 ;
136
141
}
0 commit comments