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
