diff --git a/examples/rssi-scanner/Makefile b/examples/rssi-scanner/Makefile deleted file mode 100644 index 2513eba11..000000000 --- a/examples/rssi-scanner/Makefile +++ /dev/null @@ -1,23 +0,0 @@ -DEFINES=PROJECT_CONF_H=\"project-conf.h\" - -ifndef TARGET -TARGET = z1 -endif - -CONTIKI = ../.. - -CONTIKI_PROJECT = rssi-scanner-cc2420 - -all: $(CONTIKI_PROJECT) - -%.class: %.java - javac $(basename $<).java - -viewrssi3d: ViewRSSI3D.class - make login | java ViewRSSI3D - -viewrssi: ViewRSSI.class - make login | java ViewRSSI - -include $(CONTIKI)/Makefile.include - diff --git a/examples/rssi-scanner/ViewRSSI.java b/examples/rssi-scanner/ViewRSSI.java deleted file mode 100644 index deb17dc8d..000000000 --- a/examples/rssi-scanner/ViewRSSI.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * Copyright (c) 2010, University of Luebeck, Germany. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/** - * \file - * ViewRSSI java application - * \author - * Joakim Eriksson - * Carlo Alberto Boano - */ - -import javax.swing.*; -import java.awt.*; -import java.io.*; - -public class ViewRSSI extends JPanel{ - // Constants - public static int TOTAL = 86; // Number of channel of 1 MHz sampled - public static int DECREASE_RSSI = 2; // How many dBm the grey RSSI falls each sample - public static int RSSI_MAX_VALUE = 100; // Maximum value obtainable from RSSI readings of CC2420. - public static int MARGIN_BOTTOM = 20; // Margin from the bottom - public static int MARGIN_RIGHT = 75; // Margin from the right - public static int MARGIN_TOP = 12; // Margin from the top - public static int INTERFERED_CHANNEL = 24; // Interfered channel - - public InputStream inputstr; - private int[] rssi = new int[TOTAL]; // Array of current Noise floor values (black line) - private int[] rssiMax = new int[TOTAL]; // Array with past Noise floor values (grey line) - - - public ViewRSSI() { - } - - public void paint(Graphics g) { - Graphics2D g2 = (Graphics2D) g; - int h = getHeight(); - int w = getWidth(); - double factor = (h - (MARGIN_BOTTOM*1.0)) / RSSI_MAX_VALUE; - double sSpacing = (w - MARGIN_RIGHT) / (TOTAL*1.0); - int sWidth = (int) (sSpacing - 1); - if (sWidth == 0) sWidth = 1; - - // Set white background in the plot - g.setColor(Color.white); - g.fillRect(0, 0, w, h); - - // Gradient example (ytics background) - GradientPaint greytowhite = new GradientPaint(w-MARGIN_RIGHT,0,Color.WHITE,w, 0,Color.lightGray, false); - g2.setPaint(greytowhite); - g2.fillRect(w-MARGIN_RIGHT, 0, w, h); - - // Draw the light grey channels from 11 to 26 - double xpos = 10; - for(int i=4;i rssiMax[i]) rssiMax[i] = rssi[i]; - else if (rssiMax[i] > 0) rssiMax[i] = rssiMax[i] - DECREASE_RSSI; - } - } catch (Exception e) { - e.printStackTrace(); /* Report error, but do not fail... */ - } - repaint(); - } - } - } - - - public static void main(String[] args) throws IOException { - JFrame win = new JFrame("RSSI Viewer"); - ViewRSSI panel; - win.setBounds(10, 10, 590, 590); - win.getContentPane().add(panel = new ViewRSSI()); - win.setVisible(true); - win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - panel.handleInput(); - } - -} diff --git a/examples/rssi-scanner/ViewRSSI3D.java b/examples/rssi-scanner/ViewRSSI3D.java deleted file mode 100644 index 2defe6bcb..000000000 --- a/examples/rssi-scanner/ViewRSSI3D.java +++ /dev/null @@ -1,140 +0,0 @@ -/** - * 3D RSSI Viewer - view RSSI values of 802.15.4 channels - * --------------------------------------------------- - * Note: run the rssi-scanner on a Sky, Z1 or sentilla node connected to USB - * then start with - * make login | java ViewRSSI3D - * - * @author Joakim Eriksson, SICS - * - */ -import java.io.*; -import java.awt.*; -import java.awt.geom.*; -import javax.swing.*; -import java.awt.event.*; -import java.awt.image.BufferedImage; - -public class ViewRSSI3D extends JPanel { - public InputStream inputstr; - - public static final int WIDTH = 6; - public static final int HEIGHT = 4; - - public static final int MAX_HISTORY = 50; - public static final int MAX_VALUES = 86; - - private int[][] values = new int[MAX_HISTORY][MAX_VALUES]; - private int pos = 0; - - public ViewRSSI3D() { - super(null); - setBackground(Color.black); - setOpaque(true); - setPreferredSize(new Dimension(800, 400)); - } - - long last = 0; - Polygon pol = new Polygon(); - float[] dist = {0.0f, 0.3f, 0.6f, 1.0f}; - Color[] colors = {Color.RED, Color.YELLOW, Color.GREEN, Color.BLUE}; - int[] lastPos = new int[MAX_VALUES]; - - public void paint(Graphics g) { - //long t = System.currentTimeMillis(); - Graphics2D gfx = (Graphics2D) g; - gfx.setColor(Color.black); - gfx.fillRect(0, 0, getWidth(), getHeight()); - int oldPos = 0; - int oldJPos = 0; - int lastColor = -1; - - int w = (getWidth() - MAX_HISTORY * 4) / MAX_VALUES; - int h = w * HEIGHT / WIDTH; - w = (getWidth() - MAX_HISTORY * h) / MAX_VALUES; - int xs = h * MAX_HISTORY; - int ys = (getHeight() - h * MAX_HISTORY) / 2; - - for (int i = 0, n = MAX_HISTORY; i < n; i++) { - Point2D start = new Point2D.Float(xs - i * h, ys - 100 + i * h); - Point2D end = new Point2D.Float(xs - i * h, ys + i * h); - LinearGradientPaint p = - new LinearGradientPaint(start, end, dist, colors); - - gfx.setPaint(p); - for (int j = 0, m = MAX_VALUES; j < m; j++) { - int val = (int) values[(i + pos) % MAX_HISTORY][j]; - if (i > 0 && j > 0) { - pol.reset(); - pol.addPoint(xs + (j - 1) * w - i * h, ys + i * h - oldPos); - pol.addPoint(xs + j * w - i * h, ys + i * h - val); - pol.addPoint(xs + j * w - (i - 1) * h, - ys + (i - 1) * h - lastPos[j]); - pol.addPoint(xs + (j - 1) * w - (i - 1) * h, - ys + (i - 1) * h - oldJPos); - - gfx.fillPolygon(pol); - } - oldPos = val; - oldJPos = lastPos[j]; - } - gfx.setColor(Color.black); - for (int j = 0, m = MAX_VALUES; j < m; j++) { - int val = (int) values[(i + pos) % MAX_HISTORY][j]; - if (i > 0 && j > 0) { - pol.reset(); - pol.addPoint(xs + (j - 1) * w - i * h, ys + i * h - oldPos); - pol.addPoint(xs + j * w - i * h, ys + i * h - val); - pol.addPoint(xs + j * w - (i - 1) * h, - ys + (i - 1) * h - lastPos[j]); - pol.addPoint(xs + (j - 1) * w - (i - 1) * h, - ys + (i - 1) * h - oldJPos); - - gfx.drawPolygon(pol); - } - oldPos = val; - oldJPos = lastPos[j]; - lastPos[j] = val; - } - } - - gfx.setColor(Color.gray); - gfx.drawLine(xs - (MAX_HISTORY - 1) * h, ys + (MAX_HISTORY - 1) * h, - xs - (MAX_HISTORY - 1) * h + (MAX_VALUES - 1) * w, - ys + (MAX_HISTORY - 1) * h); - gfx.drawLine(xs - (MAX_HISTORY - 1) * h + (MAX_VALUES - 1) * w, - ys + (MAX_HISTORY - 1) * h, - xs + (MAX_VALUES - 1) * w, ys); - // System.out.println("Time: " + (System.currentTimeMillis() - t) + " last: " + (System.currentTimeMillis() - last)); - // last = System.currentTimeMillis(); - } - - public void handleInput() throws IOException { - BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); while(true) { - String line = reader.readLine(); - if (line != null && line.startsWith("RSSI:")) { - try { - String[] parts = line.substring(5).split(" "); - for (int i = 0, n = parts.length; i < n; i++) { - values[pos][i] = Integer.parseInt(parts[i]); - } - } catch (Exception e) { - e.printStackTrace(); /* Report error, but do not fail... */ - } - pos = (pos + 1) % MAX_HISTORY; - repaint(); - } - } - } - - - public static void main(String[] args) throws IOException { - ViewRSSI3D mc = new ViewRSSI3D(); - JFrame window = new JFrame("3D RSSI Viewer"); - window.add(mc); - window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); - window.pack(); - window.setVisible(true); - mc.handleInput(); - } -} diff --git a/examples/rssi-scanner/project-conf.h b/examples/rssi-scanner/project-conf.h deleted file mode 100644 index 8560a4171..000000000 --- a/examples/rssi-scanner/project-conf.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2010, University of Luebeck, Germany - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - */ - -#ifndef PROJECT_CONF_H_ -#define PROJECT_CONF_H_ - -#undef NETSTACK_CONF_MAC -#define NETSTACK_CONF_MAC nullmac_driver - -#undef NETSTACK_CONF_RDC -#define NETSTACK_CONF_RDC sicslowmac_driver - -#undef NETSTACK_MAC -#define NETSTACK_MAC nullmac_driver - -#undef NETSTACK_RDC -#define NETSTACK_RDC nullrdc_driver - -#endif /* PROJECT_CONF_H_ */ diff --git a/examples/rssi-scanner/rssi-scanner-cc2420.c b/examples/rssi-scanner/rssi-scanner-cc2420.c deleted file mode 100644 index d58cb57ec..000000000 --- a/examples/rssi-scanner/rssi-scanner-cc2420.c +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (c) 2007, Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the Institute nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * This file is part of the Contiki operating system. - * - */ - -/** - * \file - * Scanning 2.4 GHz radio frequencies using CC2420 and prints - * the values - * \author - * Joakim Eriksson, joakime@sics.se - */ - -#include "contiki.h" -#include "net/netstack.h" - -#include "dev/leds.h" -#include "cc2420.h" -#include "cc2420_const.h" -#include "dev/spi.h" -#include - -/*---------------------------------------------------------------------------*/ -/* This assumes that the CC2420 is always on and "stable" */ -static void -set_frq(int c) -{ - int f; - /* We can read even other channels with CC2420! */ - /* Fc = 2048 + FSCTRL ; Fc = 2405 + 5(k-11) MHz, k=11,12, ... , 26 */ - f = c + 352; /* Start from 2400 MHz to 2485 MHz, */ - - /* Write the new channel value */ - CC2420_SPI_ENABLE(); - SPI_WRITE_FAST(CC2420_FSCTRL); - SPI_WRITE_FAST((uint8_t)(f >> 8)); - SPI_WRITE_FAST((uint8_t)(f & 0xff)); - SPI_WAITFORTx_ENDED(); - SPI_WRITE(0); - - /* Send the strobe */ - SPI_WRITE(CC2420_SRXON); - CC2420_SPI_DISABLE(); -} -static void -do_rssi(void) -{ - int channel; - printf("RSSI:"); - for(channel = 0; channel <= 85; ++channel) { - set_frq(channel); - printf("%d ", cc2420_rssi() + 100); - } - printf("\n"); -} -/*---------------------------------------------------------------------------*/ -PROCESS(scanner_process, "RSSI Scanner"); -AUTOSTART_PROCESSES(&scanner_process); -/*---------------------------------------------------------------------------*/ -PROCESS_THREAD(scanner_process, ev, data) -{ - PROCESS_BEGIN(); - /* switch mac layer off, and turn radio on */ - NETSTACK_MAC.off(0); - cc2420_on(); - - while(1) { - do_rssi(); - PROCESS_PAUSE(); - } - - PROCESS_END(); -} -/*---------------------------------------------------------------------------*/