R. Steve McKown [Fri, 23 Apr 2010 22:39:53 +0000 (16:39 -0600)]
Don't hard-code for ncc in mig and ncg scripts.
The rationalization for this change is that nesc shouldn't really know where
tinyos-tools is installed, since they are separate packages. The pragmatic
reason for this change is that it allows using ncc from tinyos-tools before
installation to allow a single debian tinyos source package to build both
tinyos-tools and tinyos-source-VERSION packages.
R. Steve McKown [Fri, 23 Apr 2010 16:25:39 +0000 (10:25 -0600)]
Improved tinyos.sh
* Automatically installs tinyos.sh into user shell rc files when sourced.
* Adds an uninstall option if a user no longer wants to do TinyOS dev.
* Smarter handling of CLASSPATH.
* tinyos.jar is added to CLASSPATH instead of support/sdk/java. The latter is
a TOS 1.x idiom.
* Better error and help messages.
R. Steve McKown [Fri, 13 Nov 2009 23:47:49 +0000 (16:47 -0700)]
Upstream commits to tos/chips/cc2420, Aug 7 2008 thru Jul 16 2009, except one.
commit df004818be0944a5459b2d23dd4b49c55b716448
kusy <kusy> Thu Aug 7 00:06:53 2008 +0000
Previously reported timestamping bug was only fixed partially: *timesync...
NOT COMMITTED f8120ec47efebf578a6edf99882d009ea6dedcd1
kusy <kusy> Wed Aug 13 07:37:05 2008 +0000
Fixing T32khz to TMilli conversion - coeficient 32 needs to be...
commit 42b450d2e6d5eda17245d38f4d2bceb6b60e5400
rincon <rincon> Mon Aug 18 22:04:15 2008 +0000
Added a length check to make sure we don't try to send a packet that is...
commit 72c8a4f1a2b4f331aeedc6bfd5262253ce8d6d04
janhauer <janhauer> Wed Nov 26 10:13:31 2008 +0000
Added an interface for accessing the RXFIFO in a non-split phase...
R. Steve McKown [Mon, 19 Apr 2010 22:13:15 +0000 (16:13 -0600)]
Fix startup in SoftwareInit.init overwriting changes to StateC's.
If a component wires its Init.init() via SoftwareInit and ncc calls
StateImplP.Init.init() after the component's Init.init(), any change to its
StateC, such as call State.forceState(), is undone. The easy fix is to remove
the extra initiation of state[] in StateImplP.Init.init(), since state[] is a
static and is guaranteed to have members with value zero (S_IDLE).
R. Steve McKown [Thu, 8 Apr 2010 01:16:46 +0000 (19:16 -0600)]
USCI fixes.
* Watch out for sendData() clobbering TXBUF.
* May solve a loss of UART TX chars.
* USCI UartStream.send() gains nothing by immediately sending the 1st byte.
* m_sobuf cannot be null in Interrupts.tx, so remove the check.
R. Steve McKown [Thu, 8 Apr 2010 00:02:56 +0000 (18:02 -0600)]
Improve interrupt handling for USCI.
Because some interrupts share an interrupt vector, we use the relevant interrupt
enable bit to decide if any user is interested in the interrupt. If not, that
interrupt is skipped so that another interrupt in the if/then/elseif chain can
be taken. We also defensively try to prevent I2C interrupts from being a
problem if not used, although no I2C code using these interrupts has yet been
written.
R. Steve McKown [Thu, 8 Apr 2010 19:50:41 +0000 (13:50 -0600)]
Teach tos-storage-stm25p to derive NUM_SECTORS and SECTOR_SIZE.
The stm25p driver is suitable for different sizes of flash parts, such as the
commonly used 8Mb M25P80 and the less commonly used 1Mb M25P10A. The driver
defines the flash configuration in Stm25p.h. By having tos-storage-stm25p walk
the @includes for the platform, as found in the .platform file, each platform
can ensure that a Stm25p.h with correct content for its flash part is found
for use by the driver and this script.
R. Steve McKown [Thu, 3 Dec 2009 19:16:10 +0000 (12:16 -0700)]
Update debian rules.
* Clean up builddir
* Use dtmp variable to streamline instructions
* Add lintian overrides files
* Add copyright file to all packages
* Add README.Debian file to all packages
R. Steve McKown [Wed, 2 Dec 2009 23:37:00 +0000 (16:37 -0700)]
Remove sensors code from tmirws platform.
The sensors code is not stable enough for inclusion into core tinyos, nor is
there yet a clean separation between platform code and application code. The
sensors code removed here was imported with its history into the RWS
application repository.
smckown [Mon, 9 Nov 2009 19:30:58 +0000 (19:30 +0000)]
Redo Average interface.
There is no point in having the averagers pre-know their number of samples.
The user should know this information. Therefore we have a more flexible
solution and avoid a signal to return the averate to the user when that user is
very likely to want to call a command instead.
smckown [Mon, 9 Nov 2009 19:30:52 +0000 (19:30 +0000)]
Enhancements to AeroVaneReadC.
* Anemometer is read immediately after the Timer fires to reduce jitter.
* Count interface is renamed Revolutions to be more meaningful.
* m_count is now uint8_t to reflect a more reasonable real life range.
* Direction data is returned no as degrees but as a 10-bit unsigned value.
* m_sum accumulates the correct, updated angle values.
* Rounding is done properly when m_sum is negative.
smckown [Sat, 7 Nov 2009 23:58:55 +0000 (23:58 +0000)]
Add AeroVane infrastructure to support physical/reading of the sensor.
AeroVaneReadC implements a timer every 28800 ticks of the 32KHz clock (or 900
binary ms). At each timer event it reads the wind vane via WindVaneReadC.
On every 4th read it reads the anemometer via AnemometerReadC, calculates the
average vane position over the last 4 reads (it's been summing all along),
and uses Notify.notify() to send out the aerovector structure. This means
that the user should get an AeroVane vector (reading) every 3.516 seconds, where
both the direction and the speed have been averaged over 4 reads during that
period.