Hi Christoffer Holmstedt,
On 06/01/2015 07:05 PM, Christoffer Holmstedt wrote:
Add the frequency to the channel numbers output when running "iwpan list".
The frequencies listed are according to chapter 8.1.2 in IEEE 802.15.4-2011.
The output now looks like this (fake wpan loopback with all channels
supported):
capabilities:
iftypes: node
channels:
page 0:
[ 0] 868.3 MHz [ 1] 906 MHz [ 2] 908 MHz
[ 3] 910 MHz [ 4] 912 MHz [ 5] 914 MHz
[ 6] 916 MHz [ 7] 918 MHz [ 8] 920 MHz
[ 9] 922 MHz [10] 924 MHz [11] 2405 MHz
[12] 2410 MHz [13] 2415 MHz [14] 2420 MHz
[15] 2425 MHz [16] 2430 MHz [17] 2435 MHz
[18] 2440 MHz [19] 2445 MHz [20] 2450 MHz
[21] 2455 MHz [22] 2460 MHz [23] 2465 MHz
[24] 2470 MHz [25] 2475 MHz [26] 2480 MHz
page 1:
[ 0] 868.3 MHz [ 1] 906 MHz [ 2] 908 MHz
[ 3] 910 MHz [ 4] 912 MHz [ 5] 914 MHz
[ 6] 916 MHz [ 7] 918 MHz [ 8] 920 MHz
[ 9] 922 MHz [10] 924 MHz
page 2:
[ 0] 868.3 MHz [ 1] 906 MHz [ 2] 908 MHz
[ 3] 910 MHz [ 4] 912 MHz [ 5] 914 MHz
[ 6] 916 MHz [ 7] 918 MHz [ 8] 920 MHz
[ 9] 922 MHz [10] 924 MHz
page 3:
[ 0] 2412 MHz [ 1] 2417 MHz [ 2] 2422 MHz
[ 3] 2427 MHz [ 4] 2432 MHz [ 5] 2437 MHz
[ 6] 2442 MHz [ 7] 2447 MHz [ 8] 2452 MHz
[ 9] 2457 MHz [10] 2462 MHz [11] 2467 MHz
[12] 2472 MHz [13] 2484 MHz
page 4:
[ 0] 499.2 MHz [ 1] 3494.4 MHz [ 2] 3993.6 MHz
[ 3] 4492.8 MHz [ 4] 3993.6 MHz [ 5] 6489.6 MHz
[ 6] 6988.8 MHz [ 7] 6489.6 MHz [ 8] 7488.0 MHz
[ 9] 7987.2 MHz [10] 8486.4 MHz [11] 7987.2 MHz
[12] 8985.6 MHz [13] 9484.8 MHz [14] 9984.0 MHz
[15] 9484.8 MHz
page 5:
[ 0] 780 MHz [ 1] 782 MHz [ 2] 784 MHz
[ 3] 786 MHz [ 4] 780 MHz [ 5] 782 MHz
[ 6] 784 MHz [ 7] 786 MHz
page 6:
[ 0] 951.2 MHz [ 1] 951.8 MHz [ 2] 952.4 MHz
[ 3] 953.0 MHz [ 4] 953.6 MHz [ 5] 954.2 MHz
[ 6] 954.8 MHz [ 7] 955.4 MHz [ 8] 954.4 MHz
[ 9] 954.6 MHz [10] 951.1 MHz [11] 951.5 MHz
[12] 951.9 MHz [13] 952.3 MHz [14] 952.7 MHz
[15] 953.1 MHz [16] 953.5 MHz [17] 953.9 MHz
[18] 954.3 MHz [19] 954.7 MHz [20] 955.1 MHz
[21] 955.5 MHz
Signed-off-by: Christoffer Holmstedt <christoffer@xxxxxxxxxxxxxxxxxxxxxxx>
---
src/info.c | 139 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 137 insertions(+), 2 deletions(-)
I tested this patch with cc2520. Its working fine.
But the channels listing per page is like this,
root@beaglebone:~# iwpan list
wpan_phy phy0
supported channels:
page 0: 11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26
current_page: 0
current_channel: 11
tx_power: 0
capabilities:
iftypes: node
channels:
page 0:
[11] 2405 MHz [12] 2410 MHz [13] 2415 MHz
[14] 2420 MHz [15] 2425 MHz [16] 2430 MHz
[17] 2435 MHz [18] 2440 MHz [19] 2445 MHz
[20] 2450 MHz [21] 2455 MHz [22] 2460 MHz
[23] 2465 MHz [24] 2470 MHz [25] 2475 MHz
[26] 2480 MHz
This not much readable, not able to understand which freq comes under which channel.
Alex already suggested one way of listing this..
page 0:
[11] 2405 MHz, [12] 2410 MHz, [13] 2415 MHz,
[14] 2420 MHz, [15] 2425 MHz, [16] 2430 MHz,
[17] 2435 MHz, [18] 2440 MHz, [19] 2445 MHz,
....
This seems to be good. Use single space after channel number and use the comma
to separate them.
diff --git a/src/info.c b/src/info.c
index e8f5dda8da94..ee3a80838913 100644
--- a/src/info.c
+++ b/src/info.c
@@ -23,6 +23,129 @@ static void print_minmax_handler(int min, int max)
printf("\b \n");
}
+static void print_freq_handler(int channel_page, int channel)
+{
+ float freq = 0;
+
+ switch (channel_page) {
+ case 0:
+ if (channel == 0) {
+ freq = 868.3;
+ printf("%6.1f", freq);
+ break;
+ } else if (channel > 0 && channel < 11) {
+ freq = 906 + 2 * (channel - 1);
+ } else {
+ freq = 2405 + 5 * (channel - 11);
+ }
+ printf("%6.0f", freq);
+ break;
+ case 1:
+ if (channel == 0) {
+ freq = 868.3;
+ printf("%6.1f", freq);
+ break;
+ } else if (channel >= 1 && channel <= 10) {
+ freq = 906 + 2 * (channel - 1);
+ }
+ printf("%6.0f", freq);
+ break;
+ case 2:
+ if (channel == 0) {
+ freq = 868.3;
+ printf("%6.1f", freq);
+ break;
+ } else if (channel >= 1 && channel <= 10) {
+ freq = 906 + 2 * (channel - 1);
+ }
+ printf("%6.0f", freq);
+ break;
+ case 3:
+ if (channel >= 0 && channel <= 12) {
+ freq = 2412 + 5 * channel;
+ } else if (channel == 13) {
+ freq = 2484;
+ }
+ printf("%6.0f", freq);
+ break;
+ case 4:
+ switch (channel) {
+ case 0:
+ freq = 499.2;
+ break;
+ case 1:
+ freq = 3494.4;
+ break;
+ case 2:
+ freq = 3993.6;
+ break;
+ case 3:
+ freq = 4492.8;
+ break;
+ case 4:
+ freq = 3993.6;
+ break;
+ case 5:
+ freq = 6489.6;
+ break;
+ case 6:
+ freq = 6988.8;
+ break;
+ case 7:
+ freq = 6489.6;
+ break;
+ case 8:
+ freq = 7488.0;
+ break;
+ case 9:
+ freq = 7987.2;
+ break;
+ case 10:
+ freq = 8486.4;
+ break;
+ case 11:
+ freq = 7987.2;
+ break;
+ case 12:
+ freq = 8985.6;
+ break;
+ case 13:
+ freq = 9484.8;
+ break;
+ case 14:
+ freq = 9984.0;
+ break;
+ case 15:
+ freq = 9484.8;
+ break;
+ }
+ printf("%6.1f", freq);
+ break;
+ case 5:
+ if (channel >= 0 && channel <= 3) {
+ freq = 780 + 2 * channel;
+ } else if (channel >= 4 && channel <= 7) {
+ freq = 780 + 2 * (channel - 4);
+ }
+ printf("%6.0f", freq);
+ break;
+ case 6:
+ if (channel >= 0 && channel <= 7) {
+ freq = 951.2 + 0.6 * channel;
+ } else if (channel >= 8 && channel <= 9) {
+ freq = 954.4 + 0.2 * (channel - 8);
+ } else if (channel >= 10 && channel <= 21) {
+ freq = 951.1 + 0.4 * (channel - 10);
+ }
+
+ printf("%6.1f", freq);
+ break;
+ default:
+ printf("Unkno.");
Make it as unknown only. No need of this shortcut.
--
Varka Bhadram
--
To unsubscribe from this list: send the line "unsubscribe linux-wpan" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html