Apps
Components
Interfaces
All Files
Source Tree
source:
tos.lib.VM.components.BVirus.nc
Component: BVirus
Author:
Philip Levis
Required Interfaces
BombillaError
Timer
VersionTimer
ReceiveMsg
VersionReceive
SendMsg
VersionSend
Timer
CapsuleTimer
ReceiveMsg
CapsuleReceive
SendMsg
CapsuleSend
Random
Random
StdControl
SubControl
Provided Interfaces
StdControl
BombillaVirus
Virus
Variables
typedef enum BVirus.__nesc_unnamed4243 { BVirus.BVIRUS_TIMER_VERSION = 100, BVirus.BVIRUS_TIMER_CAPSULE = 1000, BVirus.BVIRUS_CAPSULE_INIT = 1, BVirus.BVIRUS_CAPSULE_MAX = 16, BVirus.BVIRUS_VERSION_THRESHOLD_INIT = 1, BVirus.BVIRUS_VERSION_THRESHOLD_MAX = 300, BVirus.TAU_INIT = 10, BVirus.TAU_MAX = 600, BVirus.BVIRUS_VERSION_HEARD_THRESHOLD = 1 } BVirusConstants
typedef enum BVirus.__nesc_unnamed4244 { BVirus.BVIRUS_IDLE, BVirus.BVIRUS_PULLING, BVirus.BVIRUS_PUSHING } BVirusState
BombillaCapsule *capsules[BOMB_CAPSULE_NUM]
uint8_t capsuleTimerThresholds[BOMB_CAPSULE_NUM]
uint8_t capsuleHeard[BOMB_CAPSULE_NUM]
uint8_t capsuleTimerCounters[BOMB_CAPSULE_NUM]
uint16_t versionCounter
uint16_t versionThreshold
uint16_t versionCancelled
uint16_t tau
uint16_t versionHeard
BVirus.BVirusState state
bool sendBusy
bool capsuleBusy
TOS_Msg sendMessage
TOS_MsgPtr sendPtr
TOS_Msg receiveMsg
TOS_MsgPtr receivePtr
Function Index
void
cancelVersionCounter
(void)
void
newVersionCounter
(void)
uint8_t
typeToIndex
(uint8_t type)
command result_t
StdControl.init
(void)
command result_t
StdControl.start
(void)
command result_t
StdControl.stop
(void)
command result_t
Virus.registerCapsule
(uint8_t type, BombillaCapsule *capsule)
result_t
sendCapsule
(uint8_t idx)
result_t
sendVersionPacket
(void)
task void
versionTimerTask
(void)
event result_t
VersionTimer.fired
(void)
TOS_MsgPtr
receiveProgram
(TOS_MsgPtr msg)
TOS_MsgPtr
receiveVector
(TOS_MsgPtr msg)
event TOS_MsgPtr
VersionReceive.receive
(TOS_MsgPtr msg)
task void
capsuleTimerTask
(void)
event result_t
CapsuleTimer.fired
(void)
event TOS_MsgPtr
CapsuleReceive.receive
(TOS_MsgPtr msg)
event result_t
CapsuleSend.sendDone
(TOS_MsgPtr msg, result_t success)
event result_t
VersionSend.sendDone
(TOS_MsgPtr msg, result_t success)