[Tinyos-contrib-commits] CVS: tinyos-1.x/contrib/wustl/apps/Agilla/types Agilla.h, 1.23, 1.24 Clustering.h, 1.3, 1.4 ExpLogger.h, 1.10, 1.11 LocationDirectory.h, 1.9, 1.10 MigrationMsgs.h, 1.13, 1.14 TupleSpace.h, 1.7, 1.8

Chien-Liang Fok chien-liang at users.sourceforge.net
Thu May 18 12:58:44 PDT 2006


Update of /cvsroot/tinyos/tinyos-1.x/contrib/wustl/apps/Agilla/types
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25569/contrib/wustl/apps/Agilla/types

Modified Files:
	Agilla.h Clustering.h ExpLogger.h LocationDirectory.h 
	MigrationMsgs.h TupleSpace.h 
Log Message:



Index: Clustering.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/wustl/apps/Agilla/types/Clustering.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Clustering.h	6 Apr 2006 02:11:09 -0000	1.3
--- Clustering.h	18 May 2006 19:58:41 -0000	1.4
***************
*** 1,30 ****
! #ifndef CLUSTERING_H_INCLUDED
! #define CLUSTERING_H_INCLUDED
! 
! #include "TosTime.h"
! #include "Agilla.h"
! 
! enum {
!   AM_AGILLACLUSTERDEBUGMSG      = 0x4b,
!   AM_AGILLACLUSTERMSG           = 0x51,
! };
! 
! typedef struct AgillaRectangle {
!     AgillaLocation llc;     // 4 bytes Lower left corner of rectangle (x,y)
!     AgillaLocation urc;     // 4 bytes Upper right corner of rectangle (x,y)
! } AgillaRectangle;          // 8 bytes
! 
! typedef struct AgillaClusterDebugMsg
! {
!   uint16_t src;
!   uint16_t id;                  // clusterhead id
!   AgillaRectangle bounding_box; // set if sent by clusterhead
! } AgillaClusterDebugMsg;
! 
! typedef struct AgillaClusterMsg {
!     uint16_t id;                    // 2 bytes Clusterhead id
!     AgillaRectangle bounding_box;   // 8 bytes Bounding box of cluster
! } AgillaClusterMsg;                 // 10 bytes
! 
! 
! #endif
--- 1,30 ----
! #ifndef CLUSTERING_H_INCLUDED
! #define CLUSTERING_H_INCLUDED
! 
! #include "TosTime.h"
! #include "Agilla.h"
! 
! enum {
!   AM_AGILLACLUSTERDEBUGMSG      = 0x4b,
!   AM_AGILLACLUSTERMSG           = 0x51,
! };
! 
! typedef struct AgillaRectangle {
!     AgillaLocation llc;     // 4 bytes Lower left corner of rectangle (x,y)
!     AgillaLocation urc;     // 4 bytes Upper right corner of rectangle (x,y)
! } AgillaRectangle;          // 8 bytes
! 
! typedef struct AgillaClusterDebugMsg
! {
!   uint16_t src;
!   uint16_t id;                  // clusterhead id
!   AgillaRectangle bounding_box; // set if sent by clusterhead
! } AgillaClusterDebugMsg;
! 
! typedef struct AgillaClusterMsg {
!     uint16_t id;                    // 2 bytes Clusterhead id
!     AgillaRectangle bounding_box;   // 8 bytes Bounding box of cluster
! } AgillaClusterMsg;                 // 10 bytes
! 
! 
! #endif

