Apps     Components     Interfaces     All Files     Source Tree     source: tos.interfaces.StdControl.nc

Interface: StdControl

The TinyOS standard control interface. All components that require initialization or can be powered down should provide this interface. start() and stop() are synonymous with powering on and off, when appropriate. On boot, the init() of all wired components must be called. init() may be called multiple times, and in subcomponents before some of their supercomponents (e.g. if they are the subcomponent of multiple components). After init() has been called, start() and stop() may be called multiple times, in any order. The call sequence is therefore:

init* (start|stop)*

Author: Jason Hill
  David Gay
  Philip Levis
Modified: 6/25/02

Components providing this interface:
apps.Blink.BlinkM
apps.Blink.SingleTimer
apps.BlinkTask.BlinkTaskM
apps.BlinkTask.SingleTimer
apps.Bombilla.AMPromiscuous
apps.Bombilla.GenericComm
apps.Bombilla.GenericCommPromiscuous
apps.GenericBase.GenericBaseM
apps.HighFrequencySampling.HFSM
apps.Ident.AppM
apps.Ident.IdentC
apps.MicaHWVerify.MicaHWVerifyM
apps.Oscilloscope.OscilloscopeM
apps.OscilloscopeRF.OscilloscopeM
apps.SecureTOSBase.SecureTOSBaseM
apps.Sense.SenseM
apps.SenseLightToLog.SenseLightToLogM
apps.SenseLightToLog.SimpleCmdM
apps.SenseTask.SenseTaskM
apps.SimpleCmd.SimpleCmdM
apps.Surge.SurgeM
apps.TASKApp.Field
apps.TASKApp.FieldApp
apps.TASKApp.Ping
apps.TOSBase.TOSBaseM
apps.TestEEPROM.Byte.TestByteEEPROMC
apps.TestEEPROM.ByteSpeed.ETimingM
apps.TestEEPROM.EEPROM.TestEEPROMM
apps.TestEEPROM.Page.TestEEPROMM
apps.TestEEPROM.PageSpeed.ETimingM
apps.TestMatchbox.Timing.TimingM
apps.TestSnooze.TestSnoozeM
apps.TestTinyAlloc.TestTinyAllocM
apps.TestTinySec.TestTinySecM
apps.TestTinyViz.TestTinyVizM
apps.TestUart.TestUartM
apps.TransparentBase.TOSBaseM
tos.lib.Attributes.Attr
tos.lib.Attributes.AttrAccel
tos.lib.Attributes.AttrAccelM
tos.lib.Attributes.AttrGlobal
tos.lib.Attributes.AttrGlobalM
tos.lib.Attributes.AttrMic
tos.lib.Attributes.AttrMicM
tos.lib.Attributes.AttrPhoto
tos.lib.Attributes.AttrPhotoM
tos.lib.Attributes.AttrPot
tos.lib.Attributes.AttrPotM
tos.lib.Attributes.AttrTemp
tos.lib.Attributes.AttrTempM
tos.lib.Attributes.AttrTime
tos.lib.Attributes.AttrTimeM
tos.lib.Attributes.AttrVoltage
tos.lib.Attributes.AttrVoltageM
tos.lib.Broadcast.Bcast
tos.lib.Broadcast.BcastM
tos.lib.Commands.Command
tos.lib.Commands.CommandAttr
tos.lib.Commands.CommandAttrM
tos.lib.Commands.CommandLeds
tos.lib.Commands.CommandLedsM
tos.lib.Commands.CommandPot
tos.lib.Commands.CommandPotM
tos.lib.Commands.CommandReset
tos.lib.Commands.CommandResetM
tos.lib.Commands.CommandSounder
tos.lib.Commands.CommandSounderM
tos.lib.Counters.Counter
tos.lib.Counters.IntToLeds
tos.lib.Counters.IntToLedsM
tos.lib.Counters.IntToRfm
tos.lib.Counters.IntToRfmM
tos.lib.Counters.RfmToInt
tos.lib.Counters.RfmToIntM
tos.lib.Counters.SenseToInt
tos.lib.FS.Coordinator
tos.lib.FS.FreeList
tos.lib.FS.Matchbox
tos.lib.FS.MetaData
tos.lib.FS.Read
tos.lib.FS.Remote
tos.lib.FS.Writer
tos.lib.Queue.QueuedSend
tos.lib.Queue.QueuedSendM
tos.lib.Route.MultiHopEngineM
tos.lib.Route.MultiHopLEPSM
tos.lib.Route.MultiHopRouter
tos.lib.TinyDB.DBBufferC
tos.lib.TinyDB.NetworkMultiHop
tos.lib.TinyDB.NetworkMultiHopM
tos.lib.TinyDB.SimpleTimeM
tos.lib.TinyDB.TableM
tos.lib.TinyDB.TinyDBAttr
tos.lib.TinyDB.TinyDBAttrM
tos.lib.TinyDB.TinyDBCommand
tos.lib.TinyDB.TupleRouter
tos.lib.TinyDB.TupleRouterM
tos.lib.TinySec.AMStandardTinySec
tos.lib.TinySec.SecureGenericComm
tos.lib.TinySec.Security
tos.lib.TinySec.SecurityM
tos.lib.Util.TinyAlloc
tos.lib.Util.UartDebuggerM
tos.lib.VM.components.BContextSynch
tos.lib.VM.components.BContextSynchProxy
tos.lib.VM.components.BVirus
tos.lib.VM.components.BombillaEngine
tos.lib.VM.components.BombillaEngineM
tos.lib.VM.contexts.ClockContextM
tos.lib.VM.contexts.OnceContextM
tos.lib.VM.contexts.RecvContextM
tos.lib.VM.opcodes.OPcall2M
tos.lib.VM.opcodes.OPgetsetvar4M
tos.lib.VM.opcodes.OPrandM
tos.lib.VM.opcodes.OPsendM
tos.lib.VM.opcodes.OPsendrM
tos.lib.VM.opcodes.OPsenseM
tos.lib.VM.opcodes.OPuartM
tos.platform.mica.ByteEEPROM
tos.platform.mica.EEPROM
tos.platform.mica.HPLClock
tos.platform.mica.HPLFlash
tos.platform.mica.HPLFlashM
tos.platform.mica.I2CC
tos.platform.mica.I2CM
tos.platform.mica.MicaHighSpeedRadioM
tos.platform.mica.MicaHighSpeedRadioTinySecM
tos.platform.mica.PageEEPROMC
tos.platform.mica.PageEEPROMM
tos.platform.mica.RadioCRCPacket
tos.platform.mica.RadioPacketTinySec
tos.platform.mica.SerialId
tos.platform.mica.SlavePinC
tos.platform.mica.SlavePinM
tos.platform.mica.eepromM
tos.sensorboards.basicsb.Photo
tos.sensorboards.basicsb.PhotoM
tos.sensorboards.micasb.Accel
tos.sensorboards.micasb.AccelM
tos.sensorboards.micasb.I2CPotC
tos.sensorboards.micasb.I2CPotM
tos.sensorboards.micasb.MicC
tos.sensorboards.micasb.MicM
tos.sensorboards.micasb.Photo
tos.sensorboards.micasb.PhotoTemp
tos.sensorboards.micasb.PhotoTempM
tos.sensorboards.micasb.Sounder
tos.sensorboards.micasb.SounderM
tos.sensorboards.micasb.Temp
tos.system.AMPromiscuous
tos.system.AMStandard
tos.system.ByteEEPROMAllocate
tos.system.ClockC
tos.system.FramerM
tos.system.GenericComm
tos.system.GenericCommPromiscuous
tos.system.Logger
tos.system.LoggerM
tos.system.LogicalTime
tos.system.NoCRCPacket
tos.system.PacketSink
tos.system.ServiceSchedulerC
tos.system.ServiceSchedulerM
tos.system.SimpleTime
tos.system.SimpleTimeM
tos.system.TimerC
tos.system.TimerM
tos.system.UART
tos.system.UARTComm
tos.system.UARTFramedPacket
tos.system.UARTM
tos.system.UARTNoCRCPacket
tos.system.Voltage
tos.system.VoltageM

