I think the problem is in your configuration file....the DemoSensorC()
component is not needed, comment out that line and rename the HAMAMATSUS
compoensn as LightSensor and it should work.

There are some programming mistake in your module file also, check again
the logic for read event and timer event.

good luck!


On Tue, May 28, 2013 at 3:35 PM, Sean Dekker <[email protected]> wrote:

> Hi all,
>
> Here is my code to measure light with TelosB. The program should write the
> light value to serial port. It does but it only outpus 4037... I know that
> I have to convert this number, but the thing is the sensor is not working
> at all, I mean if I cover the light sensor and make it dark, my program
> still outputs 4037 to terminal. Can you please check my program?
>
> -----------------------------------
> *LightSensorAppC.nc*
> -----------------------------------
>
> configuration LightSensorAppC
> {
> }
>
> implementation
> {
>     components LightSensorC as App;
>     components MainC, LedsC;
>     components new TimerMilliC();
>     components new DemoSensorC() as LightSensor;
>
>     components new HamamatsuS10871TsrC() as Light;
>
>     //UART1
>     //Necessery for "printf" command to work
>     components SerialPrintfC;
>
>     App.Boot -> MainC;
>     App.Leds -> LedsC;
>     App.Timer -> TimerMilliC;
>     App.Read -> LightSensor;
> }
>
> ----------------------------------
> *LightSensorC.nc*
> ----------------------------------
> #include <Timer.h>
> #include <stdio.h>
> #include <string.h>
>
>
> module LightSensorC
> {
>     uses
>     {
>         interface Boot;
>         interface Timer<TMilli>;
>         interface Read<uint16_t>;
>         interface Leds;
>     }
> }
>
> implementation
> {
>     /*********** Variables **********/
>
>
>     /********** Custom Functions ***********/
>
>     //Turn led1 ON when board is  ON
>     void sensorBoardOn(){ call Leds.led1On(); }
>
>     //Turn led0 ON in case of problem
>     void reportProblem(){ call Leds.led0Toggle(); }
>
>     //Turn led2 ON if light is being detected
>     void lightIsDetected(){ call Leds.led2On(); }
>
>     //Turn led2 OFF is light is not detected
>     void lightNotDetected(){ call Leds.led2Off(); }
>
>     //Starts the timer and fills variables
>     void startTimer()
>     {
>         call Timer.startPeriodic(1000);
>     }
>
>     /******************** EVENTS *******************/
>
>     //uC boot event
>     event void Boot.booted()
>     {
>         sensorBoardOn();
>         startTimer();
>     }
>
>     //Timer event
>     event void Timer.fired()
>     {
>         if(call Read.read() == SUCCESS)
>         {
>             lightIsDetected();
>         }
>     }
>
>     //Read event
>     event void Read.readDone(error_t result, uint16_t val)
>     {
>         // TODO Auto-generated method stub
>         if(result == SUCCESS)
>         {
>             call Leds.led2Toggle();
>             printf("%d\r\n", val);
>         }
>         else
>         {
>             reportProblem();
>         }
>     }
> }
>
> ---------------
> *Makefile*
> ---------------
> COMPONENT = LightSensorAppC
> PFLAGS += -I$(TOSDIR)/lib/printf
> include $(MAKERULES)
>
>
> _______________________________________________
> 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