Index: ExpLogger.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/wustl/apps/Agilla/types/ExpLogger.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** ExpLogger.h	27 Apr 2006 23:53:19 -0000	1.10
--- ExpLogger.h	18 May 2006 19:58:41 -0000	1.11
***************
*** 1,105 ****
! #ifndef AGILLA_EXP_LOGGER_H_INCLUDED
! #define AGILLA_EXP_LOGGER_H_INCLUDED
! 
! #include "TOSTime.h"
! #include "Agilla.h"
! #include "LocationDirectory.h"
! 
! enum {
!   AM_AGILLAEXPQUERYRESULTSMSG           = 0x90,
!   AM_AGILLAEXPLATENCYMSG                = 0x91,
!   AM_AGILLAEXPRESULTSMSG                = 0x92,
!   AM_AGILLATRACEMSG                     = 0x93,
!   AM_AGILLATRACEGETAGENTSMSG            = 0x94
! };
! 
! /**
!  * This is sent from the base station to a mote
!  * to get the experimental results.
!  */
! typedef struct AgillaExpQueryResultsMsg {
!   uint16_t dummy;
! } AgillaExpQueryResultsMsg;
! 
! /**
!  * This is sent from the mote to the base station
!  * whenever a latency is measured.
!  */
! typedef struct AgillaExpLatencyMsg {
!   uint32_t latency;
! } AgillaExpLatencyMsg;
! 
! /**
!  * This is sent from the mote to the base station
!  * after the base station queries for the experimental
!  * results.
!  */
! typedef struct AgillaExpResultsMsg {
!   uint16_t numQueries;
!   uint16_t numUpdates;
!   uint16_t numReplies;
! } AgillaExpResultsMsg;
! 
! 
! enum {
!   AGENT_MOVED   = 0,
!   QUERY_GET_LOCATION_ISSUED  = 1,
!   QUERY_GET_LOCATION_RESULTS_RECEIVED = 2,
!   QUERY_GET_LOCATION_FORWARDED = 3,
!   QUERY_GET_LOCATION_RESULTS_FORWARDED = 4,
!   SET_CLUSTER_HEAD = 5,
!   AGENT_MIGRATING = 6,
    QUERY_GET_CLOSEST_AGENT_ISSUED = 7,
!   QUERY_GET_CLOSEST_AGENT_RESULTS_RECEIVED = 8,
!   CLUSTER_AGENT_ADDED = 9,
!   CLUSTER_AGENT_REMOVED = 10,
!   CLUSTER_AGENT_CLEARED = 11,
!   CLUSTERHEAD_DIRECTORY_STARTED = 12,
!   CLUSTERHEAD_DIRECTORY_STOPPED = 13,
!   AGENT_LOCATION_SENT = 14,
!   QUERY_GET_CLOSEST_AGENT_FORWARDED = 15,
!   QUERY_GET_CLOSEST_AGENT_RESULTS_FORWARDED = 16,
!   QUERY_GET_AGENTS_ISSUED = 17,
!   QUERY_GET_AGENTS_RESULT_RECEIVED = 18,
!   QUERY_GET_AGENTS_FORWARDED = 19,
!   QUERY_GET_AGENTS_RESULTS_FORWARDED = 20,
!   SENDING_AGENT_LOCATION = 21,
!   CLUSTER_AGENT_UPDATED = 22
  
!   /*STATE_ACCEPTED = 7,
!   CODE_ACCEPTED = 8,
!   HEAP_ACCEPTED = 9,
!   OPSTACK_ACCEPTED = 10,
!   RXN_ACCEPTED = 11,
!   STATE_REJECTED = 12,
!   CODE_REJECTED = 13,
!   HEAP_REJECTED = 14,
!   OPSTACK_REJECTED = 15,
!   RXN_REJECTED = 16,*/
! } AgillaTraceConstants;
! 
! /**
!  * This is sent from the mote to the base station
!  * after the base station queries for the experimental
!  * results.
!  */
! typedef struct AgillaTraceMsg {
!   tos_time_t timestamp;           // 8 bytes
!   uint16_t agentID;               // 2 bytes
!   uint16_t nodeID;                // 2 bytes
!   uint16_t action;                // 2 bytes
!   uint16_t qid;                   // 2 bytes: query id
!   uint16_t success;               // 2 bytes
!   AgillaLocation loc;             // 4 bytes
! } AgillaTraceMsg; // 22 bytes
! 
! typedef struct AgillaTraceGetAgentsMsg {
!   tos_time_t timestamp;                   // 8 bytes
!   uint16_t agentID;                       // 2 bytes
!   uint16_t nodeID;                        // 2 bytes
!   uint16_t qid;                           // 2 bytes
!   uint16_t num_agents;                    // 2 bytes
!   AgillaAgentID agent_id[MAX_AGENT_NUM];   // 2 bytes: id of agent
!   AgillaLocation loc[MAX_AGENT_NUM];       // 4 bytes: location of agent
! } AgillaTraceGetAgentsMsg; // 28 bytes
! #endif
--- 1,105 ----
! #ifndef AGILLA_EXP_LOGGER_H_INCLUDED
! #define AGILLA_EXP_LOGGER_H_INCLUDED
! 
! #include "TOSTime.h"
! #include "Agilla.h"
! #include "LocationDirectory.h"
! 
! enum {
!   AM_AGILLAEXPQUERYRESULTSMSG           = 0x90,
!   AM_AGILLAEXPLATENCYMSG                = 0x91,
!   AM_AGILLAEXPRESULTSMSG                = 0x92,
!   AM_AGILLATRACEMSG                     = 0x93,
!   AM_AGILLATRACEGETAGENTSMSG            = 0x94
! };
! 
! /**
!  * This is sent from the base station to a mote
!  * to get the experimental results.
!  */
! typedef struct AgillaExpQueryResultsMsg {
!   uint16_t dummy;
! } AgillaExpQueryResultsMsg;
! 
! /**
!  * This is sent from the mote to the base station
!  * whenever a latency is measured.
!  */
! typedef struct AgillaExpLatencyMsg {
!   uint32_t latency;
! } AgillaExpLatencyMsg;
! 
! /**
!  * This is sent from the mote to the base station
!  * after the base station queries for the experimental
!  * results.
!  */
! typedef struct AgillaExpResultsMsg {
!   uint16_t numQueries;
!   uint16_t numUpdates;
!   uint16_t numReplies;
! } AgillaExpResultsMsg;
! 
! 
! enum {
!   AGENT_MOVED   = 0,
!   QUERY_GET_LOCATION_ISSUED  = 1,
!   QUERY_GET_LOCATION_RESULTS_RECEIVED = 2,
!   QUERY_GET_LOCATION_FORWARDED = 3,
!   QUERY_GET_LOCATION_RESULTS_FORWARDED = 4,
!   SET_CLUSTER_HEAD = 5,
!   AGENT_MIGRATING = 6,
    QUERY_GET_CLOSEST_AGENT_ISSUED = 7,
!   QUERY_GET_CLOSEST_AGENT_RESULTS_RECEIVED = 8,
!   CLUSTER_AGENT_ADDED = 9,
!   CLUSTER_AGENT_REMOVED = 10,
!   CLUSTER_AGENT_CLEARED = 11,
!   CLUSTERHEAD_DIRECTORY_STARTED = 12,
!   CLUSTERHEAD_DIRECTORY_STOPPED = 13,
!   AGENT_LOCATION_SENT = 14,
!   QUERY_GET_CLOSEST_AGENT_FORWARDED = 15,
!   QUERY_GET_CLOSEST_AGENT_RESULTS_FORWARDED = 16,
!   QUERY_GET_AGENTS_ISSUED = 17,
!   QUERY_GET_AGENTS_RESULT_RECEIVED = 18,
!   QUERY_GET_AGENTS_FORWARDED = 19,
!   QUERY_GET_AGENTS_RESULTS_FORWARDED = 20,
!   SENDING_AGENT_LOCATION = 21,
!   CLUSTER_AGENT_UPDATED = 22
  
!   /*STATE_ACCEPTED = 7,
!   CODE_ACCEPTED = 8,
!   HEAP_ACCEPTED = 9,
!   OPSTACK_ACCEPTED = 10,
!   RXN_ACCEPTED = 11,
!   STATE_REJECTED = 12,
!   CODE_REJECTED = 13,
!   HEAP_REJECTED = 14,
!   OPSTACK_REJECTED = 15,
!   RXN_REJECTED = 16,*/
! } AgillaTraceConstants;
! 
! /**
!  * This is sent from the mote to the base station
!  * after the base station queries for the experimental
!  * results.
!  */
! typedef struct AgillaTraceMsg {
!   tos_time_t timestamp;           // 8 bytes
!   uint16_t agentID;               // 2 bytes
!   uint16_t nodeID;                // 2 bytes
!   uint16_t action;                // 2 bytes
!   uint16_t qid;                   // 2 bytes: query id
!   uint16_t success;               // 2 bytes
!   AgillaLocation loc;             // 4 bytes
! } AgillaTraceMsg; // 22 bytes
! 
! typedef struct AgillaTraceGetAgentsMsg {
!   tos_time_t timestamp;                   // 8 bytes
!   uint16_t agentID;                       // 2 bytes
!   uint16_t nodeID;                        // 2 bytes
!   uint16_t qid;                           // 2 bytes
!   uint16_t num_agents;                    // 2 bytes
!   AgillaAgentID agent_id[MAX_AGENT_NUM];   // 2 bytes: id of agent
!   AgillaLocation loc[MAX_AGENT_NUM];       // 4 bytes: location of agent
! } AgillaTraceGetAgentsMsg; // 28 bytes
! #endif