Components requiring this interface:
apps.Bombilla.AMPromiscuous
apps.GenericBase.GenericBaseM
apps.HighFrequencySampling.Sample
apps.Ident.AppM
apps.MicaHWVerify.MicaHWVerifyM
apps.Oscilloscope.OscilloscopeM
apps.OscilloscopeRF.OscilloscopeM
apps.SecureTOSBase.SecureTOSBaseM
apps.Sense.SenseM
apps.SenseLightToLog.SenseLightToLogM
apps.SenseLightToLog.SimpleCmdM
apps.SenseTask.SenseTaskM
apps.SimpleCmd.SimpleCmdM
apps.Surge.SurgeM
apps.TASKApp.Field
apps.TOSBase.TOSBaseM
apps.TestEEPROM.Byte.TestByteEEPROMC
apps.TestEEPROM.EEPROM.TestEEPROMM
apps.TestEEPROM.Page.TestEEPROMM
apps.TransparentBase.TOSBaseM
tos.lib.Attributes.AttrAccelM
tos.lib.Attributes.AttrMicM
tos.lib.Attributes.AttrPhotoM
tos.lib.Attributes.AttrTempM
tos.lib.Attributes.AttrVoltageM
tos.lib.Broadcast.BcastM
tos.lib.Commands.CommandSounderM
tos.lib.Counters.IntToRfmM
tos.lib.Counters.RfmToIntM
tos.lib.Counters.SenseToInt
tos.lib.FS.MetaData
tos.lib.Route.MultiHopEngineM
tos.lib.TinyDB.NetworkMultiHopM
tos.lib.TinyDB.SimpleTimeM
tos.lib.TinyDB.TupleRouterM
tos.lib.TinySec.AMStandardTinySec
tos.lib.VM.components.BVirus
tos.lib.VM.components.BombillaEngine
tos.lib.VM.components.BombillaEngineM
tos.lib.VM.contexts.ClockContextM
tos.lib.VM.opcodes.OPsenseM
tos.platform.mica.HPLFlashM
tos.platform.mica.PageEEPROMM
tos.platform.mica.eepromM
tos.sensorboards.micasb.I2CPotM
tos.sensorboards.micasb.MicM
tos.system.AMPromiscuous
tos.system.AMStandard
tos.system.FramerM
tos.system.LoggerM
tos.system.Main
tos.system.NoCRCPacket
tos.system.RealMain
tos.system.ServiceSchedulerC
tos.system.ServiceSchedulerM
tos.system.SimpleTimeM

Commands

Commands - Details

init

result_t init(void)

Initialize the component and its subcomponents.
Returns: Whether initialization was successful.

start

result_t start(void)

Start the component and its subcomponents.
Returns: Whether starting was successful.

stop

result_t stop(void)

Stop the component and pertinent subcomponents (not all subcomponents may be turned off due to wakeup timers, etc.).
Returns: Whether stopping was successful.