package node.application.videoSensorNode; // The sensor node module. Connects to the wireless channel in order to communicate // with other nodes. Connects to psysical processes so it can sample them. simple VideoSensorNode like node.application.iApplication { parameters: string applicationID = default ("videoSensorNode"); bool collectTraceInfo = default (true); int priority = default (1); int packetHeaderOverhead = default (4); // in bytes, for various purposes such that the packet type for instance int constantDataPayload = default (0); // in bytes // specific to our model bool isSink = default (false); double minCaptureRate = default (0.01); // in fps double maxCaptureRate = default (3.0); // in fps double staticCaptureRate = default (0.2); // in fps int nbCamera = default (1); // indicates how many cameras are used by the sensor node, up to 4 supported with different aov double aov = default (36.0); // in degree, alpha = aov/2 = 18° double aov1 = default (36.0); // in degree, alpha = aov/2 = 18° double aov2 = default (36.0); // in degree, alpha = aov/2 = 18° double aov3 = default (36.0); // in degree, alpha = aov/2 = 18° double dov = default (25.0); // in meters double dov1 = default (25.0); // in meters double dov2 = default (25.0); // in meters double dov3 = default (25.0); // in meters double lineOfSight = default (-1.0); // in degree, negative line of sight means random line of sight between 0..360° (0..2PI) // only LOS of camera 0 is indicated, other cameras, if any, will be distributed uniformly bool cameraCycling = default (true); // when nbCamera > 1, will cycle through camera in a circular fashion, otherwise randomly bool cameraSimultaneous = default (false); // if true then intrusion detection will be performed on all camera at the same time double maxBatteryLevel = default (100.0); // in units double energyPerCapture = default (1.0); // in battery units double measuredEnergyPerImageCapture = default (0.0); // in mJ double measuredEnergyPerImageEncoding = default (0.0); // for instance, prior to transmission, in mJ double measuredEnergyPerImageProcessing = default (0.0); // for instance, for intrusion detection, in mJ double timeForImageCapture = default (440.0); // 220+220, sync cam and config cam, is ms double timeForImageEncoding = default (550.0); // encoding, in ms double timeForImageProcessing = default (1512.0); // read data from camera and additional processing if any, in ms bool alwaysActive = default (false); double criticalityLevel = default (0.9); // must be between 0 and 1 double minCriticalityLevel = default (0.1); // must be between 0 and 1 double maxCriticalityLevelPeriod = default (5.0); // in seconds double maxDefinedCoverSetNumber = default (12.0); // -1 means automatically detect the number of coversets to get the capture rate // n would mean that the computation of the capture rate uses n coversets regardless of the real number of coversets // which is usefull for test scenario with a small number of nodes double forceNumberOfCoversets = default (-1); bool isMobile = default (false); double isMobileProb = default (1.0); // must be between 0 and 1 bool isCamRotatable = default (false); double isCamRotatableProb = default (1.0); // must be between 0 and 1 double maxMobilitySpeed = default (0.5); // in m/s double maxCamRotationTime = default (5.0); // in seconds for a complete rotation double maxCamRotationCount = default (2.0); // in number of rotations double load = default (0.5); // not used for the moment bool idReportToSink = default (false); // can be used to send test packets to the sink // specify the sink for source-initiated on-demand routing such as AODV // if "NO" then the routing protocol is assumed to be a pro-active protocol such as MPRings (Castalia) or OLSR string nextRecipient = default ("NO"); bool sendImageOnIntrusion = default (false); double forcedIntrusionProb = default (0.0); bool forceSendImage = default (false); double forceSendImageInterval = default (10.0); // in seconds bool activateCoversetOnIntrusion = default (false); bool propagateCoversetActivation = default (false); double forcedCoversetActivationAt = default (-1.0); int imageCountOnIntrusion = default (1); // how many images a node send when it detects an intrusion int imageCountOnCoversetActivation = default (1); // how many images a node send when it is activated by a neighbor node int imageByteSize = default (32000); // in bytes -> 320x200, 16 colors/pixel int imageChunkSize = default (256); // in bytes string imageFilename = default ("NO"); bool cranEncoding = default (false); string imageBMPOriginalFilename = default ("NO"); bool displayReceivedImage = default (false); bool waitForKeyPressWhenDisplayImage = default (false); double displayReceivedImageTimer = default(10); // in s bool keepImageFile = default (false); double imagePacketLossProb = default (0.0); int imageSuccPacketLossCount = default (0); double imageByteCorruptedProb = default (0.0); bool selectiveFOV = default (false); bool virtualFOV = default (false); bool onlyAltBC = default (false); double aTimeSend = default (0.0); // the a parameter to define the minimum time between 2 packet generation double bTimeSend = default (0.0); // the b parameter to define the minimum time between 2 packet generation double globalSendTime = default (0.0); // in ms, if non-zero, will overwrite the aTimeSend and bTimeSend definations double globalRelayTime = default (0.0); // in ms gates: output toCommunicationModule; output toSensorDeviceManager; input fromCommunicationModule; input fromSensorDeviceManager; input fromResourceManager; }