Index: LocationDirectory.h
===================================================================
RCS file: /cvsroot/tinyos/tinyos-1.x/contrib/wustl/apps/Agilla/types/LocationDirectory.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** LocationDirectory.h	5 Apr 2006 18:04:39 -0000	1.9
--- LocationDirectory.h	18 May 2006 19:58:41 -0000	1.10
***************
*** 1,181 ****
! #ifndef AGILLA_LOCATION_DIRECTORY_H_INCLUDED
! #define AGILLA_LOCATION_DIRECTORY_H_INCLUDED
! 
! #include "Agilla.h"
! #include "TOSTime.h"
! 
! #define NO_CH 0xff
! 
! enum {
!   MAX_AGENT_NUM   = 2,
!   MAX_AGENT_ARRAY_NUM = 10,
! } AgillaLocDirConstants;
! 
! 
! 
! enum {
!   AM_AGILLALOCMSG                       = 0x42,
!   AM_AGILLAQUERYNUMAGENTSMSG            = 0x43,
!   AM_AGILLAQUERYAGENTLOCMSG             = 0x44,
!   AM_AGILLAQUERYNEARESTAGENTMSG         = 0x45,
!   AM_AGILLAQUERYALLAGENTSMSG            = 0x46,
!   AM_AGILLAQUERYREPLYNUMAGENTSMSG       = 0x47,
!   AM_AGILLAQUERYREPLYAGENTLOCMSG        = 0x48,
!   AM_AGILLAQUERYREPLYNEARESTAGENTMSG    = 0x49,
!   AM_AGILLAQUERYREPLYALLAGENTSMSG       = 0x4a,
! };
! 
! 
! 
! typedef struct AgillaLocMAgentInfo {
!   AgillaAgentID agent_id;   // 2 bytes: id of agent
!   AgillaLocation loc;       // 4 bytes: location of agent
! } AgillaLocMAgentInfo;      // 6 bytes
! 
! /**
!  *
!  * This message is used by the location directory service to
!  * update the Base Station about an agent location.
!  *
!  */
! 
! typedef struct AgillaLocMsg {
!   AgillaAgentID agent_id;       //  2 bytes: id of agent detected
!   uint16_t agent_type;          //  2 bytes: type of agent
!   uint16_t src;                 //  2 bytes: src id of host that detected the agent
!   AgillaLocation loc;           //  4 bytes: location of agent
!   tos_time_t timestamp;         //  2 bytes: time at which agent was detected
!   uint16_t dest;                //  2 bytes: destination id (BS id)
!   uint16_t seq;                 //  2 bytes: sequence number of message
! } AgillaLocMsg;                 // 18 bytes
! 
! /**
!  *
!  * This message is used to query the total number of agents of type "type" in the system
!  *
!  */
! 
! typedef struct AgillaQueryNumAgentsMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   uint16_t agent_type;          // 2 bytes: type of agent being queried
! } AgillaQueryNumAgentsMsg;      // 12 bytes
! 
! /**
!  *
!  * This message is used to query the location of a particular agent in the system
!  *
!  */
! 
! typedef struct AgillaQueryAgentLocMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   AgillaAgentID find_agent_id;  // 2 bytes: id of agent whose location is requested
! } AgillaQueryAgentLocMsg;       // 12 bytes
! 
! /**
!  *
!  * This message is used to query the location and id of an agent of type "type" that is physically
!  * closest to the querying agent
!  *
!  */
! 
! typedef struct AgillaQueryNearestAgentMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   AgillaLocation loc;           // 4 bytes: location of agent issuing query
!   uint16_t agent_type;          // 2 bytes: type of agent being queried
! } AgillaQueryNearestAgentMsg;   // 16 bytes
! 
! /**
!  *
!  * This message is used to query the location and ids of all agents of type "type" in the system
!  *
!  */
! 
! typedef struct AgillaQueryAllAgentsMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   uint16_t agent_type;          // 2 bytes: type of agent being queried
! } AgillaQueryAllAgentsMsg;      // 12 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the number of agents in the system
!  *
!  */
! 
! typedef struct AgillaQueryReplyNumAgentsMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t dest;                // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   int16_t num_agents;           // 2 bytes: number of agents
! } AgillaQueryReplyNumAgentsMsg; // 8 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the location of a particular agent in the system
!  *
!  */
! 
! typedef struct AgillaQueryReplyAgentLocMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t dest;                // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   AgillaLocation loc;           // 4 bytes: location of agent that was requested by the query
!   AgillaString nw_desc;         // 2 bytes: network description; unique for each sensor network
! } AgillaQueryReplyAgentLocMsg;  // 10 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the nearest agent (to the querying agent)
!  * of a particular type in the system.
!  *
!  */
! 
! typedef struct AgillaQueryReplyNearestAgentMsg {
!   AgillaAgentID agent_id;           // 2 bytes: id of agent issuing query
!   uint16_t src;                     // 2 bytes: id of node sending the reply
!   uint16_t dest;                    // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                     // 2 bytes: query id
!   AgillaAgentID nearest_agent_id;   // 2 bytes: id of nearest agent
!   AgillaLocation nearest_agent_loc; // 4 bytes: location of nearest agent
! } AgillaQueryReplyNearestAgentMsg;  // 14 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the locations and ids of all agents
!  * of a particular type in the system.
!  *
!  */
! 
! typedef struct AgillaQueryReplyAllAgentsMsg {
!   AgillaAgentID agent_id;                           // 2 bytes: id of agent issuing query
!   uint16_t src;                                     // 2 bytes: id of node sending the reply
!   uint16_t dest;                                    // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                                     // 2 byte: query id
!   uint16_t num_agents;                              // 2 byte: number of agents
!   AgillaLocMAgentInfo agent_info[MAX_AGENT_NUM];    // 18 bytes: agent info (id, loc) 6 bytes each
! } AgillaQueryReplyAllAgentsMsg;                     // 28 bytes
! 
! #endif
--- 1,198 ----
! #ifndef AGILLA_LOCATION_DIRECTORY_H_INCLUDED
! #define AGILLA_LOCATION_DIRECTORY_H_INCLUDED
! 
! #include "Agilla.h"
! #include "TOSTime.h"
! 
! #define NO_CH 0xff
! 
! enum {
!   MAX_AGENT_NUM   = 2,
!   MAX_AGENT_ARRAY_NUM = 10,
! } AgillaLocDirConstants;
! 
! 
! 
! enum {
!   AM_AGILLALOCMSG                       = 0x42,
!   AM_AGILLAQUERYNUMAGENTSMSG            = 0x43,
!   AM_AGILLAQUERYAGENTLOCMSG             = 0x44,
!   AM_AGILLAQUERYNEARESTAGENTMSG         = 0x45,
!   AM_AGILLAQUERYALLAGENTSMSG            = 0x46,
!   AM_AGILLAQUERYREPLYNUMAGENTSMSG       = 0x47,
!   AM_AGILLAQUERYREPLYAGENTLOCMSG        = 0x48,
!   AM_AGILLAQUERYREPLYNEARESTAGENTMSG    = 0x49,
!   AM_AGILLAQUERYREPLYALLAGENTSMSG       = 0x4a,
! };
! 
! /**
!  * These flags are used in the "flag" field of the query
!  * messages.
!  */
! enum {
!   LOCAL = 0x00,
!   GLOBAL  = 0x01,
! } QueryFlags;
! 
! /**
!  * These flags are used in the "flag" field of the query
!  * reply message.
!  */
! enum {
!   INVALID = 0x01,
!   VALID   = 0x02,   // Does the message contain results?
!   COARSE  = 0x04,   // Is it from the BS or from the CH?
! } QueryReplyFlags;
!   
! 
! 
! typedef struct AgillaLocMAgentInfo {
!   AgillaAgentID agent_id;   // 2 bytes: id of agent
!   AgillaLocation loc;       // 4 bytes: location of agent
! } AgillaLocMAgentInfo;      // 6 bytes
! 
! /**
!  *
!  * This message is used by the location directory service to
!  * update the Base Station about an agent location.
!  *
!  */
! 
! typedef struct AgillaLocMsg {
!   AgillaAgentID agent_id;       //  2 bytes: id of agent detected
!   uint16_t agent_type;          //  2 bytes: type of agent
!   uint16_t src;                 //  2 bytes: src id of host that detected the agent
!   AgillaLocation loc;           //  4 bytes: location of agent
!   tos_time_t timestamp;         //  2 bytes: time at which agent was detected
!   uint16_t dest;                //  2 bytes: destination id (BS id)
!   uint16_t seq;                 //  2 bytes: sequence number of message
! } AgillaLocMsg;                 // 18 bytes
! 
! /**
!  *
!  * This message is used to query the total number of agents of type "type" in the system
!  *
!  */
! 
! typedef struct AgillaQueryNumAgentsMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   uint16_t agent_type;          // 2 bytes: type of agent being queried
! } AgillaQueryNumAgentsMsg;      // 12 bytes
! 
! /**
!  *
!  * This message is used to query the location of a particular agent in the system
!  *
!  */
! typedef struct AgillaQueryAgentLocMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be resolved only in the current
!                                 //          sensor network or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   AgillaAgentID find_agent_id;  // 2 bytes: id of agent whose location is requested
! } AgillaQueryAgentLocMsg;       // 12 bytes
! 
! /**
!  *
!  * This message is used to query the location and id of an agent of type "type" that is physically
!  * closest to the querying agent
!  *
!  */
! typedef struct AgillaQueryNearestAgentMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   AgillaLocation loc;           // 4 bytes: location of agent issuing query
!   uint16_t agent_type;          // 2 bytes: type of agent being queried
! } AgillaQueryNearestAgentMsg;   // 16 bytes
! 
! /**
!  *
!  * This message is used to query the location and ids of all agents of type "type" in the system
!  *
!  */
! 
! typedef struct AgillaQueryAllAgentsMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t src;                 // 2 bytes: src id of host that contains the agent
!   uint16_t dest;                // 2 bytes: id of node to which query needs to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 represents if the query should be reolved only in the current
!                                 //          sensor netowrk or throughout the system (across sensor networks)
!                                 //          if bit 0 is 1 then the query should be sent to all networks
!   uint16_t agent_type;          // 2 bytes: type of agent being queried
! } AgillaQueryAllAgentsMsg;      // 12 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the number of agents in the system
!  *
!  */
! typedef struct AgillaQueryReplyNumAgentsMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t dest;                // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 = coarse
!   int16_t num_agents;           // 2 bytes: number of agents
! } AgillaQueryReplyNumAgentsMsg; // 8 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the location of a particular agent in the system
!  *
!  */
! typedef struct AgillaQueryReplyAgentLocMsg {
!   AgillaAgentID agent_id;       // 2 bytes: id of agent issuing query
!   uint16_t dest;                // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                 // 2 bytes: query id
!   uint16_t flags;               // 2 bytes: bit 0 = coarse
!   AgillaLocation loc;           // 4 bytes: location of agent that was requested by the query
!   AgillaString nw_desc;         // 2 bytes: network description; unique for each sensor network
! } AgillaQueryReplyAgentLocMsg;  // 14 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the nearest agent (to the querying agent)
!  * of a particular type in the system.
!  *
!  */
! typedef struct AgillaQueryReplyNearestAgentMsg {
!   AgillaAgentID agent_id;           // 2 bytes: id of agent issuing query
!   uint16_t src;                     // 2 bytes: id of node sending the reply
!   uint16_t dest;                    // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                     // 2 bytes: query id
!   uint16_t flags;                   // 2 bytes: bit 0 = coarse
!   AgillaAgentID nearest_agent_id;   // 2 bytes: id of nearest agent
!   AgillaLocation nearest_agent_loc; // 4 bytes: location of nearest agent
! } AgillaQueryReplyNearestAgentMsg;  // 16 bytes
! 
! /**
!  *
!  * This message contains the reply to a query asking for the locations and ids of all agents
!  * of a particular type in the system.
!  *
!  */
! typedef struct AgillaQueryReplyAllAgentsMsg {
!   AgillaAgentID agent_id;                           // 2 bytes: id of agent issuing query
!   uint16_t src;                                     // 2 bytes: id of node sending the reply
!   uint16_t dest;                                    // 2 bytes: id of node to which query result should to be routed
!   uint16_t qid;                                     // 2 bytes: query id
!   uint16_t num_agents;                              // 2 bytes: number of agents
!   uint16_t flags;                                   // 2 bytes: bit 0 = coarse
!   AgillaLocMAgentInfo agent_info[MAX_AGENT_NUM];    // 12 bytes: agent info (id, loc) 6 bytes each
! } AgillaQueryReplyAllAgentsMsg;                     // 24 bytes
! 
! #endif





More information about the Tinyos-contrib-commits mailing list