Thanks. That did the trick. Now I just have to see if my readings are coming 
out correctly. Thanks. 
 Respectfully, 


Jacob H. Cox Jr
(706) 413-3841
"What ever you do, work at it with all your heart, as working for the Lord..." 
Colossians 3:23 




________________________________
From: Michael Schippling <[email protected]>
To: Jacob Cox <[email protected]>
Cc: [email protected]; [email protected]
Sent: Wednesday, April 15, 2009 1:58:08 PM
Subject: Re: [Tinyos-help] Implementing MultiHop with Oscilloscope nesC

Searching for the instances of "//added" in your message:
Near as I can tell someone (you?) "added" some stuff to a makefile
and used the "//" as a comment. Which doesn't work in makefiles...

If that's the case, change // to #

MS

Jacob Cox wrote:
> Hello,
>  I am using Tmote Invents to record sound and then send the values to the 
>Trawler via multihop. I have basically combined a modifed version of the 
>Oscilloscope program (one that only monitors sound) with the Delta Program. 
>Unfortunately, when I try to compile my files, I get an error:
>  msp430-gcc: //added: No such file or directory.  I'm not sure how to resolve 
>this problem or what it means exactly. I have includedmsp430-gcc in my folder, 
>and I used it with the previous version of this program where I forwarded data 
>packets back to the oscillosope application via a generic Com application with 
>no multihop. This program only monitors sound, and problems didn't arrise 
>until I tried to incorporate the multihop features used by Delta.    My code 
>is below. I would appreciate any guidance or observations that may help me to 
>resolve this problem and any other issues that may be lerking in my code. The 
>files are PulseTmoteInvent, PulseTmoteInventM, Pulse.h, Make File, and 
>msp430-gcc. Thank you.  ******************************** PulseTmoteInvent 
>Configuration File *************************
> /*
>  * This configuration describes the Pulse application,
>  * a simple TinyOS app that periodically takes sensor readings
>  * and sends a group of readings over the radio.
>  * <p>
>  * See README.TmoteInvent for more information
>  *
>  * @author Joe Polastre, Moteiv Corporation <[email protected] 
><mailto:[email protected]>>
>  * this is a modified program of Oscilloscope and Delta programs
>  */
>  #include "Pulse.h"
>  configuration PulseTmoteInvent { }
> implementation
> {
>  components Main
>            , PulseTmoteInventM as PulseM  // DetaM as Impl
>            , TimerC
>            , LedsC
>        , new MainControlC() as MainMicC
>            , MicDriverC
>            , OscopeC
>      , MultiHop
>      ;  components DelugeC;
>        Main.StdControl -> MultiHop;  Main.StdControl -> TimerC;
>  Main.StdControl -> OscopeC; // think DemoSensorC
>  Main.StdControl -> PulseM;  // think of delta's Impl
>    MainMicC.SplitControl  -> MicDriverC;
>  PulseM.Timer  -> TimerC.Timer[unique("Timer")];
>  PulseM.Leds  -> LedsC;
>  PulseM.Mic  -> MicDriverC;  //PulseM is Main.StdControl & Mic is ADC
>  PulseM.OMicrophone -> OscopeC.Oscope[0];  // Oscope is OMicrophone
>    // send data messages
>  PulseM.SendPulseMsg -> MultiHop.Send[AM_PULSEMSG];  // need to change Delta 
>to Pulse
>  // monitor traffic being forwarded
>  PulseM.SnoopPulseMsg -> MultiHop.Intercept[AM_PULSEMSG];
>  // get statistics about current operation
>  PulseM.RouteControl -> MultiHop;
>  PulseM.RouteStatistics -> MultiHop;
>  }
>  **************************PulseTmoteInvent Module**************************
> // TmotePulse Pulse Detection System
> #include "Pulse.h"  //DELTA_TIME,
> #include "circularQueue.h"
> module PulseTmoteInventM    //module provides implementation code
> {
>  provides interface StdControl;  //TmotePulseM provides function StdControl
>  uses {
>    interface Timer;      // wired to Timer
>    interface Leds;      // wired to Leds
>    interface ADC as Mic;
>    interface Oscope as OMicrophone;  // wired to Sensor values through Oscope
>  interface Send as SendPulseMsg;
>  interface Intercept as SnoopPulseMsg;
>  interface RouteControl;
>  interface RouteStatistics;
>  }
> }
> implementation {
>  /************************ VARIABLES ***************************/
>      //  uint16_t m_adc;  // this is my mic value
>  uint32_t m_seqno;
>  TOS_Msg msg[PULSE_QUEUE_SIZE];
>  CircularQueue_t queue;
> /*
>  * enum {
>  *  OSCOPE_DELAY = 4,    //set Oscope setup time(Oscope_Delay) to 4
>  * };
>  */
>  enum {      // assigns values 0 to 4 to the listed constants
>  MIC,
>  };
>  norace uint16_t mic;    // tells the compiler that there is
>  //  norace int state;  // no race conditon with these variables
>            // (async)
>              /************************* HELPER FUNCTIONS 
>************************/
>  task void sendData() {
>    uint16_t _length;
>    int i;
>    uint16_t neighbors[MHOP_PARENT_SIZE];
>    uint16_t quality[MHOP_PARENT_SIZE];
> 
>    if (cqueue_pushBack( &queue ) == SUCCESS) {
>      PulseMsg* dmsg = (PulseMsg*)call 
>SendPulseMsg.getBuffer(&msg[queue.back], &_length);
>      atomic dmsg->reading = mic;  // replaced m_adc
>      dmsg->parent = call RouteControl.getParent();
>      call RouteStatistics.getNeighbors(neighbors, MHOP_PARENT_SIZE);
>      call RouteStatistics.getNeighborQuality(quality, MHOP_PARENT_SIZE);
>      for (i = 0; i < MHOP_PARENT_SIZE; i++) {
>      dmsg->neighbors[i] = neighbors[i];
>      dmsg->quality[i] = quality[i];
>        }
>      dmsg->neighborsize = MHOP_PARENT_SIZE;
>      dmsg->retransmissions = call RouteStatistics.getRetransmissions();
>      dmsg->seqno = m_seqno;
>      if (call SendPulseMsg.send( &msg[queue.back], sizeof(PulseMsg) ) == 
>SUCCESS) {
>  call Leds.redOn();
>      }
>      else {
>  // remove from queue
>  cqueue_popBack( &queue );
>      }
>    }
>    // always increase seqno.  gives a better idea of how many packets
>    // really have been dropped
>    m_seqno++;
>  }
>  /************************ STD CONTROL ******************************/
>  /**
>    * Used to initialize this component.
>    */
>    command result_t StdControl.init() {  // user call to StdControl to 
>initiate following seq.
>    call Leds.init();    // initialize Leds
>    call Leds.set(3);    // set Led value to 3 (all lights on)
> //    state = MIC;      // enumerated state defined as  MIC
>    cqueue_init( &queue, PULSE_QUEUE_SIZE ); // from Delta
>    return SUCCESS;      // command completed
>    }
>  /*
>    * Starts the SensorControl component.
>    * @return Always returns SUCCESS.
>    */
>    command result_t StdControl.start() {  // user call to start timer
> //    call Timer.start( TIMER_ONE_SHOT, 250 );// starts generic timer that 
> will fire once
>    call Timer.start( TIMER_REPEAT, PULSE_TIME );
>    return SUCCESS;      // with timer interval of listed no. times binary
>  }          // miliseconds (1/1024) The one-shot timer ends
>            // after the specified interval
>  /*
>    * Stops the SensorControl component.
>    * @return Always returns SUCCESS.
>    */
>  command result_t StdControl.stop() { // Stops the timer and prevents it from 
>firing.
> //    call Timer.stop();    // This will prevent one-shot from firing if it
>    return SUCCESS;      // hasn't done so already.
>  }
>  /*************************** TIMER ****************************/
>  event result_t Timer.fired() {  // signal generated by timer when it fires
>  call Mic.getData();
>      return SUCCESS;
>  }
>        task void putMic() {  // call Oscope to aggregate data into packet for 
>oscilloscope
>    call OMicrophone.put(mic);    }
> 
>  /************************* ADC ******************************/
>  async event result_t Mic.dataReady(uint16_t data) {  //Indicates a sample 
>has been
>    mic = data;                // recorded by the ADC as the result
>    post putMic();          // of a getData() command
>  return SUCCESS;
>  }
> /*********************** SEND *********************/
>    event result_t SendPulseMsg.sendDone(TOS_MsgPtr _msg, result_t _success) {
>    cqueue_popFront( &queue );
>    return SUCCESS;
>  }
>    /********************** SEND **********************/
>  event result_t SnoopPulseMsg.intercept(TOS_MsgPtr _msg, void* payload, 
>uint16_t payloadLen) {
>    return SUCCESS;
>    }
> }
> ******************************* Pulse.h ***********************************
> // $Id: Delta.h 896 2006-08-02 02:17:38Z polastre $
> /*
>  * Copyright (c) 2006 Moteiv Corporation
>  * All rights reserved.
>  *
>  * This file is distributed under the terms in the attached MOTEIV-LICENSE    
>* file. If you do not find these files, copies can be found at
>  * http://www.moteiv.com/MOTEIV-LICENSE.txt and by emailing [email protected] 
><mailto:[email protected]>.
>  */
> #ifndef H_Delta_h
> #define H_Delta_h
> #include "MultiHop.h"
> #define PULSE_QUEUE_SIZE MHOP_DEFAULT_QUEUE_SIZE - (MHOP_DEFAULT_QUEUE_SIZE 
> >> 2)
> enum {
>  PULSE_TIME = 1024 * 5,
> };
> enum {
>  AM_PULSEMSG = 33
> };
> typedef struct PulseMsg {
>  uint32_t seqno;
>  uint16_t reading;
>  uint16_t parent;
>  uint8_t neighborsize;
>  uint8_t retransmissions;
>  uint16_t neighbors[MHOP_PARENT_SIZE];
>  uint16_t quality[MHOP_PARENT_SIZE];
> } PulseMsg;
> #endif//H_Delta_h
> 
> *************************************** msp430-gcc.exe 
> ******************************
> Exception: STATUS_ACCESS_VIOLATION at eip=0057BAB3
> eax=61118014 ebx=10010008 ecx=FFFFFFFF edx=00000000 esi=610F4D9C edi=00000000
> ebp=0022EC88 esp=0022EC7C 
> program=C:\tinyos\cygwin\opt\msp430\bin\msp430-gcc.exe, pid 5400, thread main
> cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
> Stack trace:
> Frame    Function  Args
> 0022EC88  0057BAB3  (000006C0, 00000000, 7C910331, 74520000)
> 0022ECB8  61053B27  (0022EE20, 0022EE24, 0022EE28, 0022ECC0)
> 0022EE48  61054C0F  (10020240, 00000001, 00000009, 1001E314)
> 0022EE88  6108E1EF  (10020240, 1001FED8, 61798D54, 00000000)
> 0022EF28  004037D9  (00413260, 00000000, 00000000, 0040CE80)
> 0022EF58  00406D54  (00413260, 00000027, 6179DC24, 004144E9)
> 0022EFC8  0040A6CF  (00000077, 6179E764, 100100A8, 0022F020)
> 0022F008  61006145  (0022F020, 0022F04C, 7C80E931, 00000000)
> 0022FF88  61006350  (00000000, 00000000, 00000000, 00000000)
> End of stack trace
> ****************************************** MAKE 
> File********************************
> VALID_PLATFORMS = t telos telosa telosb tmote tmoteinvent
> VALID_TARGETS = $(VALID_PLATFORMS) clean help
> ifeq ($(filter $(VALID_TARGETS),$(MAKECMDGOALS)),)
> $(error ERROR: Invalid platform!  Valid platforms: $(VALID_PLATFORMS))
> endif
> MOTEIV_DIR ?= ../../
> COMP = $(if $(filter-out tmoteinvent,$(PLATFORM)),TmoteSky,TmoteInvent)
> COMPONENT = Pulse$(COMP)
> CFLAGS += -DOSCOPE_MAX_CHANNELS=6
> PFLAGS += -I$(TOSDIR)/lib/Oscope
> PFLAGS += -DDELUGE_PAGETRANSFER_LEDS
> CFLAGS += -DTOSH_DATA_LENGTH=28+3*2+2 -DMHOP_DEFAULT_QUEUE_SIZE=50 //added
> # Override the ident program name since Deluge already reports the platform
> # and otherwise the name is so long it is reported as just "OscilloscopeTmo".
> IDENT_PROGRAM_NAME = Pulse
> include $(MAKERULES)
> ********************************************************************************
>  /*        tab:4
>  * "Copyright (c) 2000-2003 The Regents of the University  of California.  * 
>All rights reserved.
>  *
>  * Permission to use, copy, modify, and distribute this software and its
>  * documentation for any purpose, without fee, and without written agreement 
>is
>  * hereby granted, provided that the above copyright notice, the following
>  * two paragraphs and the author appear in all copies of this software.
>  *
>  * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
>  * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
>  * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY 
>OF
>  * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
>  *
>  * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
>  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
>  * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
>  * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
>  * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."
>  *
>  * Copyright (c) 2005 Moteiv Corporation
>  * All rights reserved.
>  *
>  * This file is distributed under the terms in the attached MOTEIV-LICENSE    
>* file. If you do not find these files, copies can be found at
>  * http://www.moteiv.com/MOTEIV-LICENSE.txt and by emailing [email protected] 
><mailto:[email protected]>.
>  *
>  */
>  Respectfully,
> 
> 
> Jacob H. Cox Jr
> (706) 413-3841
> "What ever you do, work at it with all your heart, as working for the 
> Lord..." Colossians 3:23
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Tinyos-help mailing list
> [email protected]
> https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to