Sei sulla pagina 1di 2678

diff -Naur ns-allinone-2.29/ns-2.29/apps/udp.cc ns-allinone-2.29-mannasim/ns-2.

2
9/apps/udp.cc
--- ns-allinone-2.29/ns-2.29/apps/udp.cc 2005-10-20 02:45:22.000000000 -0
200
+++ ns-allinone-2.29-mannasim/ns-2.29/apps/udp.cc 2006-05-26 11:08:29.0000
00000 -0300
@@ -93,7 +93,12 @@
double local_time = Scheduler::instance().clock();
while (n-- > 0) {
- p = allocpkt();
+
+ // Alterated by The Manna Research Group
+ // Used by mannasim - wireless sensor networks simulator.
+ // p = allocpkt();
+ p = allocpkt(sizeof(data));
+
hdr_cmn::access(p)->size() = size_;
hdr_rtp* rh = hdr_rtp::access(p);
rh->flags() = 0;
@@ -108,7 +113,10 @@
}
n = nbytes % size_;
if (n > 0) {
- p = allocpkt();
+
+ //p = allocpkt(); Alterado pelo grupo Manna
+ p = allocpkt(sizeof(data));
+
hdr_cmn::access(p)->size() = n;
hdr_rtp* rh = hdr_rtp::access(p);
rh->flags() = 0;
diff -Naur ns-allinone-2.29/ns-2.29/common/ns-process.h ns-allinone-2.29-mannasi
m/ns-2.29/common/ns-process.h
--- ns-allinone-2.29/ns-2.29/common/ns-process.h 2005-10-20 02:45:22.0000
00000 -0200
+++ ns-allinone-2.29-mannasim/ns-2.29/common/ns-process.h 2006-05-26 11:08
:30.000000000 -0300
@@ -84,9 +84,22 @@
// pub/sub ADU
PUBSUB,
- //Diffusion ADU
+ // Diffusion ADU
DIFFUSION_DATA,
+ // Inserted by The Manna Research Group
+ // ADUs used by mannasim - wireless sensor networks
+ // simulator.
+ SENSED_DATA,
+ MANAGEMENT_DATA,
+
+ ON_DEMAND_DATA,
+ ON_DEMAND_PARAMETER,
+
+ VIDEO_SENSED_DATA,
+ TEMPERATURE_SENSED_DATA,
+ CARBON_MONOXIDE_SENSED_DATA,
+
// Last ADU
ADU_LAST
@@ -107,6 +120,13 @@
// The following two methods MUST be rewrited for EVERY derived classes
virtual int size() const { return sizeof(AppData); }
virtual AppData* copy() = 0;
+
+ // Inserted by The Manna Research Group
+ // Data functions for On Demand Sensing - these functions should
+ // be overwritten by specific application data types as temperatura
+ // AppData for example.
+ virtual bool compareData(AppData* data, int operation) {return false;}
+ virtual bool checkEvent(AppData* data_) {return false;}
};
// Models any entity that is capable of process an ADU.
diff -Naur ns-allinone-2.29/ns-2.29/common/packet.cc ns-allinone-2.29-mannasim/n
s-2.29/common/packet.cc
--- ns-allinone-2.29/ns-2.29/common/packet.cc 2005-10-20 02:45:22.000000000 -0
200
+++ ns-allinone-2.29-mannasim/ns-2.29/common/packet.cc 2006-05-26 11:08:30.0000
00000 -0300
@@ -47,6 +47,8 @@
Packet* Packet::free_; // free list
int hdr_cmn::offset_; // static offset of common header
int hdr_flags::offset_; // static offset of flags header
+// MIT_uAMPS
+int hdr_rca::offset_; // static offset of rca header

PacketHeaderClass::PacketHeaderClass(const char* classname, int hdrlen) :


diff -Naur ns-allinone-2.29/ns-2.29/common/packet.h ns-allinone-2.29-mannasim/ns
-2.29/common/packet.h
--- ns-allinone-2.29/ns-2.29/common/packet.h 2005-10-20 02:45:22.000000000 -0
200
+++ ns-allinone-2.29-mannasim/ns-2.29/common/packet.h 2006-05-26 11:08:30.0000
00000 -0300
@@ -70,6 +70,10 @@
//#define HDR_DIFF(p) (hdr_diff::access(p)) /* SCADD's diffusion ported in
to ns */
#define HDR_LMS(p) (hdr_lms::access(p))
+// MIT uAmps
+#define HDR_RCA(p) ((struct hdr_rca*)(p)->access(hdr_rca::offset()))
+#define HDR_MACSensor(p) ((struct hdr_macSensor*)(p)->access(hdr_mac::offset_))
+
/* --------------------------------------------------------------------*/
enum packet_t {
@@ -167,6 +171,9 @@
// HDLC packet
PT_HDLC,
+ // MIT_uAMPS
+ PT_RCA,
+
// insert new packet types here
PT_NTYPE // This MUST be the LAST one
};
@@ -263,6 +270,9 @@
// XCP
name_[PT_XCP]="xcp";
+ // MIT_uAMPS
+ name_[PT_RCA] = "rca";
+
name_[PT_NTYPE]= "undefined";
}
const char* name(packet_t p) const {
@@ -405,6 +415,9 @@
u_int8_t incoming;
//monarch extns end;
+
+ // MIT_uAMPS
+ static void PrintRcHeader(Packet *p, char *layer);
};
/*
@@ -512,6 +525,58 @@
//monarch_end
};

+// MIT_uAMPS
+struct hdr_rca {
+ int msg_type_;
+ char meta_[1000];
+ int meta_size_;
+ float dist_to_dest_;
+ int dist_est_;
+ int rca_mac_src_;
+ int rca_mac_dst_;
+ int rca_link_src_;
+ int rca_link_dst_;
+ int code_;
+ static int offset_; // offset for this header
+ inline static int& offset() { return offset_; }
+ inline static hdr_rca* access(Packet* p) {
+ return (hdr_rca*) p->access(offset_);
+ }
+
+/* per-field member functions */
+ inline int& msg_type() { return (msg_type_); }
+ inline int& meta_size() { return (meta_size_); }
+ inline float& get_dist() { return (dist_to_dest_); }
+ inline int& dist_est() { return (dist_est_); }
+ inline void set_meta(const char* data) {
+ meta_size_ = strlen(data);
+ if (meta_size_ > maxmetasize()) {
+ printf("Error: Meta size %d too large (max = %d).\n", m
eta_size_, maxmetasize());
+ exit(1);
+ }
+ memcpy(meta_, data, meta_size_+1);
+ }
+ inline void set_meta(const char * data, int size) {
+ if (size > maxmetasize())
+ {
+ printf("Error: Meta size %d too large (max = %d).\n", si
ze, maxmetasize());
+ exit(1);
+ }
+ memcpy(meta_, data, size);
+ meta_size_ = size;
+ }
+ inline char* const meta() { return (meta_); }
+ inline int maxmetasize() { return (sizeof(meta_)); }
+ inline int& rca_mac_src() { return (rca_mac_src_); }
+ inline int& rca_mac_dst() { return (rca_mac_dst_); }
+ inline int& rca_link_src() { return (rca_link_src_); }
+ inline int& rca_link_dst() { return (rca_link_dst_); }
+ inline int& get_code() { return (code_); }
+ int base_X;
+ int base_Y;
+ inline int& get_base_X() { return (base_X); }
+ inline int& get_base_Y() { return (base_Y); }
+};
class PacketHeaderClass : public TclClass {
protected:
@@ -543,6 +608,11 @@
assert(p->data_ == 0);
p->uid_ = 0;
p->time_ = 0;
+
+ // MIT_uAMPS
+ hdr_rca* rca_hdr = HDR_RCA(p);
+ rca_hdr->meta_size_ = 0;
+
} else {
p = new Packet;
p->bits_ = new unsigned char[hdrlen_];
@@ -616,6 +686,14 @@
p->data_ = data_->copy();
p->txinfo_.init(&txinfo_);
+ // MIT_uAMPS
+ hdr_rca* ch = HDR_RCA(this);
+ hdr_rca* new_ch = HDR_RCA(p);
+ if (ch->meta_size_) {
+ new_ch->meta_size_ = ch->meta_size_;
+ memcpy(new_ch->meta_, ch->meta_, ch->meta_size_+1);
+ }
+
return (p);
}
@@ -640,4 +718,12 @@
}
}
+// MIT_uAMPS
+inline void Packet::PrintRcHeader(Packet *p, char *layer)
+{
+ hdr_cmn *hdr = HDR_CMN(p);
+ hdr_rca *rca_hdr = HDR_RCA(p);
+ printf("%s Layer received: Type=%d data_size=%d\n\tMeta = %s\n\tSource =
%x\n\tTarget = %x\n\tLink_target =%x\n",layer,rca_hdr->msg_type(), hdr->size(),
rca_hdr->meta(),rca_hdr->rca_mac_src(), rca_hdr->rca_mac_dst(), rca_hdr->rca_li
nk_dst());
+}
+
#endif
diff -Naur ns-allinone-2.29/ns-2.29/mac/mac-802_11.cc ns-allinone-2.29-mannasim/
ns-2.29/mac/mac-802_11.cc
--- ns-allinone-2.29/ns-2.29/mac/mac-802_11.cc 2005-10-20 02:45:22.000000000 -0
200
+++ ns-allinone-2.29-mannasim/ns-2.29/mac/mac-802_11.cc 2006-05-26 11:08:30.0000
00000 -0300
@@ -1144,6 +1144,28 @@
*/
if(mhBackoff_.busy() == 0) {
if(is_idle()) {
+
+
+ /// Inserted by the Manna Research Group
+ ///
+ /// This code permits that MAC still uses backoff in the case of
+ /// MAC idles and broadcasting.
+ /// IMPORTANT: NS-2 still works well after added this co
de, but
+ /// we don't know if it is consistent with other cases.
+ ///
+ /// Added by Fabricio Silva Aguiar - do not loose broadcast message
s.
+ ///
+ if((u_int32_t)ETHER_ADDR(dh->dh_ra) == MAC_BROADCAST){
+ mhBackoff_.start(cw_, is_idle());
+ }else{
+ if(mhDefer_.busy() == 0) {
+ rTime = (Random::random() % cw_) * (phym
ib_.getSlotTime());
+ mhDefer_.start(phymib_.getDIFS() + rTime
);
+ }
+ }
+
+
+
if (mhDefer_.busy() == 0) {
/*
* If we are already deferring, there is no
diff -Naur ns-allinone-2.29/ns-2.29/Makefile.in ns-allinone-2.29-mannasim/ns-2.2
9/Makefile.in
--- ns-allinone-2.29/ns-2.29/Makefile.in 2005-10-20 02:45:22.000000000 -0
200
+++ ns-allinone-2.29-mannasim/ns-2.29/Makefile.in 2006-05-26 11:08:30.0000
00000 -0300
@@ -301,6 +301,33 @@
wpan/p802_15_4nam.o wpan/p802_15_4phy.o \
wpan/p802_15_4sscs.o wpan/p802_15_4timer.o \
wpan/p802_15_4trace.o wpan/p802_15_4transac.o \
+ mannasim/accessPointApp.o \
+ mannasim/aggregateProcessing.o \
+ mannasim/battery.o \
+ mannasim/carbonMonoxideAppData.o \
+ mannasim/carbonMonoxideDataGenerator.o\
+ mannasim/clusterHeadApp.o \
+ mannasim/commonNodeApp.o \
+ mannasim/dataGenerator.o \
+ mannasim/onDemandData.o \
+ mannasim/onDemandParameter.o \
+ mannasim/processing.o \
+ mannasim/sensedData.o \
+ mannasim/sensorBaseApp.o \
+ mannasim/sensorNode.o \
+ mannasim/temperatureAppData.o \
+ mannasim/temperatureDataGenerator.o\
+ mannasim/diffusion/nrAttributes.o\
+ mannasim/diffusion/commonNodeDiffApp.o \
+ mannasim/diffusion/accessPointDiffApp.o \
+ mannasim/leach/mac/leach-wireless-phy.o \
+ mannasim/leach/mac/mac-sensor.o \
+ mannasim/leach/mac/mac-sensor-timers.o \
+ mannasim/leach/rca/rca-ll.o \
+ mannasim/leach/rca/rcagent.o \
+ mannasim/leach/app/leachApp.o \
+ mannasim/leach/leachAgent.o \
+ mannasim/leach/app/accessPointLeachApp.o \
@V_STLOBJ@

diff -Naur ns-allinone-2.29/ns-2.29/mannasim/accessPointApp.cc ns-allinone-2.29-


mannasim/ns-2.29/mannasim/accessPointApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/accessPointApp.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/accessPointApp.cc 2006-05-
26 11:12:37.000000000 -0300
@@ -0,0 +1,238 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Implementation of the application that makes the comunication between insid
e
+/// the WSN and outside it: the access point (AP). The AP is called "Sink" when
+/// we are dealing with a flat WSN, and "Base Station" when it comes to a
+/// hierachical WSN.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabrício A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "accessPointApp.h"
+
+/// This static class Provides an instance of the AccessPoint class in
+/// the TCL simulation script.
+static class AccessPointClass : public TclClass
+{
+ public:
+ AccessPointClass() : TclClass("Application/AccessPointApp"){}
+ TclObject* create(int, const char*const*){
+ return (new AccessPointApp);
+ }
+}class_access_point_app;
+
+/// AccessPoint constructor. Binds TCL script parameters to C++ code variables.
+AccessPointApp::AccessPointApp():Application()
+{
+ bind("destination_id_",&destination_id);
+ bind("request_type_",&request_type);
+ bind("node_id_",&node_id);
+
+ //diretorio de saida de acordo com cenario simulado
+ bind("diretorio",&diretorio);
+
+ /// Default value for request type (REAL)
+ request_type = 0;
+ onDemandData_ = NULL;
+}
+
+///
+/// NOTE: Specialization of process_data from the NS-2 Process::process_data
+/// function. This method is invoked in Agent::recv().
+void AccessPointApp::process_data(int size, AppData* data)
+{
+ /// Modified by Fabricio Silva. Prevents broadcast messages
+ /// to be erroneous received.
+ if(data->type() == ON_DEMAND_DATA)
+ {
+ return;
+ }
+
+
+
+ AppDataList list = ((SensedData*)data)->getData();
+ printf("Access point - Received a message with %d elements\n",
+ (int)list.size());
+
+ for(AppDataList::iterator it = list.begin(); it != list.end(); it++)
+ {
+ printf("Message received from node %d with %lf delay ::: %lf %lf\n",
+ ((SensedData *) data)->node_id(),
+ Scheduler::instance().clock() - ((SensedData *) data)->timeStamp(),
+ ((SensedData *) data)->timeStamp(),
+ Scheduler::instance().clock());
+ }
+// forward_data(size, data);
+}
+
+///
+void AccessPointApp::forward_data(int size, AppData* data){
+
+ AppDataList list = ((SensedData*)data)->getData();
+ //AppDataList::iterator it;
+ //for(it = list.begin(); it != list.end(); it++){
+ // TemperatureAppData* d = (TemperatureAppData*)(*it);
+ // //printf("AccessPointApp::forward_data: %f\n",d->data());
+ //}
+
+ agent_->daddr() = destination_id;
+ agent_->dport() = DEFAULT_PORT_;
+ agent_->sendmsg(AP_MSG_BYTES_, data->copy());
+
+}
+
+/// Send on demand message.
+void AccessPointApp::send_request()
+{
+ printf("<<Access Point sending a request message.>>\n");
+ if(onDemandData_ == NULL)
+ {
+ fprintf(stderr,"AccessPointApp::send_request - no parameter defi
ned yet.");
+ return;
+ }
+
+ //temporario este TRAP e SENSOR_REPORT
+ onDemandData_->msgType() = TRAP_;
+ onDemandData_->eventType() = SENSOR_REPORT_;
+ onDemandData_->node_id() = node_id;
+
+ agent_->daddr() = IP_BROADCAST;
+ agent_->dport() = DEFAULT_PORT_;
+ agent_->sendmsg(AP_MSG_BYTES_,onDemandData_->copy());
+ onDemandData_ = NULL;
+}
+
+int AccessPointApp::command(int argc, const char*const* argv)
+{
+ if(argc == 2)
+ {
+ if(strcmp("send_request",argv[1]) == 0)
+ {
+ send_request();
+ return TCL_OK;
+ }
+ else
+ {
+ if(strcmp("stop",argv[1]) == 0)
+ {
+ stop();
+ return TCL_OK;
+ }
+ }
+ }
+
+
+ /**
+ * Syntax form:
+ *
+ * access_point "add_temp_data_param 25.0 0" OU
+ *
+ * access_point "add_temp_data_param 25.0" --> uses the default (0)
+ *
+ * Creates a OnDemandParameter of temperature that are greater (0) than 25.0
+ *
+ * For each SensedData (temperature,...)
+ *
+ */
+ if(argc == 3)
+ {
+ if(strcmp("add_temp_data_param",argv[1]) == 0)
+ {
+ create_parameter(new TemperatureAppData(atof(argv[2]),
+ (double)(Scheduler::instanc
e().clock())),
+ 0);
+ return TCL_OK;
+ }
+ else
+ {
+ if(strcmp("add_carbon_data_param",argv[1]) == 0)
+ {
+ create_parameter(new CarbonMonoxideAppData(atof(
argv[2]),
+ (double)(Scheduler::
instance().clock())),
+ 0);
+ return TCL_OK;
+ }
+ }
+ }
+
+ if(argc == 4)
+ {
+ if(strcmp("add_temp_data_param",argv[1]) == 0)
+ {
+ create_parameter(new TemperatureAppData(atof(argv[2]),
+ (double)(Scheduler::instance
().clock())),
+ atoi(argv[3]));
+ return TCL_OK;
+ }
+ else
+ {
+ if(strcmp("add_carbon_data_param",argv[1]) == 0)
+ {
+ create_parameter(new CarbonMonoxideAppData(atof(
argv[2]),
+ (double)(Scheduler::i
nstance().clock())),
+ atoi(argv[3]));
+ return TCL_OK;
+ }
+ }
+ }
+ return Application::command(argc,argv);
+}
+
+///
+void AccessPointApp::create_parameter(AppData* data, int operation)
+{
+ if(onDemandData_ == NULL)
+ {
+ onDemandData_ = new OnDemandData(request_type);
+ }
+ onDemandData_->insertNewData(new OnDemandParameter(data, operation));
+}
+
+void AccessPointApp::stop()
+{
+ /*char diretorio_saida[60];
+
+ switch(diretorio)
+ {
+ case 0:
+ sprintf(diretorio_saida,"data/grid");
+ break;
+ case 1:
+ sprintf(diretorio_saida, "data/aleatorio");
+ break;
+ case 2:
+ sprintf(diretorio_saida, "data/cluster_grid");
+ break;
+ default:
+ printf("erro no diretorio\n");
+ exit(0);
+ }
+
+ Contabiliza::instance()->imprime(diretorio_saida);*/
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/accessPointApp.h ns-allinone-2.29-m
annasim/ns-2.29/mannasim/accessPointApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/accessPointApp.h 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/accessPointApp.h 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,103 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Implementation of the application that makes the comunication between insid
e
+/// the WSN and outside it: the access point (AP). The AP is called "Sink" when
+/// we are dealing with a flat WSN, and "Base Station" when it comes to a
+/// hierachical WSN.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabrício A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __access_point_h__
+#define __access_point_h__
+
+#include <common/agent.h>
+#include <common/packet.h>
+#include <common/ns-process.h>
+
+
+#include "processing.h"
+#include "sensedData.h"
+#include "onDemandData.h"
+#include "sensorBaseApp.h"
+#include "util/accounts.h"
+#include "onDemandParameter.h"
+#include "temperatureAppData.h"
+#include "carbonMonoxideAppData.h"
+
+/// Access point size messages.
+#define AP_MSG_BYTES_ 64
+
+/// Access point application. Simulates the behavior of an access point.
+class AccessPointApp : public Application{
+
+ public:
+
+ /// Default Constructor
+ AccessPointApp();
+
+ /// Method called from the transport protocol for the applicatio
n to
+ /// receive a message. Method from Process (ns-process.cc) overc
harged
+ virtual void process_data(int size, AppData* data);
+
+ /// NS-2 function.
+ int command(int argc, const char*const* argv);
+
+ ///
+ virtual void stop();
+
+ protected:
+
+ ///
+ virtual void forward_data(int size, AppData* data);
+
+ private:
+
+ /// Access point address.
+ int node_id;
+
+ /// Message node destination
+ int destination_id;
+
+ /// Object that represents the response of a request.
+ OnDemandData* onDemandData_;
+
+ /// Indicates the request type in on demand message (OnDemandDat
a)
+ int request_type;
+
+ /// Variable used to indicates the directory indicates simulatio
n
+ /// results directory. Temporary, used on wgrs04.
+ int diretorio;
+
+ void send_request();
+
+ void create_parameter(AppData* data, int operation);
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/aggregateProcessing.cc ns-allinone-
2.29-mannasim/ns-2.29/mannasim/aggregateProcessing.cc
--- ns-allinone-2.29/ns-2.29/mannasim/aggregateProcessing.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/aggregateProcessing.cc 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,99 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Class that simulates the aggregating processing activity on sensed data.
+/// It's a specialization of processing class.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "aggregateProcessing.h"
+
+/// This static class creates a link between the C++ class and the TCL script
+/// in the simulation scenario. Provides an instance of the
+/// AggregateProcessing class in the TCL simulation script.
+static class AggregateProcessingClass : public TclClass
+{
+ public:
+ AggregateProcessingClass() : TclClass("Processing/AggregateProce
ssing"){}
+ TclObject* create(int, const char*const*){
+ return (new AggregateProcessing);
+ }
+
+}class_aggregate_processing;
+
+/// Default construtor, clear processed data buffer (info_)
+AggregateProcessing::AggregateProcessing() : Processing()
+{
+ info_ = NULL;
+}
+
+/// Simulates sensed data aggregating processing. The parametric data
+/// is added in processed data buffer and energy is decresed from node
+/// battery.
+void AggregateProcessing::processSensedData(AppData* data_)
+{
+ if (info_ == NULL)
+ {
+ info_ = new SensedData;
+ }
+
+ info_->insertNewData(data_->copy());
+
+ // The activity above wastes sensor node energy! PROCESSING WASTE HERE!
+ ((Battery*)sensor_node_->energy_model())->DecrProcessingEnergy(
+
AGGREGATION_INSTRUCTIONS,
+
sensor_node_->instructionsPerSecond(),
+
sensor_node_->processingPower());
+}
+
+/// Receives data from multiple sources and aggregates them. Useful
+/// for cluster head based networks.
+void AggregateProcessing::recvData(AppData* data_)
+{
+ if (info_ == NULL)
+ {
+ info_ = new SensedData;
+ }
+
+ AppDataList list = ((SensedData*)data_)->getData();
+ AppDataList::iterator it;
+
+ /// Aggregates all sensed data
+ for (it = list.begin(); it != list.end(); it++)
+ {
+ info_->insertNewData(*it);
+ }
+
+ // The activity above wastes sensor node energy! PROCESSING WASTE HERE!
+ ((Battery*)sensor_node_->energy_model())->DecrProcessingEnergy(
+
AGGREGATION_INSTRUCTIONS,
+
sensor_node_->instructionsPerSecond(),
+
sensor_node_->processingPower());
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/aggregateProcessing.h ns-allinone-2
.29-mannasim/ns-2.29/mannasim/aggregateProcessing.h
--- ns-allinone-2.29/ns-2.29/mannasim/aggregateProcessing.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/aggregateProcessing.h 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,59 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Class that simulates the aggregating processing activity on sensed data.
+/// It's a specialization of processing class.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __aggregate_processing__
+#define __aggregate_processing__
+
+#include "processing.h"
+
+/// Specialize Processing class adding aggregation to processing module.
+///
+/// extends Processing
+class AggregateProcessing : public Processing
+{
+ public:
+
+ /// Constructor
+ AggregateProcessing();
+
+ /// Simulates sensed data processing. Used in continous and
+ /// programmed data sensing.
+ virtual void processSensedData(AppData* data_);
+
+ /// Receives data from multiple source and aggregates them.
+ virtual void recvData(AppData* data_);
+};
+
+#endif
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/battery.cc ns-allinone-2.29-mannasi
m/ns-2.29/mannasim/battery.cc
--- ns-allinone-2.29/ns-2.29/mannasim/battery.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/battery.cc 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,145 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class represents the power supply of the node. It is derived from
+/// NS-2 Energy model.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "battery.h"
+
+/// This static class creates a link between the C++ class and the TCL script
+/// in the simulation scenario. Provides an instance of the
+/// Battery class in the TCL simulation script.
+static class BatteryClass : public TclClass
+{
+ public:
+ BatteryClass ():TclClass ("EnergyModel/Battery") {}
+ TclObject *create (int argc, const char *const *argv){
+ if (argc == 8)
+ {
+ MobileNode *n=(MobileNode*)TclObject::lookup(arg
v[4]);
+ return (new Battery(n,
+ atof(arg
v[5]),
+ atof(arg
v[6]),
+ atof(arg
v[7])));
+ }
+ else
+ {
+ Tcl::instance().add_error("Wrong arguments to Ba
ttery");
+ return 0;
+ }
+ }
+} class_battery;
+
+/// Constructor. Invoke EnergyModel constructor with need parameters.
+Battery::Battery(MobileNode* node, double energy, double l1, double l2) :
+
EnergyModel(node, energy, l1, l2)
+{
+}
+
+/// Computes the energy consumed when the node is sensing data.
+void Battery::DecrSensingEnergy(double sensing_time, double sensing_power)
+{
+ double consumed_energy = sensing_power * sensing_time;
+
+ /// The energy_ variable indicates the amount of energy of the node.
+ /// This variable is defined at EnergyModel class.
+ if (energy_ <= consumed_energy)
+ {
+ energy_ = 0.0;
+ }
+ else
+ {
+ energy_ = energy_ - consumed_energy;
+ }
+}
+
+/// Computes the energy consumed when the node is processing data.
+void Battery::DecrProcessingEnergy(int number_instructions, double instructions
_per_second, double processing_power)
+{
+ double processing_time;
+ double consumed_energy;
+
+ if (instructions_per_second == 0)
+ {
+ fprintf(stderr,"Battery::DecrProcessingEnergy - Division by zero
!!!\n");
+ abort();
+ }
+
+ processing_time = ((double)(number_instructions))/instructions_per_secon
d;
+ consumed_energy = processing_power * processing_time;
+
+ /// The energy_ variable indicates the amount of energy of the node.
+ /// This variable is defined at EnergyModel class.
+ if (energy_ <= consumed_energy)
+ {
+ energy_ = 0.0;
+ }
+ else
+ {
+ energy_ = energy_ - consumed_energy;
+ }
+}
+
+/// Turn senso node On.
+void Battery::setNodeOn(){
+ node_on_ = true;
+}
+
+/// Turn the node Off
+void Battery::setNodeOff(){
+ node_on_ = false;
+}
+
+/// Put node in sleep mode.
+void Battery::sleep()
+{
+ struct if_head head;
+
+ head = ((Node *) node_)->ifhead();
+
+ for (Phy * wp = head.lh_first; wp; wp = wp->nextnode())
+ {
+ ((WirelessPhy *) wp)->node_off();
+ }
+}
+
+/// Wake up sleppy sensor node.
+void Battery::wakeUp()
+{
+ struct if_head head;
+
+ head = ((Node *) node_)->ifhead();
+
+ for (Phy * wp = head.lh_first; wp; wp = wp->nextnode())
+ {
+ ((WirelessPhy *) wp)->node_on();
+ }
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/battery.h ns-allinone-2.29-mannasim
/ns-2.29/mannasim/battery.h
--- ns-allinone-2.29/ns-2.29/mannasim/battery.h 1969-12-31 21:00:00.000000000 -0
300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/battery.h 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,82 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class represents the power supply of the node. It is derived from
+/// NS-2 Energy model.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __ns_battery_h__
+#define __ns_battery_h__
+
+#include <node.h>
+#include <energy-model.h>
+#include <wireless-phy.h>
+
+/* This class represents the sensor node battery. It inherits from
+the NS-2 EnergyModel*/
+
+/// Represents sensor node batery. Include method to turn the node on and off
+/// put it to sleep and make it wake up. Also contains a method to decrease
+/// energy when work is done by the sensor.
+///
+/// extends EnergyModel
+class Battery : public EnergyModel{
+
+ public:
+
+ /* Construtor: invoke the EnergyModel constructor with the need parameters
*/
+ /// Constructor
+ Battery(MobileNode* node, double energy, double l1, double l2);
+
+ /* fun��o que decrementa a energia gasta com sensoriamento:
+ * par�metros: tempo de sensoriamento e pot�ncia (W) do sensor
+ * */
+ virtual void DecrSensingEnergy(double sensing_time, double sensing_power);
+
+ /* fun��o que decrementa a energia gasta com processamento
+ * par�metros: n�mero de instru��es realizadas e pot�ncia (W)
+ * do processador
+ * */
+ virtual void DecrProcessingEnergy(int number_instructions, double instructi
ons_per_second, double processing_power);
+
+ /// Turn node On.
+ virtual void setNodeOn();
+
+ /// Turn node Off.
+ virtual void setNodeOff();
+
+ /// Put node in Sleep mode.
+ virtual void sleep();
+
+ /// Wake up the sleepy node.
+ virtual void wakeUp();
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideAppData.cc ns-allinon
e-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideAppData.cc
--- ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideAppData.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideAppData.cc 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,136 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Defines a carbon monoxide application data type. Encapsulates the
+/// raw carbon monoxide data from DataGenerator.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+/// Julio Cesar e Melo
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "carbonMonoxideAppData.h"
+
+/// CarbonMonoxideAppData constructor. Sets carbonMonoxideLevel and colleted
+/// time for the object, also calls super class constructor AppDataAttrsExporte
r()
+/// with AppDataType carbon monoxide.
+CarbonMonoxideAppData::CarbonMonoxideAppData(double carbonMonoxideLevel, double
sample_time)
+ : AppDataAttrsExporter(CARBON_MONOXIDE_SENSED_DATA)
+{
+ data_ = carbonMonoxideLevel;
+ time_ = sample_time;
+}
+
+/// Checks if the value of the current object of this class is greater
+/// than the value of the parameter object. Until now, we only implemented
+/// the GREATER THAN option for EVENT DRIVEN network.
+bool CarbonMonoxideAppData::checkEvent(AppData* data_)
+{
+ /// Already know that AppData dynamic type is CarbonMonoxideAppData,
+ /// so perform the casting.
+ double value = ((CarbonMonoxideAppData*)data_)->data();
+
+ if(value >= this->data())
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+/// Check if current value satisfies the condition especified by operation
+/// and data parameters. This method is used in ON DEMAND network.
+bool CarbonMonoxideAppData::compareData(AppData* data, int operation)
+{
+ /// Already know that AppData dynamic type is CarbonMonoxideAppData,
+ /// so perform the casting.
+ double value = ((CarbonMonoxideAppData*)data)->data();
+
+ switch (operation)
+ {
+ case GREATER_THAN:
+ return (value > this->data());
+
+ case LESS_THAN:
+ return (value < this->data());
+
+ case EQUAL:
+ return (value == this->data());
+
+ default:
+ fprintf(stderr,"CarbonMonoxideAppData::compareData - Inv
alid Operation.\n");
+ return false;
+ }
+}
+
+/// Sets atributes about carbon monoxide sensed data. Called by
+/// CommonNodeDiffApp (directed difusion).
+///
+/// Created by Julio Cesar e Melo
+void CarbonMonoxideAppData::setAttributes(NRAttrVec * attrs)
+{
+ attrs->push_back(
+ SensedValueAttr.make(NRAttribute::IS, this->data()));
+}
+
+/// Returns the size of the CarbonMonoxideAppData object. Size in bytes.
+int CarbonMonoxideAppData::size() const
+{
+ return sizeof(CarbonMonoxideAppData);
+}
+
+/// Creates a copy of this CarbonMonoxideAppData object.
+AppData * CarbonMonoxideAppData::copy()
+{
+ return new CarbonMonoxideAppData(data_, time_);
+}
+
+/// Returns carbon monoxide data.
+double CarbonMonoxideAppData::data()
+{
+ return data_;
+}
+
+/// Ajusts carbon monoxide data.
+void CarbonMonoxideAppData::setData(double data)
+{
+ data_ = data;
+}
+
+/// Returns carbon monoxide timestamp
+double CarbonMonoxideAppData::time()
+{
+ return time_;
+}
+
+/// Ajusts carbon monoxide data timestamp.
+void CarbonMonoxideAppData::setTime(double time)
+{
+ time_ = time;
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideAppData.h ns-allinone
-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideAppData.h
--- ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideAppData.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideAppData.h 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,93 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Defines a carbon monoxide application data type. Encapsulates the
+/// raw carbon monoxide data from DataGenerator.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+/// Julio Cesar e Melo
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __carbonMonoxideAppData_h__
+#define __carbonMonoxideAppData_h__
+
+#include <common/ns-process.h>
+#include <nr.hh>
+
+#include "onDemandParameter.h"
+#include "diffusion/nrAttributes.h"
+#include "diffusion/attrsExporter.h"
+
+/// Creates a carbon monoxide application data type. This data type
+/// represents the pure data collect by the sensor node. This data
+/// is sent to the processing module for futher treatment.
+///
+/// extends AppDataAttrsExporter
+class CarbonMonoxideAppData : public AppDataAttrsExporter
+{
+ public:
+
+ /// Constructor, parameters are carbon monoxide data collected
+ /// and timestamp
+ CarbonMonoxideAppData(double carbonMonoxideLevel, double sample_
time);
+
+ /// Creates a copy of the object.
+ AppData* copy();
+
+ /// Size, in bytes, of the object.
+ int size() const;
+
+ /// Check if satisfies the condition especified by
+ /// operation and value. It is used in ON DEMAND network
+ bool compareData(AppData* data, int operation);
+
+ /// Check if the value is greater than this one.
+ /// It is used in EVENT DRIVEN network
+ bool checkEvent(AppData* data_);
+
+ /// Accessor methods
+ double data();
+ double time();
+
+ void setData(double data);
+ void setTime(double time);
+
+ /// Set attributes of sensed data. This is called by CommonNodeD
iffApp.
+ /// Changed by Julio Cesar e Melo.
+ virtual void setAttributes(NRAttrVec * attrs);
+
+ private:
+
+ /// Carbon monoxide data.
+ double data_;
+
+ /// Timestamp for monoxide data.
+ double time_;
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideDataGenerator.cc ns-a
llinone-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideDataGenerator.cc
--- ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideDataGenerator.cc 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideDataGenerator.cc
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,108 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+///
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+///
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Generates synthetic temperature data. Simulates a carbon monoxide sensor
+/// node sensing the environment.
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+#include "carbonMonoxideDataGenerator.h"
+
+
+/// This static class creates a link between the C++ class and the TCL script
+/// in the simulation scenario. Provides an instance of
+/// CarbonMonoxideDataGenerator class in the TCL simulation script.
+static class CarbonMonoxideDataGeneratorClass : public TclClass
+{
+ public:
+ CarbonMonoxideDataGeneratorClass() : TclClass(
+ "DataGenerator/CarbonMonoxideDataGenerator"){}
+ TclObject* create(int, const char*const*)
+ {
+ return (new CarbonMonoxideDataGenerator);
+ }
+
+}class_carbon_monoxide_data_generator;
+
+/// Constructor, binds TCL script parameters to C++ code variables and
+/// creates a disseminating timer.
+CarbonMonoxideDataGenerator::CarbonMonoxideDataGenerator() :
+ DataGenerator(CA
RBON_MONOXIDE_SENSED_DATA)
+{
+ // Creates the random number that that generates the syntectic data.
+ rand_ = new RNG(RNG::HEURISTIC_SEED_SOURCE, 1);
+
+ /// Get from the TCL script: data average, standard deviation, and maxim
um
+ /// Carbon Monoxide value allowed.
+ bind("avg_measure",&avg_measure);
+ bind("std_deviation",&std_deviation);
+ bind("maximumCarbonMonoxideValue",&maximumCarbonMonoxideValue);
+}
+
+/// Carbon monoxide sensing simulation. This is the most important function
+/// since it creates the random data, encapsulates it on a AppData type and
+/// return it to the sensor node.
+AppData* CarbonMonoxideDataGenerator::collect()
+{
+ double monoxide = rand_->normal(avg_measure, std_deviation);
+
+ printf("Carbon Monoxide Data %f - Time %f\n",
+
monoxide,Scheduler::instance().clock());
+
+ CarbonMonoxideAppData* data = new CarbonMonoxideAppData(
+
monoxide, Scheduler::instance().clock());
+
+ /// Returns an application data that contains the carbon monoxide collec
t
+ /// value
+ return data;
+}
+
+/// NS-2 command function overloaded. Deals with TCL script commands to C++
+/// implementation.
+int CarbonMonoxideDataGenerator::command(int argc, const char*const* argv)
+{
+ if(argc == 3){
+ if(strcmp("set-event",argv[1]) == 0)
+ {
+ avg_measure = atof(argv[2]);
+ printf("EVENT: New avg_measure: %.3f\n",atof(argv[2]));
+ return TCL_OK;
+ }
+ }
+ return DataGenerator::command(argc, argv);
+}
+
+/// Returns average measure for synthetic carbon monoxide generation.
+double CarbonMonoxideDataGenerator::getAvgMeasure()
+{
+ return avg_measure;
+}
+
+/// Sets average measure value for synthetic carbon monoxide generation.
+void CarbonMonoxideDataGenerator::setAvgMeasure(double avg_measure)
+{
+ this->avg_measure = avg_measure;
+}
+
+/// Returns the maximum allowed carbon monoxide value.
+CarbonMonoxideAppData* CarbonMonoxideDataGenerator::getMaximumAllowedValue()
+{
+ return new CarbonMonoxideAppData(maximumCarbonMonoxideValue,0.0);
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideDataGenerator.h ns-al
linone-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideDataGenerator.h
--- ns-allinone-2.29/ns-2.29/mannasim/carbonMonoxideDataGenerator.h 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/carbonMonoxideDataGenerator.h
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,62 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+///
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+///
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Generates synthetic carbon monoxide data. Simulates a temperature sensor
+/// node sensing the environment.
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+#ifndef __carbon_monoxide_data_generator__
+#define __carbon_monoxide_data_generator__
+
+#include "dataGenerator.h"
+#include "carbonMonoxideAppData.h"
+
+/// Generate synthetic carbon monoxide data. Synthetic data is based on average
+/// and standard deviation values for a normal probability distribution. A
+/// maximum allowed value should also be set.
+/// extends DataGenerator
+class CarbonMonoxideDataGenerator : public DataGenerator
+{
+ public:
+
+ /// Constructor
+ CarbonMonoxideDataGenerator();
+
+ /// Data sensing simulation function
+ AppData* collect();
+
+ /// NS-2 function
+ virtual int command(int argc, const char*const* argv);
+
+ /// Accessor methods
+ double getAvgMeasure();
+ void setAvgMeasure(double avg_measure);
+ virtual CarbonMonoxideAppData* getMaximumAllowedValue();
+
+ protected:
+ RNG* rand_;
+
+ double avg_measure;
+ double std_deviation;
+ double maximumCarbonMonoxideValue;
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/clusterHeadApp.cc ns-allinone-2.29-
mannasim/ns-2.29/mannasim/clusterHeadApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/clusterHeadApp.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/clusterHeadApp.cc 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,201 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class simulates the behavior of a cluster head in a wireless
+/// sensor network. Dispates its more capacity to process and disseminate
+/// sensed data, a cluster head must also have a group of nodes under
+/// its responsability - a child list.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabrício A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "clusterHeadApp.h"
+
+/// This static class Provides an instance of the ClusterHeadApp class in
+/// the TCL simulation script.
+static class ClusterHeadAppClass : public TclClass{
+
+ public:
+ ClusterHeadAppClass() : TclClass("Application/SensorBaseApp/Clus
terHeadApp"){}
+ TclObject* create(int, const char*const*){
+ return (new ClusterHeadApp);
+ }
+
+}class_cluster_head_app;
+
+/// Default constructor. Does notjhing, only calls the super class
+/// (SensorBaseApp) default constructor.
+ClusterHeadApp::ClusterHeadApp() : SensorBaseApp()
+{
+}
+
+/// ClusterHeadApp object needs this method to receive request (on demand)
+/// messages.
+/// NOTE: Specialization of process_data from the NS-2 Process::process_data
+/// function. This method is invoked in Agent::recv().
+void ClusterHeadApp::process_data(int size, AppData* data){
+
+ if(data == NULL)
+ {
+ fprintf(stderr,"ClusterHeadApp::process_data() --> data is NULL\
n");
+ abort();
+ }
+
+ /// The received data isn´t for "me"
+ if(((SensedData*)data)->node_id() != destination_id_)
+ {
+ /// It is a broadcast message from other Cluster Head
+ if(data->type() == ON_DEMAND_DATA)
+ {
+ return;
+ }
+
+ /// The node from where the message came isn´t on the
+ /// Cluster Head child list, insert node on child list.
+ if(!search_child(((SensedData*)data)->node_id()))
+ {
+ insert_child(((SensedData*)data)->node_id());
+ }
+
+ if(processing_ == NULL)
+ {
+ fprintf(stderr,"ClusterHeadApp::process_data() --> proce
ssing is NULL\n");
+ abort();
+ }
+
+ /// Here occurs the data processing
+ processing_->recvData(data);
+
+ /// If the disseminating type is continuous, send data
+ /// immediately
+ if(disseminating_type_ == CONTINUOUS)
+ {
+ disseminateData();
+ }
+
+ }
+ else
+ {
+ /// The received data is for "me" and I am an Access Point
+ //is the AP
+ //implementar para recebimento de request
+ if(data->type() == ON_DEMAND_DATA)
+ {
+ //ver como passar este método para o processing, já que será
+ //diferente do nodo comum
+ processRequest(data);
+ }
+ }
+ printf("Cluster Head Node %d - Received message - Time %.3f - Source Nod
e %d!\n",
+ sensor_node_->nodeid(), Scheduler::instance().clock(),((
SensedData*)data)->node_id());
+}
+
+/// Disseminate the sensed data throught the network.
+void ClusterHeadApp::disseminateData()
+{
+ if(processing_ == NULL)
+ {
+ fprintf(stderr,"ClusterHeadApp::disseminateData() --> processing
is NULL\n");
+ abort();
+ }
+
+ /// Get the processed data.
+ SensedData* data_ = processing_->getProcessedData();
+
+ /// If there is any information to be disseminated, do it!
+ if(data_ != NULL)
+ {
+ printf("Cluster Head Node %d - Disseminating Data - Destination
Node %d - Time %.3f\n",
+ sensor_node_->nodeid(), destinat
ion_id_,Scheduler::instance().clock());
+
+ /// Configure agent to disseminate the parameter data.
+ agent_->daddr() = destination_id_;
+ agent_->dport() = DEFAULT_PORT_;
+
+ /// verificar como é a mensagem sem gerenciamento, pois TRAP é de
+ /// gerenciamento.
+ data_->msgType() = TRAP_;
+ data_->eventType() = SENSOR_REPORT_;
+ data_->node_id() = sensor_node_->nodeid();
+
+ /// Send the message.
+ agent_->sendmsg(CH_MSG_BYTES_,data_->copy());
+ processing_->resetData();
+ }
+}
+
+/// Forwards a request message for all child in child list.
+void ClusterHeadApp::processRequest(AppData* data)
+{
+ if(data == NULL)
+ {
+ fprintf(stderr,"ClusterHeadApp::processRequest() --> data is NUL
L\n");
+ abort();
+ }
+
+ printf("Cluster Head Node %d sending request data!\n",sensor_node_->node
id());
+
+ /// Configure agent to disseminate the parameter data.
+ agent_->daddr() = IP_BROADCAST;
+ agent_->dport() = DEFAULT_PORT_;
+
+ /// Changes the address of source node so the child will receive the
+ /// message.
+ ((SensedData*)data)->node_id() = sensor_node_->nodeid();
+
+ /// Send the message.
+ agent_->sendmsg(CH_MSG_BYTES_,data->copy());
+}
+
+/// Inserts a nwe item in Cluster Head child list
+void ClusterHeadApp::insert_child(int id)
+{
+ child_list.push_back(id);
+}
+
+/// Removes all itens that are equal to id.
+void ClusterHeadApp::remove_child(int id)
+{
+ child_list.remove(id);
+}
+
+/// Returns a boolean indicating if node "id" is in cluster head
+/// child list.
+bool ClusterHeadApp::search_child(int id)
+{
+ for(IdList::iterator it = child_list.begin(); it != child_list.end(); ++
it)
+ {
+ if(*it == id)
+ {
+ return true;
+ }
+ }
+ return false;
+}
+
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/clusterHeadApp.h ns-allinone-2.29-m
annasim/ns-2.29/mannasim/clusterHeadApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/clusterHeadApp.h 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/clusterHeadApp.h 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,90 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class simulates the behavior of a cluster head in a wireless
+/// sensor network. Dispates its more capacity to process and disseminate
+/// sensed data, a cluster head must also have a group of nodes under
+/// its responsability - a child list.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabrício A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __cluster_head_h__
+#define __cluster_head_h__
+
+#include <list>
+#include <stdio.h>
+#include <common/ns-process.h>
+
+#include "sensorBaseApp.h"
+
+using namespace std;
+
+typedef list<int> IdList;
+
+/// Size of cluster head messages (in bytes)
+#define CH_MSG_BYTES_ 64
+
+/// Simulates the behavior of a wireless sensor network cluster head
+/// device.
+class ClusterHeadApp : public SensorBaseApp {
+
+ public:
+
+ /// Default Constructor
+ ClusterHeadApp();
+
+ /// Process the sensed data. Specialization of
+ /// Process::process_data() function. See NS-2 documentation
+ /// for details.
+ virtual void process_data(int size, AppData* data);
+
+ virtual void processRequest(AppData* data);
+
+ protected:
+
+ /// Insert a new node in the child list.
+ void insert_child(int id);
+
+ /// Remove the node with addr = id in the child list.
+ void remove_child(int id);
+
+ /// Search for a node with addr = id in the child list.
+ bool search_child(int id);
+
+ /// Disseminate data to the network.
+ virtual void disseminateData();
+
+ private:
+
+ /// Children list of the cluster head
+ IdList child_list;
+
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/commonNodeApp.cc ns-allinone-2.29-m
annasim/ns-2.29/mannasim/commonNodeApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/commonNodeApp.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/commonNodeApp.cc 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,219 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Represents common-nodes application which performs data dissemination
+/// using the disseminateData method, processing using processSensedData
+/// method and other functions using CommonNodeApp methods.
+/// The CommonNodeApp is a specialization of SensorBaseApp class.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabr�cio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "commonNodeApp.h"
+
+/// This static class Provides an instance of the CommonNodeApp class in
+/// the TCL simulation script
+static class CommonNodeAppClass : public TclClass
+{
+ public:
+ CommonNodeAppClass() : TclClass("Application/SensorBaseApp/Commo
nNodeApp"){}
+ TclObject* create(int, const char*const*){
+ return (new CommonNodeApp);
+ }
+
+}class_common_node_app;
+
+/// Default constructor. Does notjhing, only calls the super class
+/// (SensorBaseApp) default constructor.
+CommonNodeApp::CommonNodeApp():SensorBaseApp()
+{
+}
+
+/// NS-2 command function overloaded. Deals with TCL script commands to C++
+/// implementation.
+int CommonNodeApp::command(int argc, const char*const* argv)
+{
+ if (argc == 2)
+ {
+ if (strcmp(argv[1],"start") == 0) {
+ start();
+ return TCL_OK;
+ }
+ if (strcmp(argv[1],"stop") == 0) {
+ stop();
+ return TCL_OK;
+ }
+ }
+ return SensorBaseApp::command(argc, argv);
+}
+
+/// CommonNodeApp object needs this method to receive request (on demand)
+/// messages.
+/// NOTE: Specialization of process_data from the NS-2 Process::process_data
+/// function. This method is invoked in Agent::recv().
+void CommonNodeApp::process_data(int size, AppData* data)
+{
+ if (isDead())
+ {
+ return;
+ }
+
+ if(data == NULL)
+ {
+ fprintf(stderr,"CommonNodeApp::process_data() --> data is NULL\n
");
+ abort();
+ }
+
+ /// If the message is for "me", process it (throught disseminanteDaTa())
.
+ if(((SensedData*)data)->node_id() == destination_id_)
+ {
+ printf("Common Node %d receive a message.\n",sensor_node_->nodei
d());
+ disseminateData(((SensedData*)processing_->processRequest(data))
);
+ }
+ else
+ {
+// fprintf(stderr,"Source is not correct!!\n");
+ }
+}
+
+/// Disseminate the sensed data throught the network.
+void CommonNodeApp::disseminateData()
+{
+ if (isDead())
+ {
+ return;
+ }
+
+ if(processing_ == NULL)
+ {
+ fprintf(stderr,"CommonNodeApp::disseminateData() --> processing
is NULL\n");
+ abort();
+ }
+
+ // If there is information to be disseminated, do it!
+ SensedData* data_ = processing_->getProcessedData();
+ if (data_ != NULL){
+ disseminateData(data_);
+ processing_->resetData();
+ }
+}
+
+/// Disseminate the sensed data throught the network. The data to be sent is
+/// passed by reference. This function is also invoked by the it�s no parametric
+/// version - disseminateData().
+void CommonNodeApp::disseminateData(SensedData* data_)
+{
+ if(data_ != NULL && !isDead())
+ {
+ /// For user information only.
+ printf("Common Node %d - Disseminating data - Time %.3f - Desti
nation node %d\n",
+ sensor_node_->nodeid(),Scheduler::instance().clo
ck(),destination_id_);
+
+ /// Configure agent to disseminate the parameter data.
+ agent_->daddr() = destination_id_;
+ agent_->dport() = DEFAULT_PORT_;
+
+ /// verificar como � a mensagem sem gerenciamento, pois TRAP � de
+ /// gerenciamento.
+ data_->msgType() = TRAP_;
+ data_->eventType() = SENSOR_REPORT_;
+ data_->node_id() = sensor_node_->nodeid();
+
+ /// Send the message.
+ agent_->sendmsg(MSG_BYTES_,data_->copy());
+ }
+}
+
+/// Receives data from the sensing activity and performs data
+/// processing according to the processing object that
+/// is attached to the node (Processing::processSensedData method).
+void CommonNodeApp::recvSensedData(AppData* data_)
+{
+ if (isDead())
+ {
+ return;
+ }
+
+ if(data_ == NULL){
+ fprintf(stderr,"CommonNodeApp::recvSensedData() --> data_ is NUL
L\n");
+ abort();
+ }
+
+ if(processing_ == NULL)
+ {
+ fprintf(stderr,"CommonNodeApp::recvSensedData() --> processing i
s NULL\n");
+ abort();
+ }
+
+ /// Here occurs the data processing
+ processing_->processSensedData(data_->copy());
+
+ /// If the disseminating type is continuous, send data
+ /// immediately
+ if(disseminating_type_ == CONTINUOUS){
+ disseminateData();
+ }
+}
+
+/// Receives data from the sensing activity and performs data
+/// processing according to the processing object that
+/// is attached to the node (Processing::processSensedData method).
+/// This function is oriented to a EVENT_DRIVEN sensor network. It
+/// verify if the data is of interest, and disseminate it only if it is.
+void CommonNodeApp::recvSensedData(AppData* data_, AppData* eventData_)
+{
+ if (isDead())
+ return;
+
+ if(processing_ == NULL)
+ {
+ fprintf(stderr,"CommonNodeApp::recvSensedData() --> processing i
s NULL\n");
+ abort();
+ }
+
+ AppData* processedData_;
+
+ /// Here occurs the data processing
+ processedData_ = processing_->processSensedData(data_->copy(),
+
eventData_->copy());
+
+ /// Data is of interest so disseminate it.
+ if(processedData_ != NULL)
+ {
+ SensedData* sensedData = new SensedData();
+ sensedData->insertNewData(processedData_);
+ disseminateData(sensedData);
+ }
+}
+
+/// Returns a boolean indicating if the node is dead or not. Dead means that th
e
+/// node ran out energy.
+inline bool CommonNodeApp::isDead()
+{
+ return ((Battery *) sensor_node_->energy_model())->energy() <= 0;
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/commonNodeApp.h ns-allinone-2.29-ma
nnasim/ns-2.29/mannasim/commonNodeApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/commonNodeApp.h 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/commonNodeApp.h 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,95 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Represents common-nodes application which performs data dissemination
+/// using the disseminateData method, processing using processSensedData
+/// method and other functions using CommonNodeApp methods.
+/// The CommonNodeApp is a specialization of SensorBaseApp class.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabrício A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __common_node_app__
+#define __common_node_app__
+
+#include <common/ns-process.h>
+#include <common/agent.h>
+#include <common/packet.h>
+
+#include "battery.h"
+#include "processing.h"
+#include "sensedData.h"
+#include "processing.h"
+#include "sensorNode.h"
+#include "onDemandData.h"
+#include "sensorBaseApp.h"
+#include "dataGenerator.h"
+#include "onDemandParameter.h"
+
+/// Common sensor node application. Sensing Dynamics:
+/// 1. Data is generated by the DataGenerator object.
+/// 2. The Processing object receives the generated data and
+/// disseminates it acording to the dissemination type to be
+/// done (programed, continuous, on demand or event driven).
+/// extends SensorBaseApp
+class CommonNodeApp : public SensorBaseApp {
+
+ public:
+
+ /// Constructor
+ CommonNodeApp();
+
+ /// NS-2 Function
+ int command(int argc, const char*const* argv);
+
+ protected:
+
+ /// Process the sensed data. Specialization of
+ /// Process::process_data() function. See NS-2 documentation
+ /// for details.
+ virtual void process_data(int size, AppData* data_);
+
+ /// Disseminates data to the network.
+ virtual void disseminateData();
+
+ /// Disseminates the parameter data to the network.
+ virtual void disseminateData(SensedData* data_);
+
+ /// Receives sensed data, process it and disseminate (only in
+ /// contiuous sensing).
+ virtual void recvSensedData(AppData* data_);
+
+ /// Receives sensed data, event that generated the data, process
+ /// it, and if the event and data are valid, disseminate data.
+ virtual void recvSensedData(AppData* data_, AppData* eventData_);
+
+ /// Informs if the node ran off energy or not.
+ inline bool isDead();
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/dataGenerator.cc ns-allinone-2.29-m
annasim/ns-2.29/mannasim/dataGenerator.cc
--- ns-allinone-2.29/ns-2.29/mannasim/dataGenerator.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/dataGenerator.cc 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,183 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Base class for the generation of synthetic data. Specialized sensed data,
+/// such as temperture, magnetic field, video, among others, should extends
+/// this class and add the necessary modifications.
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+#include "dataGenerator.h"
+
+
+/// Whenever the sensing timer expires, the generator generateData()
+/// method should be invoked. The timer should also be rescheduled.
+void SensingTimer::expire(Event*)
+{
+ gen_->generateData();
+}
+
+/// Constructor. Binds TCL script parameters to C++ code variables and
+/// creates a disseminating timer.
+DataGenerator::DataGenerator(AppDataType type) : TclObject()
+{
+ sensTimer_ = new SensingTimer(this);
+ type_ = type;
+
+ bind("sensing_type_",&sensing_type_);
+ bind("sensing_interval_",&sensing_interval_);
+
+}
+
+/// Invokes the collect() function of the sensing object, and gives the
+/// result of it as a parameter for the processData() processing Object
+/// function. This simulates the behavior of a sensor node, when it senses
+/// the environment and then gives the obtained data to its
+/// computational part so it can process it.
+void DataGenerator::generateData()
+{
+ double sensT;
+ SensorAppList::iterator it;
+ SensorBaseApp *app_instance_;
+
+ for(it = app_.begin(); it != app_.end(); it++)
+ {
+ app_instance_ = (*it);
+
+ /// Display node id for debug proposes
+ if((app_instance_->sensor_node_->nodeid()) > 9)
+ {
+ printf("Node %d - ", app_instance_->sensor_node_->nodeid
());
+ }
+ else
+ {
+ printf("Node 0%d - ", app_instance_->sensor_node_->nodeid());
+ }
+
+ /// Collect sensed data and pass it to the application to proces
sing
+ if(app_instance_->disseminating_type_ == EVENT_DRIVEN)
+ {
+ app_instance_->recvSensedData(collect(), getMaximumAllow
edValue());
+ }
+ else
+ {
+ app_instance_->recvSensedData(collect());
+ }
+
+ // The activity above wastes sensor node energy! ENERGY WASTE HE
RE!
+ ((Battery*)app_instance_->sensor_node_->energy_model())->
+ DecrSensingEnergy(SENSING_TIME_,app_instance_->sensor_no
de_->sensingPower());
+ }
+
+ sensT = getExpireTime();
+ if(sensT != -1)
+ {
+ // Reschedule the event according to sensing activity type
+ sensTimer_->resched(sensT);
+ }
+}
+
+/// Inserts interference on sensed data. NOT IMPLEMENTED YET.
+/// It is recommended to specialize the method if it is going to be implemented
.
+void DataGenerator::insertInterference()
+{
+ fprintf(stderr,"DataGenerator::insertInterference() not implemented yet\
n");
+ abort();
+}
+
+/// Returns timer expire value, taking into account the sensing activity type.
+double DataGenerator::getExpireTime()
+{
+ switch(sensing_type_)
+ {
+ case PROGRAMED:
+ /// If it is a programed sensing activity, use the sensi
ng_interval_,
+ /// determined by the user, as the expire timer
+ return sensing_interval_;
+
+ case CONTINUOUS:
+ /// If it is a continuous sensing activity, get the expi
re timer
+ /// from a normal distribution (limits between 0 and 1)
+ return CONTINUOUS_TIME;
+
+ case ON_DEMAND:
+ return -1;
+
+ case EVENT_DRIVEN:
+ /// If the sensing activity was defined as EVENT_DRIVEN,
it should
+ /// be replaced by the CONTINUOUS one
+ return CONTINUOUS_TIME;
+
+ default: fprintf(stderr,"Unrecognized sensing type!\n");
+ abort();
+ }
+}
+
+/// Shedule the first sensing event if this activity type isn´t the continuous
+/// one.
+void DataGenerator::start()
+{
+ double sensT;
+ sensT = getExpireTime();
+
+ if(sensT != -1)
+ {
+ sensTimer_->resched(sensT);
+ }
+}
+
+/// Stop the object timer, dropping all the scheduled events.
+void DataGenerator::stop()
+{
+ if (sensTimer_->status() == TIMER_PENDING)
+ {
+ sensTimer_->cancel();
+ }
+}
+
+/// Insert a new SensorBaseApp to the DataGenerator SensorBaseApp list.
+void DataGenerator::insertNewApp(SensorBaseApp* app)
+{
+ app_.push_back(app);
+}
+
+/// Returns DataGenerator application data type
+AppDataType DataGenerator::type() const
+{
+ return type_;
+}
+
+/// NS-2 command function overloaded. Deals with TCL script commands to C++
+/// implementation.
+int DataGenerator::command(int argc, const char*const* argv)
+{
+ return TclObject::command(argc, argv);
+}
+
+/// Sets the sensing interval for programmed sensing.
+void DataGenerator::setSensingInterval(double si)
+{
+ sensing_interval_=si;
+}
+
+/// Returns sensing interval for programmed sensing.
+double DataGenerator::getSensingInterval()
+{
+ return sensing_interval_;
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/dataGenerator.h ns-allinone-2.29-ma
nnasim/ns-2.29/mannasim/dataGenerator.h
--- ns-allinone-2.29/ns-2.29/mannasim/dataGenerator.h 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/dataGenerator.h 2006-05-26 11:08
:30.000000000 -0300
@@ -0,0 +1,136 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Base class for the generation of synthetic data. Specialized sensed data,
+/// such as temperture, magnetic field, video, among others, should extends
+/// this class and add the necessary modifications.
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+#ifndef __data_generator__
+#define __data_generator__
+
+#include <list.h>
+#include <tools/rng.h>
+#include <common/ns-process.h>
+
+#include "battery.h"
+#include "sensorNode.h"
+#include "sensorBaseApp.h"
+#include "util/accounts.h"
+
+/// Time interval for continous sensing. Continuity is simulated by reschedule
+/// the timer with a very small time.
+#define CONTINUOUS_TIME 0.01
+
+class DataGenerator;
+class SensorBaseApp;
+
+/// Type definition for a SensorBaseApp STL list.
+typedef list<SensorBaseApp*> SensorAppList;
+
+/// Sensing timer used to collect data.
+class SensingTimer : public TimerHandler
+{
+ public:
+ SensingTimer(DataGenerator* gen) : TimerHandler(), gen_(gen) {}
+ inline virtual void expire(Event*);
+
+ protected:
+
+ /// DataGenerator used to "create" sensed data.
+ DataGenerator* gen_;
+};
+
+/// Timer that controls the time interval in which an event is valid.
+class EventTimer : public TimerHandler
+{
+ public:
+ EventTimer(DataGenerator* gen) : TimerHandler(), gen_(gen) {}
+ inline virtual void expire(Event*);
+
+ protected:
+
+ /// DataGenerator used to "create" sensed data.
+ DataGenerator* gen_;
+};
+
+/// Base class for sensed data creator objects. Specialized data should extends
+/// this class.
+class DataGenerator : public TclObject
+{
+ public:
+ /// Constructors
+ DataGenerator(){}
+ DataGenerator(AppDataType type);
+
+ /// NS-2 Function
+ virtual int command(int argc, const char*const* argv);
+
+ /// Control functions for simulation.
+ void start();
+ void stop();
+
+ void generateData();
+ void insertNewApp(SensorBaseApp* app);
+ virtual AppData* collect()
+ {
+ printf("DataGenerator::collect() - specialize this function\n");
+ }
+
+ /// Accessor methods
+ AppDataType type() const;
+ double getSensingInterval();
+ void setSensingInterval(double si);
+
+ friend class EventTimer;
+ friend class SensingTimer;
+
+ protected:
+
+ /// Indentify the generator according to the AppData
+ AppDataType type_;
+
+ /// List of applications associated with
+ SensorAppList app_;
+
+ /// Sensing timer.
+ SensingTimer* sensTimer_;
+
+ /// Sensing interval for programmed sensing. For continous sensi
ng use
+ /// CONTINUOUS_TIME constante.
+ double sensing_interval_;
+
+ /// Define the way the sensor device is supposed to generate dat
a.
+ int sensing_type_;
+
+ // Function that returns the timer expire value, taking into acc
ount
+ // the sensing activity type
+ double getExpireTime();
+
+ /// Insert erros into generated data. NOT IMPLEMENTED YET
+ virtual void insertInterference();
+
+ virtual AppData* getMaximumAllowedValue()
+ {
+ printf("DataGenerator::getMaximumAllowedValue() - specialize this f
unction\n");
+ }
+
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/accessPointDiffApp.cc ns-
allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/accessPointDiffApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/accessPointDiffApp.cc 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/accessPointDiffApp.cc
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,276 @@
+/* accessPointDiffApp.cc
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * Implementation of class AccessPointDiffApp.
+ *
+ * This class is an application for access point, using
+ * directed diffusion.
+ */
+#include "accessPointDiffApp.h"
+
+static class AccessPointDiffAppClass : public TclClass
+{
+ public:
+ AccessPointDiffAppClass() : TclClass("Application/AccessPointDif
fApp") {}
+
+ TclObject * create(int, const char * const *)
+ {
+ return new AccessPointDiffApp();
+ }
+} access_point_diff_app;
+
+
+// Constructor
+AccessPointDiffApp::AccessPointDiffApp()
+{
+// callback_ = new MessageReceiver(this);
+}
+
+// Tcl command interpreter
+int AccessPointDiffApp::command(int argc, const char * const * argv)
+{
+ if (argc > 2)
+ {
+ if (!strcmp(argv[1], "subscribe"))
+ return execTclSubscribe(argc - 2, argv + 2);
+ }
+
+ return DiffApp::command(argc, argv);
+}
+
+// Receive a packet from diffusion protocol
+void AccessPointDiffApp::recv(NRAttrVec * data, NR::handle my_handle)
+{
+ NRSimpleAttribute<int> * nrClass;
+
+ nrClass = NRClassAttr.find(data);
+
+ if (!nrClass)
+ {
+ fprintf(stderr, "Received a bad diffusion packet!");
+ abort();
+ }
+
+ switch (nrClass->getVal())
+ {
+ case NRAttribute::INTEREST_CLASS:
+ printf("Access point received an Interest message!\n");
+ break;
+
+ case NRAttribute::DISINTEREST_CLASS:
+ printf("Access point received a Disinterest message!\n")
;
+ break;
+
+ case NRAttribute::DATA_CLASS:
+ printf("*** Access point received a Data message!\n");
+ recvData(data, my_handle);
+ break;
+ }
+}
+
+// Receive a data message
+void AccessPointDiffApp::recvData(NRAttrVec * data, NR::handle my_handle)
+{
+ NRSimpleAttribute<AppDataType> * nrAppDataType;
+
+ nrAppDataType = AppDataTypeAttr.find(data);
+
+ if (!nrAppDataType)
+ {
+ fprintf(stderr, "Bad data message!");
+ abort();
+ }
+
+ printf("Data message contains application data type %d.\n",
+ nrAppDataType->getVal());
+
+ switch (nrAppDataType->getVal())
+ {
+ case SENSED_DATA:
+ recvSensedData(data, my_handle);
+ break;
+
+ default:
+ recvSpecificSensedData(nrAppDataType->getVal(), data, my
_handle);
+ break;
+ }
+}
+
+void AccessPointDiffApp::recvSensedData(NRAttrVec * data, handle h)
+{
+ NRSimpleAttribute<AppData *> * nrSensedData;
+ SensedData * sensedData;
+
+ /* Look for sensed data */
+ nrSensedData = SensedDataAttr.find(data);
+
+ if (nrSensedData)
+ {
+ AppDataList list;
+
+ sensedData = (SensedData *) (nrSensedData->getVal());
+ list = sensedData->getData();
+
+ printf("<<Received %d elements>>", list.size());
+
+ for (AppDataList::iterator it = list.begin();
+ it != list.end();
+ it++)
+ {
+ switch ((*it)->type())
+ {
+ case TEMPERATURE_SENSED_DATA:
+ printf(" Temperature: %lf on %lf\n",
+ ((TemperatureAppData *) *it)->da
ta(),
+ ((TemperatureAppData *) *it)->ti
me());
+ break;
+
+ default:
+ printf(" Unknown data type %d!\n",
+ (*it)->type());
+ printf(" FORCANDO Temperature: %lf on %
lf\n",
+ ((TemperatureAppData *) *it)->da
ta(),
+ ((TemperatureAppData *) *it)->ti
me());
+ break;
+ }
+ }
+ }
+ else
+ {
+ printf("AccessPointDiffApp::recvSensedData - There are no sensed
data!\n");
+ }
+}
+
+void AccessPointDiffApp::recvSpecificSensedData(AppDataType type, NRAttrVec * d
ata, handle h)
+{
+ NRSimpleAttribute<double> * nrValue;
+ NRSimpleAttribute<float> * nrTimeStamp;
+ NRSimpleAttribute<int> * nrNodeID;
+
+ nrValue = SensedValueAttr.find(data);
+ nrTimeStamp = TimeStampAttr.find(data);
+ nrNodeID = NodeIDAttr.find(data);
+
+ printf("@ Received from node %d with %lf delay ::: %lf %lf\n", nrNodeID-
>getVal(), Scheduler::instance().clock() - nrTimeStamp->getVal(), nrTimeStamp->g
etVal(), Scheduler::instance().clock());
+
+ switch (type)
+ {
+ case TEMPERATURE_SENSED_DATA:
+ printf("<< Temperature: %lf >>\n", nrValue->getVal());
+ break;
+
+ default:
+ printf("<< UNKNOWN TYPE: %lf >>\n", nrValue->getVal());
+ break;
+ }
+}
+
+// Subscribe to an interest
+handle AccessPointDiffApp::subscribe(AppDataType appDataType, NRAttribute::oper
ators op, double value)
+{
+ NRAttrVec attrs;
+ handle hnd;
+
+ printf("Access point subscribed to application data type %d.\n", appData
Type);
+
+ attrs.push_back(
+ NRClassAttr.make(NRAttribute::IS, NRAttribute::INTEREST_CLASS));
+
+ attrs.push_back(AppDataTypeAttr.make(NRAttribute::EQ, appDataType));
+
+ attrs.push_back(SensedValueAttr.make(op, value));
+
+ hnd = dr_->subscribe(&attrs, this);
+
+ ClearAttrs(&attrs);
+
+ return hnd;
+}
+
+/*****************************************************************/
+/* Tcl Commands */
+/*****************************************************************/
+
+int AccessPointDiffApp::execTclSubscribe(int argc, const char * const * argv)
+{
+ AppDataType type;
+ NRAttribute::operators op;
+ double value;
+
+ if (argc < 2 || argc > 3)
+ {
+ fprintf(stderr, "SINTAXE: subscribe <type> <operator> [value]\n\
n"
+ "<operator> can be:\n"
+ " = Equal\n"
+ " > Greater than\n"
+ " < Lesser than\n"
+ " != Not equal\n"
+ " >= Greater or equal\n"
+ " <= Lesser or equal\n"
+ " * Any\n");
+ }
+
+ type = (AppDataType) atoi(argv[0]);
+
+ if (argv[1][1] == 0)
+ {
+ switch (argv[1][0])
+ {
+ case '=':
+ op = NRAttribute::EQ;
+ break;
+
+ case '>':
+ op = NRAttribute::GT;
+ break;
+
+ case '<':
+ op = NRAttribute::LT;
+ break;
+
+ case '*':
+ op = NRAttribute::EQ_ANY;
+ break;
+
+ default:
+ return TCL_ERROR;
+ }
+ }
+ else if (argv[1][2] == 0)
+ {
+ if (argv[1][1] == '=')
+ {
+ switch (argv[1][0])
+ {
+ case '!':
+ op = NRAttribute::NE;
+ break;
+
+ case '>':
+ op = NRAttribute::GE;
+ break;
+
+ case '<':
+ op = NRAttribute::LE;
+ break;
+
+ default:
+ return TCL_ERROR;
+ }
+ }
+ else
+ return TCL_ERROR;
+ }
+ else
+ return TCL_ERROR;
+
+ if (argc == 3)
+ value = atof(argv[2]);
+
+ else if (op != NRAttribute::EQ_ANY)
+ return TCL_ERROR;
+
+ subscribe(type, op, value);
+
+ return TCL_OK;
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/accessPointDiffApp.h ns-a
llinone-2.29-mannasim/ns-2.29/mannasim/diffusion/accessPointDiffApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/accessPointDiffApp.h 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/accessPointDiffApp.h
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,39 @@
+#ifndef _ACCESSPOINTDIFFAPP_H_
+#define _ACCESSPOINTDIFFAPP_H_
+
+#include "nrAttributes.h"
+#include "../sensorBaseApp.h"
+#include "../temperatureAppData.h"
+
+/* AccessPointDiffApp
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * This is a class for access point using directed diffusion.
+ */
+class AccessPointDiffApp : public DiffApp, NR::Callback
+{
+ public:
+ AccessPointDiffApp();
+
+ void run() {};
+ virtual int command(int argc, const char * const * argv);
+
+ // Receive message from directed diffusion
+ void recv(NRAttrVec * data, NR::handle my_handle);
+
+ protected:
+ // Subscribe for an interest
+ handle subscribe(AppDataType appDataType, NRAttribute::operators
op, double value);
+
+ // Receive sensed data
+ virtual void recvSensedData(NRAttrVec *, NR::handle);
+ virtual void recvSpecificSensedData(AppDataType type, NRAttrVec
*, NR::handle);
+
+ private:
+ virtual void recvData(NRAttrVec * data, NR::handle my_handle);
+
+ // Execute Tcl Management Commands
+ int execTclSubscribe(int argc, const char * const *);
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/attrsExporter.h ns-allino
ne-2.29-mannasim/ns-2.29/mannasim/diffusion/attrsExporter.h
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/attrsExporter.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/attrsExporter.h
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,33 @@
+#ifndef _ATTRSEXPORTER_H_
+#define _ATTRSEXPORTER_H_
+
+#include <nr.hh>
+#include "nrAttributes.h"
+
+/* AppDataAttrsExporter
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * This is a interface for any sensed data sent
+ * by CommonNodeDiffApp.
+ *
+ * First idea was to implements a interface called
+ * AttrsExporter and to multiple-inherits the sensed
+ * data (AppData and AttrsExporter).
+ *
+ * As multiple-inheritance may cause calling virtual
+ * function problems, AppDataAttrsExporter inherits
+ * from AppData.
+ */
+class AppDataAttrsExporter : public AppData
+{
+ public:
+ AppDataAttrsExporter(AppDataType type) : AppData(type)
+ { }
+
+ /* Set attributes on attributes vector */
+ virtual void setAttributes(NRAttrVec * attrs) = 0;
+};
+
+typedef AppDataAttrsExporter AttrsExporter;
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/commonNodeDiffApp.cc ns-a
llinone-2.29-mannasim/ns-2.29/mannasim/diffusion/commonNodeDiffApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/commonNodeDiffApp.cc 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/commonNodeDiffApp.cc
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,360 @@
+/* CommonNodeDiffApp.cc
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * Implementation of CommonNodeDiffApp.
+ * It is a class for common sensor node, using
+ * directed diffusion.
+ */
+
+#include "commonNodeDiffApp.h"
+#include <common/ns-process.h>
+#include <stdexcept>
+
+// Provides an instance of the CommonNodeDiffApp class in the simulation script
+static class CommonNodeDiffAppClass : public TclClass
+{
+ public:
+ CommonNodeDiffAppClass() : TclClass("Application/SensorBaseApp/C
ommonNodeDiffApp") {}
+
+ TclObject * create(int, const char * const *)
+ {
+ return new CommonNodeDiffApp::TclObjectAdaptor();
+ }
+} class_common_node_diff_app;
+
+/**************************************************************************/
+
+// Constructor
+CommonNodeDiffApp::CommonNodeDiffApp()
+{
+}
+
+// Destructor
+CommonNodeDiffApp::~CommonNodeDiffApp()
+{
+ PublishedDataList::iterator it;
+
+ for (it = publishedDataList_.begin(); it != publishedDataList_.end(); it
++)
+ dr_->unpublish((*it)->hnd);
+}
+
+// Overrides CommonNodeApp's function
+void CommonNodeDiffApp::insertNewGenerator(DataGenerator * gen)
+{
+ CommonNodeApp::insertNewGenerator(gen);
+
+ publishData(gen->type());
+}
+
+/* Overrides CommonNodeApp's function
+ *
+ * This is called to disseminateData from sensor node.
+ */
+void CommonNodeDiffApp::disseminateData(SensedData * data)
+{
+ if (data)
+ {
+ NRAttrVec attrs;
+ PublishedData * pubData;
+ AppDataList list;
+
+ list = data->getData();
+
+ printf("Common Node %d"
+ " - Disseminating %d datas\n",
+ sensor_node_->nodeid(),
+ list.size());
+
+ // Send each sensed data using directed diffusion
+ for (AppDataList::iterator it = list.begin();
+ it != list.end();
+ it++)
+ {
+ pubData = publishData((*it)->type(), (AttrsExporter *) (
*it));
+
+ attrs.push_back(
+ TimeStampAttr.make(NRAttribute::IS, Scheduler::i
nstance().clock()));
+
+/* if (interested(&attrs))
+ {
+ printf("Common Node %d"
+ " - Disseminating %d datas\n",
+ sensor_node_->nodeid(),
+ list.size());
+ }
+
+*/ if (dr_->send(pubData->hnd, &attrs) == FAIL)
+ {
+ fprintf(stderr, "bug! CommonNodeDiffApp::publish
Data\n");
+ //abort();
+ exit(1);
+ }
+
+ ClearAttrs(&attrs);
+ }
+ }
+}
+
+/* Find a handle to a published data generetador */
+CommonNodeDiffApp::PublishedData * CommonNodeDiffApp::findPublishedData(AppData
Type appDataType)
+{
+ PublishedDataList::iterator it;
+
+ it = publishedDataList_.begin();
+
+ while (it != publishedDataList_.end())
+ {
+ if ((*it)->appDataType == appDataType)
+ return *it;
+
+ it++;
+ }
+
+ fprintf(stderr,
+ "Unable to find AppDataType for specific sensed data!\n");
+
+ //throw runtime_error("AppDataType not found for specific sensed data!")
;
+ //abort();
+ exit(1);
+}
+
+/* Publish data.
+ *
+ * This is called for the first publication, which occurs
+ * on data generator attachment.
+ */
+CommonNodeDiffApp::PublishedData * CommonNodeDiffApp::publishData(
+ AppDataType appDataType,
+ NR::Callback * receiver)
+{
+ NRAttrVec attrs;
+ PublishedData * my_publishedData;
+
+ // Set attributes and publish it for data generator
+ attrs.push_back(
+ NRClassAttr.make(NRAttribute::IS, NRAttribute::DATA_CLASS));
+
+ attrs.push_back(
+ AppDataTypeAttr.make(NRAttribute::IS, appDataType));
+
+ attrs.push_back(
+ NodeIDAttr.make(NRAttribute::IS, this->sensor_node_->nodeid()));
+
+ // Publish data
+ my_publishedData = new PublishedData;
+ my_publishedData->hnd = dr_->publish(&attrs);
+ my_publishedData->appDataType = appDataType;
+ my_publishedData->subscriptions = 0;
+
+ ClearAttrs(&attrs);
+
+ publishedDataList_.push_back(my_publishedData);
+
+ // Create subscription handler
+ if (!receiver)
+ my_publishedData->receiver = new InterestReceiver(
+ this, my_publishedData);
+ else
+ my_publishedData->receiver = receiver;
+
+ subscribePublishedData(my_publishedData);
+
+ return my_publishedData;
+}
+
+/* Publish sensed data.
+ *
+ * This function searches for previous publishe data
+ * with the same AppDataType and re-publish it,
+ * containing a new sensed data value.
+ *
+ * This is usefull to access point subscribe for
+ * conditional sensed data (i.e. temperature > 30).
+ */
+CommonNodeDiffApp::PublishedData * CommonNodeDiffApp::publishData(AppDataType a
ppDataType, AttrsExporter * attrsExporter)
+{
+ NRAttrVec attrs;
+ PublishedData * my_publishedData;
+
+ // Set attributes and publish it for data generator
+ attrs.push_back(
+ NRClassAttr.make(NRAttribute::IS, NRAttribute::DATA_CLASS));
+
+ attrs.push_back(
+ AppDataTypeAttr.make(NRAttribute::IS, appDataType));
+
+ attrs.push_back(
+ NodeIDAttr.make(NRAttribute::IS, this->sensor_node_->nodeid()));
+
+ attrsExporter->setAttributes(&attrs);
+
+ // Unpublish previous data
+ my_publishedData = findPublishedData(appDataType);
+
+ dr_->unpublish(my_publishedData->hnd);
+
+ my_publishedData->hnd = dr_->publish(&attrs);
+ my_publishedData->subscriptions = 0;
+
+ ClearAttrs(&attrs);
+
+ return my_publishedData;
+}
+
+/* subscribePublishedData(pubData)
+ * - pubData: Subscribe to receive subscriptions and unsubscriptions
+ */
+void CommonNodeDiffApp::subscribePublishedData(PublishedData * pubData)
+{
+ NRAttrVec attrs;
+
+ attrs.push_back(
+ NRClassAttr.make(NRAttribute::NE, NRAttribute::DATA_CLASS));
+
+ attrs.push_back(
+ NRScopeAttr.make(NRAttribute::IS, NRAttribute::NODE_LOCAL_SCOPE)
);
+
+// attrs.push_back(
+// AppDataTypeAttr.make(NRAttribute::EQ, pubData->appDataType));
+
+// attrs.push_back(
+// NodeIDAttr.make(NRAttribute::EQ, this->sensor_node_->nodeid()));
+
+ dr_->subscribe(&attrs, pubData->receiver);
+
+ ClearAttrs(&attrs);
+}
+
+void CommonNodeDiffApp::run()
+{
+ // Insert generic sensed data
+ publishData(SENSED_DATA);
+}
+
+void CommonNodeDiffApp::start()
+{
+ DiffApp::start();
+ CommonNodeApp::start();
+
+ run();
+}
+
+/* * * Event handle * * */
+
+// Occurs when someone subscribes
+void CommonNodeDiffApp::onSubscription(PublishedData * pubData, NRAttrVec * dat
a)
+{
+ NRSimpleAttribute<AppDataType> * appDataType;
+
+ appDataType = AppDataTypeAttr.find(data);
+
+ if (!appDataType)
+ printf("Common Node %d received an Interest message!\n",
+ sensor_node_->nodeid());
+
+ else
+ printf("Common Node %d received an Interest message for app data
%d\n",
+ sensor_node_->nodeid(), appDataType->getVal());
+
+ subscriptions_.push_back(CopyAttrs(data));
+}
+
+void CommonNodeDiffApp::onUnsubscription(PublishedData * pubData, NRAttrVec * d
ata)
+{
+ NRAVList::iterator it;
+
+ printf("Common Node %d received an Disinterest message!\n",
+ sensor_node_->nodeid());
+
+ for (it = subscriptions_.begin(); it != subscriptions_.end(); it++)
+ if (PerfectMatch(data, *it))
+ {
+ NRAttrVec * tmp = *it;
+
+ subscriptions_.remove(*it);
+
+ delete tmp;
+
+ return;
+ }
+}
+
+/*************************************************************************
+ * Interest receiver class *
+ * *
+ * This class is used to handle Interest messages. *
+ *************************************************************************/
+
+CommonNodeDiffApp::InterestReceiver::InterestReceiver(CommonNodeDiffApp * node,
PublishedData * pubData)
+{
+ this->node_ = node;
+ this->pubData_ = pubData;
+}
+
+void CommonNodeDiffApp::InterestReceiver::recv(NRAttrVec * data, NR::handle hnd
)
+{
+ NRSimpleAttribute<int> * nrClass;
+ NRSimpleAttribute<AppDataType> * nrAppDataType;
+
+ // Get message's class and validate it
+ nrClass = NRClassAttr.find(data);
+
+ if (!nrClass)
+ {
+ fprintf(stderr, "Received a bad diffusion packet!\n");
+ //abort();
+ exit(1);
+ }
+
+// printf("AIEEEEEEEE!\n");
+
+ nrAppDataType = AppDataTypeAttr.find(data);
+
+// assert(nrAppDataType && nrAppDataType->getVal() == pubData_->appDataType
);
+
+/* if (!nrAppDataType)
+ {
+ fprintf(stderr, "Not a valid packet for InterestReceiver!\n");
+ abort();
+ }
+ else if (nrAppDataType->getVal() != pubData_->appDataType)
+ {
+ fprintf(stderr,
+ "Received a not expected application data type (%d != %d
)"
+ " message on SensedDataInterestReceiver!\n",
+ nrAppDataType->getVal(),
+ pubData_->appDataType);
+ abort();
+ }
+*/
+ switch (nrClass->getVal())
+ {
+ case NRAttribute::INTEREST_CLASS:
+ pubData_->subscriptions++;
+ node_->onSubscription(pubData_, data);
+ break;
+
+ case NRAttribute::DISINTEREST_CLASS:
+ pubData_->subscriptions--;
+ node_->onUnsubscription(pubData_, data);
+ break;
+ }
+}
+
+bool CommonNodeDiffApp::interested(NRAttrVec * data)
+{
+ NRAVList::iterator it;
+
+ for (it = subscriptions_.begin(); it != subscriptions_.end(); it++)
+ {
+ NRAttrVec * attrs = *it;
+
+ PrintAttrs(attrs);
+ PrintAttrs(data);
+
+ if (OneWayMatch(attrs, data))
+ return true;
+ }
+
+ return false;
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/commonNodeDiffApp.h ns-al
linone-2.29-mannasim/ns-2.29/mannasim/diffusion/commonNodeDiffApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/commonNodeDiffApp.h 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/commonNodeDiffApp.h
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,183 @@
+/* Implemented by Julio Cesar e Melo <cmelo_bhz@hotmail.com> */
+
+#ifndef _COMMONNODEDIFFAPP_H_
+#define _COMMONNODEDIFFAPP_H_
+
+#include <list.h>
+#include <stdlib.h>
+
+#include "nrAttributes.h"
+#include "attrsExporter.h"
+#include "../commonNodeApp.h"
+
+using namespace std;
+
+/* CommonNodeDiffApp
+ * -- Júlio César e Melo
+ *
+ * This is a class for a common sensor node.
+ * It inherits from CommonNodeApp (from MannaSIM)
+ * and DiffApp. As both are applications and inherit
+ * from TclObject, there are some ambiguous virtual
+ * functions. To solve this problem, it was implemented
+ * an adaptor for calling the specific functions of
+ * each ancestor (see CommonNodeApp::TclObjectAdaptor).
+ */
+class CommonNodeDiffApp : public DiffApp, CommonNodeApp
+{
+ private:
+ class SensedDataInterestReceiver;
+
+ public:
+ /* Type definitions */
+ struct PublishedData
+ {
+ handle hnd;
+ AppDataType appDataType;
+ int subscriptions;
+ NR::Callback * receiver;
+ };
+
+ typedef list<PublishedData *> PublishedDataList;
+ typedef list<NRAttrVec *> NRAVList;
+
+ // Subscribe for receiving interest message
+ void subscribePublishedData(PublishedData *);
+
+ protected:
+ // List of published datas
+ PublishedDataList publishedDataList_;
+
+ // List of attribute list
+ NRAVList subscriptions_;
+
+ // Publish an application data type
+ PublishedData * publishData(AppDataType appDataType, NR::Callbac
k * receiver = NULL);
+ PublishedData * publishData(AppDataType appDataType, AttrsExport
er * attrsExporter);
+
+ // Find a published data
+ PublishedData * findPublishedData(AppDataType appDataType);
+
+ // Occurs when received a subscription
+ virtual void onSubscription(PublishedData *, NRAttrVec *);
+
+ // Occurs when received a unsubscription
+ virtual void onUnsubscription(PublishedData *, NRAttrVec *);
+
+ // Check if there is someone interested
+ bool interested(NRAttrVec *);
+
+ public:
+ // Public constructors and destructors
+ CommonNodeDiffApp();
+ ~CommonNodeDiffApp();
+
+ virtual void start();
+ virtual void run();
+
+ // Disseminate processed data from sensor node
+ virtual void disseminateData(SensedData * data_);
+
+ // Attach a new data generator
+ virtual void insertNewGenerator(DataGenerator * gen);
+
+ /*****************************/
+ /***** Ambiguous methods *****/
+ /*****************************/
+
+ virtual int command(int argc, const char * const * argv)
+ {
+ int result;
+
+ result = CommonNodeApp::command(argc, argv);
+
+ if (result == TCL_OK)
+ return result;
+
+ result = DiffApp::command(argc, argv);
+
+ return result;
+ }
+
+ virtual void trace(TracedVar *tv)
+ {
+ CommonNodeApp::trace(tv);
+ }
+
+ virtual int init(int argc, const char * const * argv)
+ {
+ CommonNodeApp::init(argc, argv);
+ }
+
+ virtual int delay_bind_dispatch(const char * varName, const char
* localName, TclObject * tracer)
+ {
+ CommonNodeApp::delay_bind_dispatch(varName, localName, t
racer);
+ }
+
+ virtual void delay_bind_init_all()
+ {
+ CommonNodeApp::delay_bind_init_all();
+ }
+
+ /* Adaptor - Necessary to remove ambiguous from base
+ * TclObject class
+ */
+ class TclObjectAdaptor : public TclObject
+ {
+ private:
+ CommonNodeDiffApp * obj_;
+
+ public:
+ TclObjectAdaptor()
+ {
+ obj_ = new CommonNodeDiffApp();
+ }
+
+ ~TclObjectAdaptor()
+ {
+ delete obj_;
+ }
+
+ virtual int command(int argc, const char * const * argv)
+ {
+ obj_->command(argc, argv);
+ }
+
+ virtual void trace(TracedVar *tv)
+ {
+ obj_->trace(tv);
+ }
+
+ virtual int init(int argc, const char * const * argv)
+ {
+ obj_->init(argc, argv);
+ }
+
+ virtual int delay_bind_dispatch(const char * varName, co
nst char * localName, TclObject * tracer)
+ {
+ obj_->delay_bind_dispatch(varName, localName, tr
acer);
+ }
+
+ virtual void delay_bind_init_all()
+ {
+ obj_->delay_bind_init_all();
+ }
+ };
+
+ private:
+ /* Interest receiver */
+ class InterestReceiver : public NR::Callback
+ {
+ private:
+ PublishedData * pubData_;
+ CommonNodeDiffApp * node_;
+
+ public:
+ InterestReceiver(
+ CommonNodeDiffApp *, PublishedData *);
+
+ void recv(NRAttrVec *, NR::handle);
+ };
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/mannanmp.cc ns-allinone-2
.29-mannasim/ns-2.29/mannasim/diffusion/mannanmp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/mannanmp.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/mannanmp.cc 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,186 @@
+/* MannaNMP.cc
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * Implementation of MannaNMPAgent, a class for
+ * MannaNMP protocol using directed diffusion.
+ */
+#include "../management/managementData.h"
+#include "mannanmp.h"
+#include <assert.h>
+#include <dr.hh>
+
+using namespace mib;
+
+/* Constructs the agent */
+MannaNMPAgent::MannaNMPAgent(MIBTable * mib, NR * dr)
+{
+ assert(mib && dr);
+
+ this->mib_ = mib;
+ this->dr_ = dr;
+}
+
+/* Receive data from directed diffusion */
+void MannaNMPAgent::recv(NRAttrVec * data, handle h)
+{
+ NRSimpleAttribute<int> * nrClass;
+
+ // Get message's class and validate it
+ nrClass = NRClassAttr.find(data);
+
+ if (!nrClass)
+ {
+ fprintf(stderr, "Received a bad diffusion packet!\n");
+ abort();
+ }
+
+ switch (nrClass->getVal())
+ {
+ case NRAttribute::INTEREST_CLASS:
+ onSubscription(data, h);
+ break;
+
+ case NRAttribute::DISINTEREST_CLASS:
+ // Nothing here until this moment
+ break;
+ }
+}
+
+/* Occurs when received a subscription */
+void MannaNMPAgent::onSubscription(NRAttrVec * data, handle h)
+{
+ NRSimpleAttribute<ManagementData *> * messageAttr;
+ ManagementData * message;
+
+ // Get management data
+ messageAttr = ManagementRequestAttr.find(data);
+
+ assert(messageAttr != NULL);
+
+ if (messageAttr == NULL)
+ {
+ fprintf(stderr, "Como assim 1?\n");
+ abort();
+ }
+
+ message = messageAttr->getVal();
+
+ assert(message != NULL);
+
+ if (message == NULL)
+ {
+ fprintf(stderr, "Como assim 2?\n");
+ abort();
+ }
+
+ switch (message->getOperation())
+ {
+ case GET:
+ printf("MANNANMP: GET\n");
+ onGetMessage((GetData *) message, h);
+ break;
+
+ case SET:
+ printf("MANNANMP: SET\n");
+ onSetMessage((SetData *) message, h);
+ break;
+
+ case RESPONSE:
+ case TRAP:
+ fprintf(stderr,
+ "Agent shouldn't receive a RESPONSE or TRAP"
+ " message!\n");
+ abort();
+
+ default:
+ fprintf(stderr,
+ "Unknown management operation %d!\n",
+ message->getOperation());
+ abort();
+ }
+}
+
+/* onGetMessage(message, h)
+ *
+ * Occurs when received a get message.
+ */
+void MannaNMPAgent::onGetMessage(GetData * message, handle h)
+{
+ NRAttrVec attrs; // Attributes of diffusion message
+ KeyValueData data(RESPONSE); // Response data
+ GetData::MIBKeyList * requestList;
+ ManagementData * dataCopy;
+
+ requestList = message->getRequestList();
+
+ printf("Sending response for key(s)");
+
+ for (GetData::MIBKeyList::iterator it = requestList->begin();
+ it != requestList->end();
+ it++)
+ {
+ mibKey key = *it;
+ MIBEntryBase * entry = mib_->getEntry(key)->copy();
+
+ data.addEntry(entry);
+
+ // DEBUG!!!
+ printf(" %d = ", key);
+
+ switch (entry->getType())
+ {
+ case INT32:
+ printf("%d (INT32)", ((MIBEntry<int> *) entry)->
getValue());
+ break;
+
+ case LONG:
+ printf("%ld (LONG)", ((MIBEntry<long> *) entry)-
>getValue());
+ break;
+
+ case FLOAT:
+ printf("%f (FLOAT)", ((MIBEntry<float> *) entry)
->getValue());
+ break;
+
+ case DOUBLE:
+ printf("%lf (DOUBLE)", ((MIBEntry<double> *) ent
ry)->getValue());
+ break;
+ }
+ }
+
+ printf(".\n");
+
+ dataCopy = (ManagementData *) data.copy();
+
+ attrs.push_back(
+ ManagementResponseAttr.make(
+ NRAttribute::IS, dataCopy));
+
+ dr_->send(hnd_, &attrs);
+
+ ClearAttrs(&attrs);
+}
+
+/* Occurs when received a set message */
+void MannaNMPAgent::onSetMessage(SetData * message, handle h)
+{
+ SetData::MIBEntryList * list;
+ char buf[32];
+
+ list = message->getEntries();
+
+ for (SetData::MIBEntryList::iterator it = list->begin(); it != list->end
(); it++)
+ {
+ mibKey key;
+ MIBEntryBase * entry;
+
+ key = (*it)->getKey();
+ entry = mib_->getEntry(key);
+
+ (*it)->toString(buf);
+
+ printf(" Setting %d = %s\n", key, buf);
+
+ entry->setValue(buf);
+ }
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/mannanmp.h ns-allinone-2.
29-mannasim/ns-2.29/mannasim/diffusion/mannanmp.h
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/mannanmp.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/mannanmp.h 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,32 @@
+/* mannanmp.h
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * MannaNMPAgent is a class for answering
+ * MannaNMP messages using directed diffusion.
+ */
+#ifndef _MANNANMP_H_
+#define _MANNANMP_H_
+
+#include "nrAttributes.h"
+#include "../management/mibTable.h"
+#include <nr.hh>
+
+class MannaNMPAgent : public NR::Callback
+{
+ protected:
+ MIBTable * mib_;
+ NR * dr_;
+ handle hnd_;
+
+ public:
+ MannaNMPAgent(MIBTable * mib, NR * dr);
+ void recv(NRAttrVec * data, handle h);
+ void setHandle(handle h) { hnd_ = h; }
+
+ private:
+ void onSubscription(NRAttrVec * data, handle h);
+ void onGetMessage(GetData * message, handle h);
+ void onSetMessage(SetData * message, handle h);
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/nrAttributes.cc ns-allino
ne-2.29-mannasim/ns-2.29/mannasim/diffusion/nrAttributes.cc
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/nrAttributes.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/nrAttributes.cc
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,55 @@
+/* nrAttributes.cc
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * This file contains implementation for Directed Diffusion
+ * attributes for using by MannaSIM.
+ */
+#define _NRATTRIBUTES_CC_
+
+#include "nrAttributes.h"
+#include <stdlib.h>
+
+NRSimpleAttribute<AppData *>::NRSimpleAttribute(int key, int type, int op, AppD
ata * val, int size)
+ : NRAttribute(key, BLOB_TYPE, op, 0)
+{
+ assert(type == BLOB_TYPE);
+
+ val_ = NULL;
+ setVal(val, val->size());
+}
+
+NRSimpleAttribute<AppData *>::~NRSimpleAttribute()
+{
+ delete [] (char *) val_;
+}
+
+void NRSimpleAttribute<AppData *>::setVal(AppData * value, int len)
+{
+ delete [] (char *) val_;
+ len_ = len;
+ val_ = (void *) new char[len_];
+ memcpy(val_, value, len_);
+}
+
+AppData * NRSimpleAttribute<AppData *>::getVal()
+{
+ return (AppData *) val_;
+}
+
+/***************************************************************************/
+/* Atributes */
+
+NRSimpleAttributeFactory<AppDataType> AppDataTypeAttr(
+ APPLICATION_DATA_TYPE, NRAttribute::INT32_TYPE);
+
+NRSimpleAttributeFactory<int> NodeIDAttr(
+ NODE_ID, NRAttribute::INT32_TYPE);
+
+NRSimpleAttributeFactory<AppData *> SensedDataAttr(
+ SENSED_DATA_BLOB, NRAttribute::BLOB_TYPE);
+
+NRSimpleAttributeFactory<double> SensedValueAttr(SENSED_VALUE, NRAttribute::FLO
AT64_TYPE);
+
+NRSimpleAttributeFactory<float> TimeStampAttr(TIME_STAMP, NRAttribute::FLOAT32_
TYPE);
+
+#undef _NRATTRIBUTES_CC_
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/diffusion/nrAttributes.h ns-allinon
e-2.29-mannasim/ns-2.29/mannasim/diffusion/nrAttributes.h
--- ns-allinone-2.29/ns-2.29/mannasim/diffusion/nrAttributes.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/diffusion/nrAttributes.h 2006-05-
26 11:13:56.000000000 -0300
@@ -0,0 +1,40 @@
+/* nrAttributes.h
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * This file contains definition for Directed Diffusion
+ * attributes for using by MannaSIM.
+ */
+#ifndef _NRATTRIBUTES_H_
+#define _NRATTRIBUTES_H_
+
+#include "diffapp.hh"
+#include "config.h"
+
+template <> class NRSimpleAttribute<AppData *> : public NRAttribute
+{
+ public:
+ NRSimpleAttribute(int key, int type, int op, AppData * val, int
size = 0);
+ ~NRSimpleAttribute();
+
+ void setVal(AppData * value, int len);
+ AppData * getVal();
+};
+
+enum keys
+{
+ APPLICATION_DATA_TYPE = 3000,
+ NODE_ID,
+ SENSED_DATA_BLOB,
+ SENSED_VALUE,
+ TIME_STAMP
+};
+
+#ifndef _NRATTRIBUTES_CC_
+extern NRSimpleAttributeFactory<AppDataType> AppDataTypeAttr;
+extern NRSimpleAttributeFactory<int> NodeIDAttr;
+extern NRSimpleAttributeFactory<AppData *> SensedDataAttr;
+extern NRSimpleAttributeFactory<double> SensedValueAttr;
+extern NRSimpleAttributeFactory<float> TimeStampAttr;
+#endif
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/app/accessPointLeachApp.cc ns
-allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/accessPointLeachApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/app/accessPointLeachApp.cc 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/accessPointLeachApp.cc
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,42 @@
+#include "accessPointLeachApp.h"
+#include <mannasim/leach/leachAgent.h>
+
+static class AccessPointLeachAppClass : public TclClass
+{
+ public:
+ AccessPointLeachAppClass() : TclClass("Application/AccessPointAp
p/AccessPointLeachApp") {}
+
+ TclObject* create(int, const char*const*)
+ {
+ return (new AccessPointLeachApp());
+ }
+} class_accesspointleachapp;
+
+
+
+void AccessPointLeachApp::start()
+{
+ if (agent_ == NULL)
+ {
+ char agentName[32];
+
+ printf("Warning! AccessPointLeachApp::start() => Agent is null!
Creating a LeachAgent!\n");
+
+ sprintf(agentName, "__apagent"); // Não está legal
+
+ agent_ = new LeachAgent();
+ agent_->name(agentName);
+
+ Tcl::instance().enter(agent_);
+
+ printf("%s attach %s", name(), agent_->name());
+ Tcl::instance().evalf("%s attach %s", name(), agent_->name());
+ }
+
+ AccessPointApp::start();
+}
+
+void AccessPointLeachApp::forward_data(int size, AppData * data)
+{
+ // Por enquanto nada... ver compatibilidade depois ***
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/app/accessPointLeachApp.h ns-
allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/accessPointLeachApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/app/accessPointLeachApp.h 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/accessPointLeachApp.h
2006-05-26 11:08:30.000000000 -0300
@@ -0,0 +1,26 @@
+#ifndef _ACCESSPOINTLEACHAPP_H_
+#define _ACCESSPOINTLEACHAPP_H_
+
+#include "../../accessPointApp.h"
+
+/* AccessPointLeachApp
+ * -- Júlio César e Melo <julio.melo@gmail.com>
+ *
+ * This is a class for access point using leach.
+ */
+class AccessPointLeachApp : public AccessPointApp {
+
+ public:
+ // Method called from the transport protocol for the application
to
+ // receive a message. Method from Process (ns-process.cc) overch
arged
+// virtual void process_data(int size, AppData* data);
+
+// int command(int argc, const char*const* argv);
+// virtual void stop();
+ virtual void start();
+
+ virtual void forward_data(int size, AppData* data);
+};
+
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/app/leachApp.cc ns-allinone-2
.29-mannasim/ns-2.29/mannasim/leach/app/leachApp.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/app/leachApp.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/leachApp.cc 2006-05-
26 11:08:30.000000000 -0300
@@ -0,0 +1,813 @@
+#include "leachApp.h"
+#include <random.h>
+#include <mannasim/battery.h>
+#include <mannasim/leach/rca/rcagent.h>
+
+/** TCL **************************************/
+
+static class LeachAppClass : public TclClass
+{
+ public:
+ LeachAppClass() : TclClass("Application/SensorBaseApp/CommonNod
eApp/LeachApp") {}
+
+ // Create a TCL Object (parameters starts in 4)
+ TclObject * create(int argc, const char * const * argv)
+ {
+ if (argc != 7)
+ {
+ fprintf(stderr,
+ "Incorrect sintax:\n"
+ " new LeachApp <nNodes> <nClusters> <ma
xDist>");
+ }
+
+ return new LeachApp(
+ atoi(argv[4]),
+ atoi(argv[5]),
+ atof(argv[6]));
+ }
+} leach_app_object;
+
+
+
+
+/*********************************************/
+
+LeachApp::LeachApp(int nNodes, int nClusters, double maxDist) : CommonNodeApp()
// : SensorBaseApp()
+{
+ mac_ = NULL;
+ agent_ = NULL;
+
+ isCH_ = 0;
+ hasBeenCH_ = false;
+ nextChangeTime_ = 0;
+ round_ = 0;
+ dist_ = 0;
+ code_ = 0;
+ now_ = 0;
+ endFrmTime_ = 0;
+ beginIdle_ = 0;
+ beginSleep_ = 0;
+
+ /* Although constructing here, can't determine
+ * sensedData's nodeid, because while constructing
+ * the sensed_node_ is not yet defined.
+ */
+ sensedData_ = new SensedData();
+
+ eventHandler_ = new LeachEventHandler(this);
+
+ config_.numberNodes_ = nNodes;
+ config_.desiredClusters_ = nClusters;
+ config_.maxDist_ = bsDist_ = maxDist;
+
+ initializeConfig();
+
+ frameTime_ = config_.ssSlotTime_ * config_.numberNodes_;
+
+ lstRndDelay_ = 0;
+
+ listenADV_ = true;
+ listenJOINREQ_ = false;
+}
+
+/* Initialize LEACH's configuration. */
+void LeachApp::initializeConfig()
+{
+ #define HDR_SIZE 25 // Originalmente era 25
+
+ config_.changeTimeIncrement_ = 10 * INITIAL_ENERGY;
+ config_.rndAdvDelay_ = TxTime(HDR_SIZE + 4);
+ config_.ra_advTotal_ = 1 + config_.rndAdvDelay_ * (config_.desir
edClusters_ * 4 + 1);
+ config_.ra_join_ = 0.01 * config_.numberNodes_;
+ config_.ra_delay_ = TxTime(HDR_SIZE + 4);
+ config_.spreading_ = config_.desiredClusters_ + 1;
+ config_.sigSize_ = 500;
+ config_.ssSlotTime_ = TxTime(config_.sigSize_ + HDR_SIZE) * con
fig_.spreading_;
+ config_.bsCode_ = 0;
+
+ #undef HDR_SIZE
+}
+
+LeachApp::~LeachApp()
+{
+ if (sensedData_ != NULL)
+ delete sensedData_;
+
+ delete eventHandler_;
+}
+
+void LeachApp::start()
+{
+ if (agent_ == NULL)
+ {
+ char agentName[32];
+
+ printf("Warning! LeachApp::start() => agent_ of %d is null! Crea
ting a RCAgent!\n", sensor_node_->nodeid());
+
+ sprintf(agentName, "__rcagent%d", sensor_node_->nodeid());
+
+ agent_ = new RCAgent();
+ agent_->name(agentName);
+
+ Tcl::instance().enter(agent_);
+
+ printf("%s attach %s", name(), agent_->name());
+ Tcl::instance().evalf("%s attach %s", name(), agent_->name());
+ }
+
+ sensedData_->node_id() == sensor_node_->nodeid();
+
+ mac_ = (MacSensor *) ((RCAgent *) agent_)->getMAC();
+ mac_->node_num() = sensor_node_->nodeid();
+ decideClusterHead();
+
+ CommonNodeApp::start();
+}
+
+void LeachApp::goToSleep()
+{
+ ((Battery *) sensor_node_->energy_model())->sleep();
+}
+
+void LeachApp::wakeUp()
+{
+ ((Battery *) sensor_node_->energy_model())->wakeUp();
+}
+
+void LeachApp::setCode(int code)
+{
+ printf("%d is setting code to %d\n", sensor_node_->nodeid(), code);
+ code_ = code;
+ mac_->code() = code;
+}
+
+void LeachApp::setClusterHead()
+{
+ isCH_ = true;
+ hasBeenCH_ = true;
+ /* "... when a node decides to become a cluster-head,
+ * it chooses randomly from a list of spreading codes."
+ */
+}
+
+void LeachApp::unsetClusterHead()
+{
+ isCH_ = false;
+}
+
+/*** Distributed cluster set-up functions *****************/
+
+void LeachApp::decideClusterHead()
+{
+ int totRounds;
+
+ setCode(0);
+ wakeUp();
+
+ CHHeard_ = false;
+
+ // CheckIsAlive???
+
+ totRounds = config_.numberNodes_ / config_.desiredClusters_;
+
+ if (round_ >= totRounds)
+ round_ = 0;
+
+ if (round_ == 0)
+ setHasNotBeenClusterHead();
+
+ if (Random::uniform(0, 1) < calculatePi())
+ {
+ printf("Node %d is a cluster head at time %lf\n", sensor_node_->
nodeid(), Scheduler::instance().clock());
+
+ setClusterHead();
+
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::advertiseClusterHead),
+ config_.rndAdvDelay_);
+ }
+ else
+ {
+ unsetClusterHead();
+ listenADV_ = true;
+ clearClusterChoices();
+ }
+
+ round_++;
+ nextChangeTime_ = Scheduler::instance().clock() + config_.changeTimeIncr
ement_;
+
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::decideClusterHead),
+// nextChangeTime_);
+ config_.changeTimeIncrement_);
+
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::findBestCluster),
+ config_.ra_advTotal_);
+}
+
+double LeachApp::calculatePi()
+{
+ /*
+ * Pi(t) = k / (N - k mod(r,N/k))
+ * where k is the expected number of clusters per round
+ * N is the total number of sensor nodes in the network
+ * and r is the number of rounds that have already passed.
+ */
+ register int n = config_.numberNodes_;
+ register int k = config_.desiredClusters_;
+ double thresh;
+
+ if (hasBeenClusterHead())
+ thresh = 0;
+
+ else if (n - k * round_ < 1)
+ thresh = 1;
+
+ else
+ thresh = (double) k / (n - k * round_);
+
+ return thresh;
+}
+
+void LeachApp::advertiseClusterHead()
+{
+ int clusterCode;
+ int numCodesAvail;
+
+ numCodesAvail = 2 * config_.spreading_ - 1;
+
+
+ currentCH_ = sensor_node_->nodeid();
+ currentCHMAC_ = MAC_BROADCAST;
+
+ clusterCode = (mac_->myADVnum() % numCodesAvail) + 1;
+
+ setCode(clusterCode);
+
+ wakeUp();
+
+ send(
+ MAC_BROADCAST,
+ LINK_BROADCAST,
+ LEACH_ADV_CH,
+// (char *) (&currentCH_),
+ (char *) (&code_),
+// (char *) (&mac_->myADVnum()),
+ sizeof(currentCH_),
+ BYTES_ID,
+ config_.maxDist_,
+ 0);
+
+ listenJOINREQ_ = true;
+
+ clusterNodes_.clear();
+}
+
+void LeachApp::findBestCluster()
+{
+// int numCodesAvail, clusterCode;
+
+// numCodesAvail = 2 * config_.spreading_ - 1;
+
+ if (isClusterHead())
+ {
+ // If node is CH, determine code and create a TDMA schedule.
+ dist_ = config_.maxDist_;
+ currentCH_ = sensor_node_->nodeid();
+ currentCHMAC_ = MAC_BROADCAST;
+// myADVnum_ = mac_->myADVnum();
+
+ /* There are opt(spreading) - 1 codes available b/c need 1 code
+ * for communication with the base station.
+ */
+// clusterCode = (myADVnum_ % numCodesAvail) + 1;
+
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::createSchedule),
+ config_.ra_advTotal_ + config_.ra_join_);
+ }
+ else
+ {
+ int clusterCode;
+
+ /* If node is not a CH, find the CH which allows minimum transmi
t
+ * power for communication. Set the code and "distance" paramet
ers
+ * accordingly.
+ */
+ if (clusterChoices_.empty())
+ {
+ printf("Warning! No Cluster Head ADVs were heard by %d\n
", sensor_node_->nodeid());
+ currentCH_ = -1; // VER ISSO *****
+ currentCHMAC_ = MAC_BROADCAST;
+ sendMyDataToBS();
+ return;
+ }
+
+ double min_dist = config_.maxDist_ + 1;
+ int ind = 0;
+
+ for (CHs::iterator it = clusterChoices_.begin(); it != clusterCh
oices_.end(); it++, ind++)
+ {
+ chadv element = (chadv) *it;
+
+ if (element.distance < min_dist)
+ {
+ min_dist = element.distance;
+ currentCH_ = element.nodeid;
+ currentCHMAC_ = element.mac;
+// clusterCode = (ind % numCodesAvail) + 1;
+ clusterCode = element.code;
+ }
+ }
+
+ dist_ = min_dist;
+
+ printf("%d has choosen %d as cluster head (mac = %d)\n", sensor_
node_->nodeid(), currentCH_, currentCHMAC_);
+
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::informClusterHead),
+ config_.ra_advTotal_ + Random::uniform(0, config_.ra_joi
n_ - config_.ra_delay_));;
+
+ goToSleep();
+
+
+ setCode(clusterCode);
+
+ printf("Current cluster-head of %d is %d, which code is %d, at d
istance is %lf\n",
+ sensor_node_->nodeid(),
+ currentCH_,
+ clusterCode,
+ dist_);
+ }
+
+ listenADV_ = false;
+ clearClusterChoices();
+}
+
+void LeachApp::informClusterHead()
+{
+ int dataSize;
+ int nodeId;
+
+ printf("%d sending JOIN_REQ to %d, distance = %lf , at time %lf\n",
+ sensor_node_->nodeid(),
+ currentCH_,
+ dist_,
+ Scheduler::instance().clock());
+
+ dataSize = config_.spreading_ * BYTES_ID;
+ nodeId = sensor_node_->nodeid();
+
+ send(
+// MAC_BROADCAST,
+ currentCHMAC_,
+ currentCH_,
+ LEACH_JOIN_REQ,
+ (char *) (&nodeId),
+ sizeof(int),
+ dataSize,
+ config_.maxDist_, // Using maxDist_, the CH can di
scover node's distance
+// dist_,
+ code_);
+}
+
+void LeachApp::createSchedule()
+{
+ if (clusterNodes_.empty())
+ {
+ printf("Warning! There are no nodes in cluster %d\n",
+ sensor_node_->nodeid());
+ sendMyDataToBS();
+ }
+ else
+ {
+ int * msg;
+ int i = 0;
+ int dataSize;
+
+ msg = new int[clusterNodes_.size()];
+
+ printf("%d sending TDMA schedule (ADV_SCH): ", sensor_node_->nod
eid());
+
+ for (CNs::iterator it = clusterNodes_.begin(); it != clusterNode
s_.end(); it++)
+ {
+ msg[i++] = (int) *it;
+ printf("%d ", (int) *it);
+ }
+
+ printf("at time %lf\n", Scheduler::instance().clock());
+
+ dataSize = config_.spreading_ * sizeof(int) * clusterNodes_.size
();
+
+ tdmaSchedule_.assign(clusterNodes_.begin(), clusterNodes_.end())
;
+
+ send(
+ MAC_BROADCAST,
+// sensor_node_->nodeid(),
+ LINK_BROADCAST,
+ LEACH_ADV_SCH,
+ (char *) msg,
+ sizeof(int) * clusterNodes_.size(),
+ dataSize,
+ dist_,
+ code_);
+
+ listenJOINREQ_ = false;
+
+// delete [] msg;
+
+ frameTime_ = (5 + clusterNodes_.size()) * config_.ssSlotTime_;
+ lstRndDelay_ = Random::uniform(0, 0.01);
+ xmitTime_ = config_.ssSlotTime_ * (clusterNodes_.size()) + ls
tRndDelay_;
+
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::sendDataToBS),
+ xmitTime_);
+ }
+}
+
+/*********************************************************/
+
+void LeachApp::recv(int type, double distance, int link_dst, int size, char * m
eta, int meta_size, int src_mac, int src_lnk)
+{
+#ifdef CHATO
+ printf("Receiving packet at %lf => ", Scheduler::instance().clock());
+#endif
+
+// if (link_dst < 0) // || link_dst == sensor_node_->nodeid())
+ switch (type)
+ {
+ case LEACH_ADV_CH:
+#ifdef CHATO
+ printf("LEACH_ADV_CH\n");
+#endif
+// if (isClusterHead())
+ recvADV_CH(meta, meta_size, distance, sr
c_mac, src_lnk);
+ break;
+
+ case LEACH_JOIN_REQ:
+#ifdef CHATO
+ printf("JOIN_REQ\n");
+#endif
+
+// if (sensor_node_->nodeid() == link_dst)
+ recvJOIN_REQ(meta, meta_size);
+ break;
+
+ case LEACH_ADV_SCH:
+#ifdef CHATO
+ printf("LEACH_ADV_SCH\n");
+#endif
+ recvADV_SCH(meta, meta_size, src_mac);
+ break;
+
+ case LEACH_DATA:
+#ifdef CHATO
+ printf("LEACH_DATA\n");
+#endif
+// if (sensor_node_->nodeid() == link_dst)
+ recvData(meta, meta_size);
+ break;
+
+ case LEACH_BS_HELLO:
+#ifdef CHATO
+ printf("LEACH_BS_HELLO\n");
+#endif
+ recvBSHello(meta, meta_size, distance);
+ break;
+
+ default:
+ fprintf(stderr, "Unknown received data type on L
eachApp!\n", type);
+ exit(-1);
+ }
+// else
+// fprintf(stderr, "Received a packet addressed to another node!\n"
);
+}
+
+void LeachApp::recvADV_CH(char * msg, int size, double distance, int src, int l
nk_src)
+{
+ if (listenADV_)
+ {
+ chadv element;
+
+ if (!isClusterHead())
+ printf("%d received ADV_CH from %d (mac = %d, distance =
%lf, code = %d) at %lf\n",
+ sensor_node_->nodeid(),
+ lnk_src,
+ src,
+ distance,
+ *((int *) msg),
+ Scheduler::instance().clock());
+
+ element.nodeid = lnk_src;
+ element.distance = distance;
+ element.mac = src;
+ element.code = *((int *) msg);
+ element.object = NULL;
+
+ clusterChoices_.push_back(element);
+ }
+}
+
+void LeachApp::recvJOIN_REQ(char * msg, int size)
+{
+ if (!isClusterHead())
+ {
+ fprintf(stderr, "Node %d received a JOIN_REQ from %d but it's no
t a cluster head!\n",
+ sensor_node_->nodeid(),
+ *((int *) msg));
+ exit(-1);
+ }
+
+ if (listenJOINREQ_)
+ {
+ printf("%d received JOIN_REQ from %d at %lf\n",
+ sensor_node_->nodeid(),
+ *((int *) msg),
+ Scheduler::instance().clock());
+
+ clusterNodes_.push_back(*((int *) msg));
+ }
+ else
+ printf("%d received a late JOIN_REQ from %d at %lf\n",
+ sensor_node_->nodeid(),
+ *((int *) msg),
+ Scheduler::instance().clock());
+}
+
+void LeachApp::recvADV_SCH(char * msg, int size, int src)
+{
+ int * vector = (int *) msg;
+ int elements = size / sizeof(int);
+ int nodeid = sensor_node_->nodeid();
+ double xmitat;
+
+ if (src == currentCHMAC_)
+ {
+ printf("%d received ADV_SCH from %d at %lf\n",
+ sensor_node_->nodeid(),
+ src,
+ Scheduler::instance().clock());
+
+ for (int i = 0; i < elements; i++)
+ if (vector[i] == nodeid)
+ {
+ /* Determine time for a single TDMA frame. Each
node sends data once
+ * per frame in the specified slot.
+ */
+ frameTime_ = (5 + elements) * config_.ssSlotTim
e_;
+ xmitTime_ = config_.ssSlotTime_ * i;
+ endFrmTime_ = frameTime_ - xmitTime_;
+ xmitat = Scheduler::instance().clock() + xm
itTime_;
+
+ printf("Node %d schedule to transmit at %lf (%lf
) | It is now %lf\n",
+ nodeid,
+ xmitat,
+ xmitTime_,
+ Scheduler::instance().clock());
+
+ if (xmitat + endFrmTime_ < nextChangeTime_ - 10
* config_.ssSlotTime_)
+ {
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::sendDa
ta),
+ xmitTime_);
+
+ goToSleep();
+ }
+ else
+ printf("teste!!!!!!!\n");
+ return;
+ }
+
+ // There is no time slot available
+ printf("Warning!!! %d doesn't have a transmit time for CH %d!\n"
, sensor_node_->nodeid(), currentCH_);
+
+ sendMyDataToBS();
+ }
+}
+
+void LeachApp::recvData(char * msg, int size)
+{
+ printf("CH %d received data from %d at %lf",
+ sensor_node_->nodeid(),
+ ((SensedData *) msg)->node_id(),
+ Scheduler::instance().clock());
+
+ mergeSensedData((SensedData *) msg);
+
+ printf(" - Now there is %d sensed data\n",
+ sensedData_->getData().size());
+}
+
+/* Occurs when received a base station "hello".
+ * This is usefull to determine the BS distance from
+ * node, but it is not original from LEACH paper.
+ * -- Júlio César e Melo
+ */
+void LeachApp::recvBSHello(char * msg, int size, double distance)
+{
+ bsDist_ = distance;
+
+ printf("Node %d received BS_Hello at distance %lf\n",
+ sensor_node_->nodeid(),
+ distance);
+}
+
+/*********************************************************/
+
+void LeachApp::sendData()
+{
+ int dataSize;
+ double xmitat;
+
+ if (sensedData_->count() > 0 && !isClusterHead())
+ {
+ dataSize = config_.spreading_ * (BYTES_ID * sensedData_->msgSize
() + config_.sigSize_);
+
+ wakeUp();
+
+ printf("Node %d sending %d data to CH %d at %lf | d = %lf\n",
+ sensor_node_->nodeid(),
+ sensedData_->count(),
+ currentCH_,
+ Scheduler::instance().clock() + frameTime_,
+ dist_);
+
+ sensedData_->node_id() = sensor_node_->nodeid();
+
+ send(
+ // MAC_BROADCAST,
+ currentCHMAC_,
+ currentCH_,
+ LEACH_DATA,
+ sensedData_,
+ dataSize,
+ dist_,
+ code_);
+
+ // sensedData_ = new SensedData();
+ clearSensedData();
+
+ if (!isClusterHead())
+ goToSleep();
+ }
+
+ xmitat = Scheduler::instance().clock() + frameTime_;
+
+ if (xmitat + endFrmTime_ < nextChangeTime_ - 10 * config_.ssSlotTime_)
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::sendData),
+ frameTime_);
+}
+
+void LeachApp::send(int mac_dst, int link_dst, int type, char * msg, int msg_si
ze, int data_size, double dist, int code)
+{
+ if (dist <= 0)
+ {
+ printf("Distancia invalida! %lf\n", dist);
+ exit(-1);
+ }
+
+ ((RCAgent *) agent_)->sendmsg(
+ data_size,
+ msg,
+ msg_size,
+ mac_dst,
+ link_dst,
+ dist,
+ code,
+ type);
+}
+
+void LeachApp::send(int mac_dst, int link_dst, int type, void * msg, int msg_si
ze, int data_size, double dist, int code)
+{
+ send(
+ mac_dst,
+ link_dst,
+ type,
+ (char *) msg,
+ msg_size,
+ data_size,
+ dist,
+ code);
+}
+
+void LeachApp::send(int mac_dst, int link_dst, int type, SensedData * msg, int
data_size, double dist, int code)
+{
+ send(
+ mac_dst,
+ link_dst,
+ type,
+ (char *) msg,
+ msg->msgSize(),
+ data_size,
+ dist,
+ code);
+}
+
+void LeachApp::sendDataToBS()
+{
+ int dataSize, compressedSize;
+ double dist;
+ double xmitat;
+ double rndDelay;
+
+ rndDelay = Random::uniform(0, 0.01);
+ xmitat = rndDelay - lstRndDelay_ + frameTime_;
+ lstRndDelay_ = rndDelay;
+
+ if (sensedData_->count() > 0)
+ {
+ dataSize = config_.spreading_ * (BYTES_ID * sensedData_->m
sgSize() + config_.sigSize_);
+
+ if (!isClusterHead())
+ wakeUp();
+
+ printf("Node %d sending %d data to BS at time %lf\n",
+ sensor_node_->nodeid(),
+ sensedData_->count(),
+ Scheduler::instance().clock());
+
+ sensedData_->timeStamp() = Scheduler::instance().clock();
+ sensedData_->node_id() = sensor_node_->nodeid();
+
+ send(
+ MAC_BROADCAST,
+ destination_id_,
+ LEACH_DATA,
+ sensedData_,
+ dataSize,
+ bsDist_,
+ config_.bsCode_);
+
+ if (!isClusterHead())
+ goToSleep();
+
+ clearSensedData();
+ }
+
+ if (xmitat + endFrmTime_ < nextChangeTime_ - 10 * config_.ssSlotTime_)
+ Scheduler::instance().schedule(
+ eventHandler_,
+ new LeachEvent(&LeachApp::sendDataToBS),
+ xmitat);
+}
+
+void LeachApp::sendMyDataToBS()
+{
+ sendDataToBS();
+}
+
+void LeachApp::disseminateData(SensedData * data)
+{

+ if (data != NULL)
+ {
+ printf("Common Node %d - Disseminating data - Time %.3lf\n",
+ sensor_node_->nodeid(),Scheduler::instance().clock());
+
+// printf("%d is aggregating sensed data - Time %.3lf",
+// sensor_node_->nodeid(),Scheduler::instance().clock());
+
+ mergeSensedData(data);
+
+ printf(" - There is %d data aggregated.\n", sensedData_->count()
); //sensedData_->getData().size());
+ }
+}
+
+void LeachApp::mergeSensedData(SensedData * data)
+{
+ AppDataList list;
+
+ list = data->getData();
+
+ for (AppDataList::iterator it = list.begin(); it != list.end(); it++)
+ sensedData_->insertNewData(*it);
+}
+
+void LeachApp::clearClusterChoices()
+{
+ for (CHs::iterator it = clusterChoices_.begin(); it != clusterChoices_.e
nd(); it++)
+ {
+ chadv element = (chadv) *it;
+
+ if (element.object != NULL)
+ delete element.object;
+ }
+
+ clusterChoices_.clear();
+}
+
+void LeachApp::clearSensedData()
+{
+ sensedData_->clear();
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/app/leachApp.h ns-allinone-2.
29-mannasim/ns-2.29/mannasim/leach/app/leachApp.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/app/leachApp.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/leachApp.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,204 @@
+#ifndef _LEACHAPP_H_
+#define _LEACHAPP_H_
+
+#include <mannasim/sensorBaseApp.h>
+#include <mannasim/sensedData.h>
+#include <scheduler.h>
+#include <list.h>
+#include <mannasim/leach/mac/mac-sensor.h>
+
+#define LEACH_ADV_CH 0
+#define LEACH_JOIN_REQ 1
+#define LEACH_ADV_SCH 2
+#define LEACH_DATA 3
+#define LEACH_BS_HELLO 4 /* Base station sends a "hello"
+ * to sensor nodes discover its distance
.
+ * -- Júlio César e Melo
+ */
+
+#define BYTES_ID sizeof(int)
+
+#define LINK_BROADCAST -1
+
+#define INITIAL_ENERGY 10
+//#include <list>
+
+//using namespace std;
+
+#include <mannasim/commonNodeApp.h>
+
+class LeachApp : public CommonNodeApp //SensorBaseApp
+{
+ protected:
+ class LeachEvent : public Event
+ {
+ public:
+ typedef void (LeachApp::*delegation) (void);
+
+ private:
+ delegation delegate_;
+
+ public:
+ LeachEvent(delegation delegate)
+ {
+ this->delegate_ = delegate;
+ }
+
+ delegation getDelegate() { return delegate_; }
+ void setDelegate(delegation delegate) { delegate
_ = delegate; }
+
+ inline void executeDelegation(LeachApp * app)
+ {
+ (app->*delegate_)();
+ }
+ };
+
+ class LeachEventHandler : public Handler
+ {
+ private:
+ LeachApp * app_;
+ public:
+ LeachEventHandler(LeachApp * app) { app_ = app;
}
+
+ void handle(Event * event)
+ {
+ LeachEvent * levent = (LeachEvent *) eve
nt;
+
+ levent->executeDelegation(app_);
+ }
+ };
+
+ public:
+ struct chadv
+ {
+ int nodeid;
+ int mac;
+ double distance;
+ int code;
+ void * object;
+ };
+
+ typedef list <chadv> CHs;
+ typedef list <int> CNs;
+
+ protected:
+ LeachEventHandler * eventHandler_;
+
+ // List of cluster heads
+ CHs clusterChoices_;
+
+ // List of cluster nodes
+ CNs clusterNodes_;
+ CNs tdmaSchedule_;
+
+ // Sensed data
+ SensedData * sensedData_;
+
+ protected:
+ MacSensor * mac_;
+ double nextChangeTime_;
+
+ private:
+ bool isCH_; // Is cluster-head?
+ bool hasBeenCH_; // Has been cluster-head?
+
+ public:
+ struct leachConfig
+ {
+ int numberNodes_; // opt(nn)
+ int desiredClusters_; // opt(num_clust
ers)
+ double changeTimeIncrement_; // opt(ch_change
)
+ double rndAdvDelay_; // opt(ra_adv)
+ double ra_advTotal_; // opt(ra_adv_to
tal)
+ double ra_join_; // opt(ra_join)
+ double ra_delay_; // opt(ra_delay)
;
+ double maxDist_; // opt(max_dist)
+ int spreading_; // opt(spreading
)
+ double ssSlotTime_; // opt(ss_slot_t
ime)
+ int sigSize_; // opt(sig_size)
Bytes for data signal
+ int bsCode_; // opt(bsCode)
+ };
+
+ protected:
+ leachConfig config_;
+ int round_;
+ double dist_;
+ double bsDist_;
+ int code_;
+ double now_;
+ double frameTime_;
+ double endFrmTime_;
+ double beginIdle_;
+ double beginSleep_;
+ int myADVnum_;
+ bool CHHeard_;
+ double xmitTime_;
+ double lstRndDelay_; // Last random delay
+ int currentCH_;
+ int currentCHMAC_;
+ bool listenADV_; // If it's listenning to
ADV
+ bool listenJOINREQ_; // If it's listenning to
JOIN_REQ
+
+ public:
+ LeachApp(int nNodes, int nClusters, double maxDist);
+ ~LeachApp();
+
+ void start();
+
+ void goToSleep();
+ void wakeUp();
+
+ // checkAlive not implemented!
+
+ bool isClusterHead() { return isCH_; }
+ bool hasBeenClusterHead() { return hasBeenCH_; }
+ void setHasNotBeenClusterHead() { hasBeenCH_ = 0; }
+ void setClusterHead();
+ void unsetClusterHead();
+
+ virtual void findBestCluster();
+ virtual void informClusterHead();
+ virtual void createSchedule();
+ virtual void advertiseClusterHead();
+
+ void recv(int type, double distance, int link_dst, int size, cha
r * meta, int meta_size, int src_mac, int src_lnk);
+ virtual void sendData();
+ virtual void sendDataToBS();
+ void sendMyDataToBS();
+
+ protected:
+ virtual void decideClusterHead();
+
+ // Probability to turn cluster head
+ virtual double calculatePi();
+
+ virtual void recvADV_CH(char *, int, double, int, int);
+ inline void recvJOIN_REQ(char *, int);
+ inline void recvADV_SCH(char *, int, int);
+ inline void recvData(char *, int);
+ inline void recvBSHello(char *, int, double);
+
+ inline void send(int mac_dst, int link_dst, int type, char * msg
, int msg_size, int data_size, double dist, int code);
+ inline void send(int mac_dst, int link_dst, int type, void * msg
, int msg_size, int data_size, double dist, int code);
+ inline void send(int mac_dst, int link_dst, int type, SensedData
* msg, int data_size, double dist, int code);
+ virtual void disseminateData(SensedData * data);
+
+ /* Calculate time required to transmit n bytes of data,
+ * considering a 1 Mbps radio speed.
+ */
+ virtual double TxTime(int n) { return n * 8.0 / 1000000.0; }
+
+ /* Initialize LEACH's configuration */
+ virtual void initializeConfig();
+
+ protected:
+ void setCode(int code);
+
+ protected:
+ virtual void mergeSensedData(SensedData *);
+ void clearClusterChoices();
+ virtual void clearSensedData();
+ int calculateCompression(SensedData * sensedData);
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/app/leachData.h ns-allinone-2
.29-mannasim/ns-2.29/mannasim/leach/app/leachData.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/app/leachData.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/app/leachData.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,15 @@
+#include <ns-process.h>
+
+class LeachAdvCHData : public AppData
+{
+ private:
+ int nodeid_;
+
+ public:
+ LeachAdvCHData(int nodeid) : AppData(LEACH_ADV_CH)
+ {
+ this->nodeid_ = nodeid;
+ }
+
+ inline int & nodeid() { return nodeid_; }
+};
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/leachAgent.cc ns-allinone-2.2
9-mannasim/ns-2.29/mannasim/leach/leachAgent.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/leachAgent.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/leachAgent.cc 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,46 @@
+#include <mannasim/accessPointApp.h>
+#include "leachAgent.h"
+
+static class LeachAgentClass : public TclClass
+{
+ public:
+ LeachAgentClass() : TclClass("Agent/RCAgent/LeachAgent") {}
+
+ TclObject* create(int, const char*const*)
+ {
+ return (new LeachAgent());
+ }
+} class_leach_agent;
+
+
+void LeachAgent::recv(Packet* p, Handler*)
+{
+ hdr_cmn *hdr = HDR_CMN(p);
+ hdr_rca *rca_hdr = HDR_RCA(p);
+
+// if (app_ && (rca_hdr->rca_link_dst() < 0 || rca_hdr->rca_link_dst() == (
(AcessPointApp *) app_)->sensor_node()->nodeid()))
+
+ packetMsg_ = rca_hdr->msg_type();
+ distEst_ = rca_hdr->dist_est();
+
+ if (packetMsg_ == LEACH_DATA)
+ {
+// DEBUG
+// printf("|Access point received at %lf, packet = %d, distance = %
lf, packet_msg = %d, meta = %d\n, meta_size = %d\n",
+// Scheduler::instance().clock(),
+// p,
+// distEst_,
+// packetMsg_,
+// rca_hdr->meta(),
+// rca_hdr->meta_size());
+//
+// printf("=) %d %d\n", rca_hdr->rca_link_src(), rca_hdr->meta());
+ ((AccessPointApp *) app_)->process_data(rca_hdr->meta_size(), (A
ppData *) rca_hdr->meta());
+ }
+
+// ((AccessPointApp *) app_)->recv(packetMsg_, distEst_, rca_hdr->rca_link_
dst(), hdr->size(), rca_hdr->meta(),
+// rca_hdr->meta_size(), rca_hdr->rca_mac_src(), rca_hdr->rca_lin
k_src());
+
+ Packet::free(p);
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/leachAgent.h ns-allinone-2.29
-mannasim/ns-2.29/mannasim/leach/leachAgent.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/leachAgent.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/leachAgent.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,16 @@
+#ifndef _LEACH_AGENT_H_
+#define _LEACH_AGENT_H_
+
+#include <mannasim/leach/app/leachApp.h>
+#include <mannasim/leach/rca/rcagent.h>
+
+class LeachAgent : public RCAgent
+{
+ public:
+ virtual void recv(Packet*, Handler*);
+};
+
+#endif
+
+
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/mac/leach-wireless-phy.cc ns-
allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/leach-wireless-phy.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/mac/leach-wireless-phy.cc 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/leach-wireless-phy.cc
2006-05-26 11:08:31.000000000 -0300
@@ -0,0 +1,173 @@
+#include "leach-wireless-phy.h"
+
+static class LeachWirelessPhyClass : public TclClass
+{
+ public:
+ LeachWirelessPhyClass() : TclClass("Phy/WirelessPhy/LeachWireles
sPhy") {}
+
+ TclObject* create(int, const char * const *)
+ {
+ return new LeachWirelessPhy();
+ }
+} class_LeachWirelessPhy;
+
+/*****************************************************************************/
+
+LeachWirelessPhy::LeachWirelessPhy()
+{
+ cs_end_ = new double[CS_MAX_CODE + 1];
+
+ for (int i = 0; i < CS_MAX_CODE + 1; i++)
+ cs_end_[i] = 0;
+
+ bandwidth_ = 1000000; // 100 Mbps
+ Efriss_amp_ = 100 * 1e-12; // Friss amp energy (J/bit/m^2)
+ Etwo_ray_amp_ = 0.013 * 1e-12; // Two-ray amp energy (J/bit/m^4)
+ EXcvr_ = 50 * 1e-9; // Xcvr energy (J/bit)
+ // Use this base threshold to get a "hearing radius" of ~ 1 m
+ // // Pfriss_amp_ = Efriss_amp_ * bandwidth_; // Friss po
wer (W/m^2)
+ Ptwo_ray_amp_ = Etwo_ray_amp_ * bandwidth_; // Two-ray power (W/m^4)
+ PXcvr_ = EXcvr_ * bandwidth_; // Xcvr power (W)
+ ss_ = 1; // amount of spreading
+// time_finish_rcv_ = 0;
+ dist_ = 0; // approx. distance to transmitter
+}
+
+LeachWirelessPhy::~LeachWirelessPhy()
+{
+ delete [] cs_end_;
+}
+
+int LeachWirelessPhy::sendUp(Packet *p)
+{
+ double Pr;
+ int pk_recvd = 0;
+ PacketStamp s;
+
+ if(propagation_)
+ {
+ s.stamp((MobileNode*)node(), ant_, 0, lambda_);
+ Pr = propagation_->Pr(&p->txinfo_, &s, this);
+ }
+
+ hdr_cmn *ch = HDR_CMN(p);
+ hdr_rca *rca_hdr = HDR_RCA(p);
+
+ // Record when this packet ends and its code.
+ int code = rca_hdr->get_code();
+
+// printf("Tempo de recebimento para pacote: %lf\n", txtime(p));
+ cs_end_[code] = Scheduler::instance().clock() + txtime(p);
+
+ pk_recvd = WirelessPhy::sendUp(p);
+
+ if (pk_recvd)
+ {
+ /*
+ ** Determine approximate distance of node transmitting node
+ ** from received power.
+ **/
+ double hr, ht; // height of recv and xmit antennas
+ double rX, rY, rZ; // receiver location
+ double d1, d2;
+ double crossover_dist, Pt, M;
+
+ ((MobileNode *) node_)->getLoc(&rX, &rY, &rZ);
+
+ hr = rZ + ant_->getZ();
+ ht = hr; // assume transmitting node antenna at sam
e height
+
+ crossover_dist = sqrt((16 * PI * PI * L_ * ht * ht * hr * hr)
+ / (lambda_ * lambda_));
+
+ Pt = p->txinfo_.getTxPr();
+ M = lambda_ / (4 * PI);
+ d1 = sqrt( (Pt * M * M) / (L_ * Pr) );
+ d2 = sqrt(sqrt( (Pt * hr * hr * ht * ht) / Pr) );
+
+ if (d1 < crossover_dist)
+ dist_ = d1;
+ else
+ dist_ = d2;
+
+ rca_hdr->dist_est() = (int) ceil(dist_);
+ }
+
+ return pk_recvd;
+}
+
+void LeachWirelessPhy::sendDown(Packet * p)
+{
+ if ((node()->energy_model()->node_on() != true) || (node()->energy_model
()->sleep()))
+ {
+ printf("Node is not on or it is sleeping!\n");
+ return;
+ }
+
+ /*
+ ** The power for transmission depends on the distance between
+ ** the transmitter and the receiver. If this distance is
+ ** less than the crossover distance:
+ ** (c_d)^2 = 16 * PI^2 * L * hr^2 * ht^2
+ ** ---------------------------------
+ ** lambda^2
+ ** the power falls off using the Friss equation. Otherwise, the
+ ** power falls off using the two-ray ground reflection model.
+ ** Therefore, the power for transmission of a bit is:
+ ** Pt = Pfriss_amp_*d^2 if d < c_d
+ ** Pt = Ptwo_ray_amp_*d^4 if d >= c_d.
+ ** The total power dissipated per bit is PXcvr_ + Pt.
+ **/
+ hdr_cmn *ch = HDR_CMN(p);
+ hdr_rca *rca_hdr = HDR_RCA(p);
+
+ double d = rca_hdr->get_dist();
+ double hr, ht; // height of recv and xmit antennas
+ double tX, tY, tZ; // transmitter location
+
+ ((MobileNode *) node_)->getLoc(&tX, &tY, &tZ);
+
+ ht = tZ + ant_->getZ();
+ hr = ht; // assume receiving node and antenna at same heigh
t
+
+ double crossover_dist = sqrt((16 * PI * PI * L_ * ht * ht * hr * hr)
+ / (lambda_ * lambda_));
+
+ if (d < crossover_dist)
+ if (d > 1)
+ Pt_ = Efriss_amp_ * bandwidth_ * d * d;
+ else
+ // Pfriss_amp_ is the minimum transmit amplifier power.
+ Pt_ = Efriss_amp_ * bandwidth_;
+ else
+ Pt_ = Etwo_ray_amp_ * bandwidth_ * d * d * d * d;
+
+ PXcvr_ = EXcvr_ * bandwidth_;
+
+ // if (energy_->remove(pktEnergy(Pt_, PXcvr_, ch->size())) != 0)
+ // alive_ = 0;
+
+ Pt_consume_ = pktEnergy(Pt_, PXcvr_, ch->size());
+
+ WirelessPhy::sendDown(p);
+}
+
+double LeachWirelessPhy::pktEnergy(double pt, double pxcvr, int nbytes)
+{
+ /*
+ ** Energy (in Joules) is power (in Watts=Joules/sec) divided by
+ ** bandwidth (in bits/sec) multiplied by the number of bytes, times 8 bi
ts.
+ **/
+ // If data has been spread, power per DATA bit should be the same
+ // as if there was no spreading ==> divide transmit power
+ // by spreading factor.
+
+ double bits = (double) nbytes * 8;
+
+ pt /= ss_;
+
+ double j = bits * (pt + pxcvr) / bandwidth_;
+
+ return j;
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/mac/leach-wireless-phy.h ns-a
llinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/leach-wireless-phy.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/mac/leach-wireless-phy.h 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/leach-wireless-phy.h
2006-05-26 11:08:31.000000000 -0300
@@ -0,0 +1,40 @@
+#include <wireless-phy.h>
+
+#define CS_MAX_CODE 999
+
+class LeachWirelessPhy : public WirelessPhy
+{
+ private:
+ double pktEnergy(double pt, double pxcvr, int nbytes);
+
+ protected:
+ double *cs_end_; // time when carrier sence
will end per code
+
+ double Efriss_amp_; // Xmit amp energy (J/bit/m
^2)
+ double Etwo_ray_amp_; // Xmit amp energy (J/bit/m
^4)
+ double EXcvr_; // Xcvr energy (J/bit)
+ double Pfriss_amp_; // Friss base transmission
power (W/m^2)
+ double Ptwo_ray_amp_; // Two-ray base transmissio
n power (W/m^4)
+ double PXcvr_; // Xcvr Power (W)
+ double dist_; // approx. distance to tran
smitter
+ int ss_; // amount of spreading
+
+
+ public:
+ LeachWirelessPhy();
+ ~LeachWirelessPhy();
+
+ inline double csEnd(int code)
+ {
+ if (code > CS_MAX_CODE || code < 0)
+ {
+ fprintf(stderr, "csEnd(code): code > CS_MAX_CODE
?; %d %d\n", code, CS_MAX_CODE);
+ exit(-1);
+ }
+
+ return cs_end_[code];
+ }
+
+ int sendUp(Packet * p);
+ void sendDown(Packet * p);
+};
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor.cc ns-allinone
-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor.cc 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,383 @@
+/******************************************************************
+ * This code was developed as part of the MIT uAMPS project. *
+ ******************************************************************/
+
+#include "mac-sensor.h"
+#include "leach-wireless-phy.h"
+
+
+/* ======================================================================
+ Macros
+ ====================================================================== */
+
+#define SET_RX_STATE(x) \
+{ \
+ rx_state_ = (x); \
+}
+
+#define SET_TX_STATE(x) \
+{ \
+ tx_state_ = (x); \
+}
+
+
+/* ======================================================================
+ TCL Hooks for the simulator
+ ====================================================================== */
+static class MacSensorClass : public TclClass {
+public:
+ MacSensorClass() : TclClass("Mac/Sensor") {}
+ TclObject* create(int, const char*const*) {
+ return (new MacSensor());
+ }
+} class_macSensor;
+
+
+/* ======================================================================
+ Mac Class Functions
+ ====================================================================== */
+MacSensor::MacSensor() : Mac(), mhDefer_(this, 0.005), mhTx_(this),
+ mhRx_(this), code_(0), ss_(10), CHheard_(0),
+ myADVnum_(0)
+{
+
+ tx_state_ = rx_state_ = MAC_IDLE;
+
+ sta_seqno_ = 1;
+ cache_ = 0;
+ cache_node_count_ = 0;
+
+/* bind("code_",&code_);
+// bind("base_X",&base_X);
+// bind("base_Y",&base_Y);
+ bind("node_num_",&node_num_);
+ bind("ss_",&ss_);
+ bind("CHheard_",&CHheard_);
+ bind("myADVnum_",&myADVnum_);
+*/
+}
+
+int
+MacSensor::command(int argc, const char*const* argv)
+{
+ if (argc == 3) {
+
+ if (strcmp(argv[1], "log-target") == 0) {
+ logtarget_ = (NsObject*) TclObject::lookup(argv[2]);
+ if(logtarget_ == 0)
+ return TCL_ERROR;
+ return TCL_OK;
+ }
+
+ if(strcmp(argv[1], "nodes") == 0) {
+ if(cache_) return TCL_ERROR;
+ cache_node_count_ = atoi(argv[2]) + 1;
+ cache_ = new Host[cache_node_count_ + 1];
+ assert(cache_);
+ bzero(cache_, sizeof(Host) * (cache_node_count_+1 ));
+ return TCL_OK;
+
+ }
+ }
+ return Mac::command(argc, argv);
+}
+
+/* ======================================================================
+ Misc Routines
+ ====================================================================== */
+
+inline int
+MacSensor::is_idle()
+{
+ if(rx_state_ != MAC_IDLE)
+ return 0;
+
+ if(tx_state_ != MAC_IDLE)
+ return 0;
+
+ return 1;
+}
+
+/* ======================================================================
+ Outgoing Packet Routines
+ ====================================================================== */
+
+void
+MacSensor::send(Packet *p, Handler *h)
+{
+ struct hdr_macSensor* dh = HDR_MACSensor(p);
+
+ if (h != 0)
+ callback_ = h;
+
+ hdr_rca *rca_hdr = HDR_RCA(p);
+ int code = rca_hdr->get_code();
+
+ /*
+ * Perform carrier sence. If the channel is busy, backoff.
+ */
+ if(!is_idle() || ((LeachWirelessPhy *) netif_)->csEnd(code) > Scheduler::inst
ance().clock()) {
+ /*
+ printf("CSMA: Node %d defering %s for time %f: code = %d ...\n",
+ rca_hdr->rca_src(),rca_hdr->meta(),TX_Time(p),code);
+ fflush(stdout);
+ */
+ //mhDefer_.start(p, Random::uniform(TX_Time(p)));
+ mhDefer_.start(p, TX_Time(p));
+ return;
+ }
+
+ pktTx_ = p;
+
+ /*
+ * Determine how many ADV messages have been heard to determine
+ * spreading code to use for each cluster.
+ */
+ myADVnum_ = CHheard_;
+
+ hdr_cmn::access(p)->txtime() = TX_Time(p);
+
+ /*
+ * Assign the data packet a sequence number.
+ */
+ dh->dh_scontrol = sta_seqno_++;
+
+ SET_TX_STATE(MAC_SEND);
+ /*
+ * Start a timer that expires when the packet transmission is complete.
+ */
+ mhTx_.start(p->copy(), TX_Time(p));
+ downtarget_->recv(pktTx_, this);
+ /*
+ struct hdr_mac *mh = HDR_MAC(pktTx_);
+ printf("%d sending data to %d at time %f\n", mh->macSA(), mh->macDA(),
+ Scheduler::instance().clock());
+ fflush(stdout);
+ */
+
+ if(callback_) {
+ Handler *h = callback_;
+ callback_ = 0;
+ h->handle((Event*) 0);
+ }
+
+}
+
+/* ======================================================================
+ Incoming Packet Routines
+ ====================================================================== */
+
+void
+MacSensor::recv(Packet *p, Handler *h)
+{
+ struct hdr_cmn *hdr = HDR_CMN(p);
+
+ /*
+ * Sanity Check
+ */
+ assert(initialized());
+
+ /*
+ * Handle outgoing packets.
+ */
+ if(hdr->direction() == -1) {
+
+ /*
+ * Update the MAC header
+ */
+ hdr->size() += ETHER_HDR_LEN;
+ send(p, h);
+ return;
+ }
+
+ /*
+ * Handle incoming packets.
+ * We just received the 1st bit of a packet on the interface.
+ */
+
+ hdr_rca *rca_hdr = HDR_RCA(p);
+ if (rca_hdr->msg_type() == ADV_TYPE)
+ CHheard_++;
+
+ /*
+ * If I am not receiving the code of the incoming packet, drop it.
+ */
+ int new_code = rca_hdr->get_code();
+ if (new_code != code_) {
+
+// printf("In MAC_IDLE %d: %d is not a code I am currently receiving %d.\n
", node_num_, new_code, code_);
+// fflush(stdout);
+
+ Packet::free(p);
+ return;
+ }
+
+ /*
+ * If the interface is currently in transmit mode, then
+ * it probably won't even see this packet. However, the
+ * "air" around me is BUSY so I need to let the packet
+ * proceed. Just set the error flag in the common header
+ * so that the packet gets thrown away.
+ */
+ if(tx_state_ && hdr->error() == 0) {
+ printf("Warning! %d: Cannot receive while transmitting.\n", node_num_);
+ fflush(stdout);
+ hdr->error() = 1;
+ }
+
+ /*
+ * If more than ss_ simultaneous transmissions occur, there is a
+ * collision and I cannot receive the packet.
+ */
+ int num_codes = 0;
+ for (int i = 0; i < 1000; i++)
+ if (((LeachWirelessPhy *) netif_)->csEnd(i) > Scheduler::instance().clock()
)
+ num_codes++;
+ if (num_codes > ss_) {
+ printf("I can hear %d different packets ==> collision.\n", num_codes);
+ fflush(stdout);
+ collision(p);
+ return;
+ }
+
+ if(rx_state_ == MAC_IDLE) {
+
+ SET_RX_STATE(MAC_RECV);
+
+ pktRx_ = p;
+
+ /*
+ * Schedule the reception of this packet, in txtime seconds.
+ */
+ double rtime = TX_Time(p);
+ assert(rtime >= 0.0);
+ mhRx_.start(p, rtime);
+ }
+ else {
+ /*
+ * If the power of the incoming packet is smaller than the
+ * power of the packet currently being received by at least
+ * the capture threshold, then we ignore the new packet.
+ */
+
+ if(hdr->error() == 0) {
+ hdr->error() = 1;
+ }
+ if(pktRx_->txinfo_.RxPr / p->txinfo_.RxPr >= p->txinfo_.CPThresh) {
+ capture(p);
+ } else {
+ collision(p);
+ }
+ }
+}
+
+void
+MacSensor::capture(Packet *p)
+{
+ printf("CAPTURE!!!!\n");
+ fflush(stdout);
+ Packet::free(p);
+ //p = 0;
+}
+
+void
+MacSensor::collision(Packet *p)
+{
+ printf("COLLISION!!!!\n");
+ fflush(stdout);
+ switch(rx_state_) {
+
+ case MAC_RECV:
+ SET_RX_STATE(MAC_COLL);
+
+ /* fall through */
+
+ case MAC_COLL:
+ assert(pktRx_);
+ assert(mhRecv_.busy);
+
+ /*
+ * Since a collision has occurred, figure out
+ * which packet that caused the collision will
+ * "last" the longest. Make this packet,
+ * pktRx_ and reset the Recv Timer if necessary.
+ */
+ if(TX_Time(p) > mhRx_.expire()) {
+ mhRx_.stop(pktRx_);
+ Packet::free(pktRx_);
+ pktRx_ = p;
+ mhRx_.start(pktRx_,TX_Time(pktRx_));
+ }
+ else {
+ Packet::free(p);
+ }
+ break;
+
+ default:
+ assert(0);
+ }
+}
+
+void
+MacSensor::recvDATA(Packet *p)
+{
+ /*
+ * Adjust the MAC packet size - ie, strip off the mac header.
+ */
+ struct hdr_cmn *ch = HDR_CMN(p);
+ ch->size() -= ETHER_HDR_LEN;
+ ch->num_forwards() += 1;
+
+ /*
+ * Pass the packet up to the link-layer.
+ */
+ uptarget_->recv(p, (Handler*) 0);
+}
+
+void
+MacSensor::deferHandler(Event *e)
+{
+ /*
+ hdr_rca *rca_hdr = HDR_RCA((Packet *)e);
+ printf("Node %d trying to send %s again at time %f.\n", node_num_,
+ rca_hdr->meta(), Scheduler::instance().clock());
+ fflush(stdout);
+ */
+ /*
+ * After timer expires, try to transmit the packet (i.e., perform
+ * carrier sense again to see if the channel is now free).
+ */
+ send((Packet *)e,(Handler*) 0);
+}
+
+void
+MacSensor::recvHandler(Event *e)
+{
+
+ if (rx_state_ == MAC_COLL) {
+ struct hdr_cmn *ch = HDR_CMN(pktRx_);
+ ch->error() = 1;
+ }
+ SET_RX_STATE(MAC_IDLE);
+
+ /*
+ * If this packet was unicast and not intended for me, drop it.
+ */
+ struct hdr_mac *mh = HDR_MAC(pktRx_);
+ int dst = mh->macDA();
+
+ if (dst != index_ && (u_int32_t) dst != (u_int32_t) MAC_BROADCAST)
+ Packet::free(pktRx_);
+ else
+ recvDATA(pktRx_);
+}
+
+void
+MacSensor::sendHandler(Event *e)
+{
+ /*
+ * Once transmission is complete, drop the packet.
+ */
+ SET_TX_STATE(MAC_IDLE);
+ Packet::free((Packet *)e);
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor.h ns-allinone-
2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,145 @@
+/******************************************************************
+ * This code was developed as part of the MIT uAMPS project. *
+ ******************************************************************/
+
+#ifndef ns_mac_sensor_h
+#define ns_mac_sensor_h
+
+#include "mac.h"
+#include "mac-sensor-timers.h"
+#include "random.h"
+
+#define GET_ETHER_TYPE(x) GET2BYTE((x))
+#define SET_ETHER_TYPE(x,y) {u_int16_t t = (y); STORE2BYTE(x,&t);}
+
+#define ADV_TYPE 0
+
+/* ======================================================================
+ Frame Formats
+ ====================================================================== */
+
+struct hdr_macSensor {
+ u_int16_t dh_duration;
+ u_char dh_da[ETHER_ADDR_LEN];
+ u_char dh_sa[ETHER_ADDR_LEN];
+ u_int16_t dh_scontrol;
+};
+
+
+/* ======================================================================
+ Definitions
+ ====================================================================== */
+
+#define ETHER_HDR_LEN \
+ (sizeof(struct hdr_macSensor) + \
+ ETHER_FCS_LEN)
+
+#define DATA_Time(len) (8 * (len) / bandwidth_)
+
+
+/* ======================================================================
+ The following destination class is used for duplicate detection.
+ ====================================================================== */
+
+class Host {
+public:
+ LIST_ENTRY(Host) link;
+ u_int32_t index;
+ u_int32_t seqno;
+};
+
+
+/* ======================================================================
+ The actual Sensor MAC class.
+ ====================================================================== */
+
+class MacSensor : public Mac {
+
+ friend class DeferSensorTimer;
+ friend class TxSensorTimer;
+ friend class RxSensorTimer;
+
+public:
+ MacSensor();
+ void recv(Packet *p, Handler *h);
+
+private:
+ int command(int argc, const char*const* argv);
+
+ /*
+ * Packet Transmission Functions.
+ */
+ void send(Packet *p, Handler *h);
+
+ /*
+ * Packet Reception Functions.
+ */
+ void recvDATA(Packet *p);
+ void capture(Packet *p);
+ void collision(Packet *p);
+
+ inline int initialized() {
+ return (cache_ && logtarget_ && Mac::initialized());
+ }
+
+ void mac_log(Packet *p) {
+ logtarget_->recv(p, (Handler*) 0);
+ }
+
+ inline double TX_Time(Packet *p) {
+ double t = DATA_Time((HDR_CMN(p))->size());
+ if(t < 0.0) {
+ Packet::free(p);
+ exit(1);
+ }
+ return t;
+ }
+
+public:
+ void deferHandler(Event *e);
+ void recvHandler(Event *e);
+ void sendHandler(Event *e);
+
+private:
+
+ DeferSensorTimer mhDefer_;
+ TxSensorTimer mhTx_;
+ RxSensorTimer mhRx_;
+
+ int code_; // the code this node is currently receiving
+// int base_X; // the position X of the base station
+// int base_Y; // the position Y of the base station
+ int node_num_; // this node's ID number
+ int ss_; // max number of overlapping ss transmissions
+ int CHheard_; // Number of other CH ADVs heard
+ int myADVnum_; // Position of node's ADV among all ADVs
+
+ /* ============================================================
+ Internal MAC State
+ ============================================================ */
+
+ MacState rx_state_; // incoming state (MAC_RECV or M
AC_IDLE)
+ MacState tx_state_; // outgoing state
+
+ inline int is_idle(void);
+
+ NsObject* logtarget_;
+
+ /* ============================================================
+ Duplicate Detection state
+ ============================================================ */
+
+ u_int16_t sta_seqno_; // next seqno that I'll use
+ int cache_node_count_;
+ Host *cache_;
+
+public:
+ inline int & node_num() { return node_num_; }
+ inline int & code() { return code_; }
+ inline int & myADVnum() { return myADVnum_; }
+
+};
+
+
+#endif /* __mac_sensor_h__ */
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor-timers.cc ns-a
llinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor-timers.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor-timers.cc 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor-timers.cc
2006-05-26 11:08:31.000000000 -0300
@@ -0,0 +1,90 @@
+/******************************************************************
+ * This code was developed as part of the MIT uAMPS project. *
+ ******************************************************************/
+
+#include "mac-sensor.h"
+#include "mac-sensor-timers.h"
+
+
+/* ======================================================================
+ Timers
+ ====================================================================== */
+
+void
+MacSensorTimer::start(Packet *p, double time)
+{
+ Scheduler &s = Scheduler::instance();
+
+ assert(busy_ == 0);
+
+ busy_ = 1;
+ paused_ = 0;
+ stime = s.clock();
+ rtime = time;
+ assert(rtime >= 0.0);
+
+ s.schedule(this, p, rtime);
+}
+
+void
+MacSensorTimer::stop(Packet *p)
+{
+ Scheduler &s = Scheduler::instance();
+
+ assert(busy_);
+
+ if(paused_ == 0)
+ s.cancel((Event *)p);
+
+ busy_ = 0;
+ paused_ = 0;
+ stime = 0.0;
+ rtime = 0.0;
+}
+
+/* ======================================================================
+ Defer Timer
+ ====================================================================== */
+
+void
+DeferSensorTimer::handle(Event *e)
+{
+ busy_ = 0;
+ paused_ = 0;
+ stime = 0.0;
+ rtime = 0.0;
+
+ mac->deferHandler(e);
+}
+
+/* ======================================================================
+ Receive Timer
+ ====================================================================== */
+
+void
+RxSensorTimer::handle(Event *e)
+{
+ busy_ = 0;
+ paused_ = 0;
+ stime = 0.0;
+ rtime = 0.0;
+
+ mac->recvHandler(e);
+}
+
+
+/* ======================================================================
+ Send Timer
+ ====================================================================== */
+
+void
+TxSensorTimer::handle(Event *e)
+{
+ busy_ = 0;
+ paused_ = 0;
+ stime = 0.0;
+ rtime = 0.0;
+
+ mac->sendHandler(e);
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor-timers.h ns-al
linone-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor-timers.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/mac/mac-sensor-timers.h 1969-12-
31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/mac/mac-sensor-timers.h
2006-05-26 11:08:31.000000000 -0300
@@ -0,0 +1,65 @@
+/******************************************************************
+ * This code was developed as part of the MIT uAMPS project. *
+ ******************************************************************/
+
+#ifndef __mac_sensor_timers_h__
+#define __mac_sensor_timers_h__
+
+/* ======================================================================
+ Timers
+ ====================================================================== */
+class MacSensor;
+
+class MacSensorTimer : public Handler {
+public:
+ MacSensorTimer(MacSensor* m, double s = 0) : mac(m) {
+ busy_ = paused_ = 0; stime = rtime = 0.0; slottime_ = s;
+ }
+
+ virtual void handle(Event *e) = 0;
+
+ virtual void start(Packet *p, double time);
+ virtual void stop(Packet *p);
+ virtual void pause(void) { assert(0); }
+ virtual void resume(void) { assert(0); }
+
+ inline int busy(void) { return busy_; }
+ inline int paused(void) { return paused_; }
+ inline double slottime(void) { return slottime_; }
+ inline double expire(void) {
+ return ((stime + rtime) - Scheduler::instance().clock());
+ }
+
+protected:
+ MacSensor *mac;
+ int busy_;
+ int paused_;
+ Event intr;
+ double stime; // start time
+ double rtime; // remaining time
+ double slottime_;
+};
+
+
+class DeferSensorTimer : public MacSensorTimer {
+public:
+ DeferSensorTimer(MacSensor *m, double s) : MacSensorTimer(m,s) {}
+ void handle(Event *e);
+};
+
+class RxSensorTimer : public MacSensorTimer {
+public:
+ RxSensorTimer(MacSensor *m) : MacSensorTimer(m) {}
+
+ void handle(Event *e);
+};
+
+class TxSensorTimer : public MacSensorTimer {
+public:
+ TxSensorTimer(MacSensor *m) : MacSensorTimer(m) {}
+
+ void handle(Event *e);
+};
+
+#endif /* __mac_sensor_timers_h__ */
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rcagent.cc ns-allinone-2.
29-mannasim/ns-2.29/mannasim/leach/rca/rcagent.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rcagent.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/rca/rcagent.cc 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,213 @@
+/*************************************************************************
+ *
+ * This code was developed as part of the MIT SPIN project. (June, 1999)
+ *
+ *************************************************************************/
+
+#include "mannasim/leach/app/leachApp.h"
+
+#include "object.h"
+#include "agent.h"
+#include "trace.h"
+#include "packet.h"
+#include "scheduler.h"
+
+#include "mac.h"
+#include "ll.h"
+//#include "cmu-trace.h"
+
+#include "rcagent.h"
+#include "rtp.h"
+#include "random.h"
+#include "ip.h"
+
+#include "mannasim/leach/mac/mac-sensor.h"
+
+
+static class RCAgentClass : public TclClass {
+ public:
+ RCAgentClass() : TclClass("Agent/RCAgent") {}
+ TclObject* create(int, const char*const*) {
+ return (new RCAgent());
+ }
+} class_rc_agent;
+
+RCAgent::RCAgent() : Agent(PT_RCA)
+{
+ mac = NULL;
+ ll = 0;
+
+ bind("packetSize_", &size_);
+ bind("packetMsg_", &packetMsg_);
+ bind("distEst_", &distEst_);
+}
+
+RCAgent::~RCAgent()
+{
+}
+
+ int
+RCAgent::command(int argc, const char*const* argv)
+{
+ TclObject *obj;
+ Tcl& tcl = Tcl::instance();
+
+ if (argc == 3) {
+ if(strcmp(argv[1], "log-target") == 0) {
+ log_target = (Trace*) TclObject::lookup(argv[2]);
+ if(log_target == 0)
+ return TCL_ERROR;
+ return TCL_OK;
+ } else if(strcmp(argv[1], "log") == 0) {
+ log(argv[2]);
+ return TCL_OK;
+ }
+ } else if (argc == 4) {
+ if (strcasecmp(argv[1], "add-ll") == 0) {
+ if( (obj = TclObject::lookup(argv[2])) == 0) {
+ fprintf(stderr, "RCAgent: %s lookup of %s failed\n", argv[1],
+ argv[2]);
+ return TCL_ERROR;
+ }
+ ll = (NsObject*) obj;
+ if( (obj = TclObject::lookup(argv[3])) == 0) {
+ fprintf(stderr, "RCAgent: %s lookup of %s failed\n", argv[1],
+ argv[2]);
+ return TCL_ERROR;
+ }
+ mac = (Mac*) obj;
+ return TCL_OK;
+ }
+ }
+
+ if (strcmp(argv[1], "sendmsg") == 0) {
+ if (argc < 6) {
+ fprintf(stderr, "RCAgent: %s needs argc >= 6\n", argv[1]);
+ return TCL_ERROR;
+ }
+ int mac_dst;
+ if (Tcl_GetInt(tcl.interp(),(char *)argv[4], &mac_dst) != TCL_OK) {
+ fprintf(stderr, "RCAgent: could not convert %s to int\n", argv[4]);
+ return TCL_ERROR;
+ }
+ if (argc == 6) {
+ RCAgent::sendmsg(atoi(argv[2]), argv[3], mac_dst, -1, 10, 0, atoi(a
rgv[5]));
+ return (TCL_OK);
+ }
+ int link_dst;
+ if (Tcl_GetInt(tcl.interp(),(char *)argv[5], &link_dst) != TCL_OK) {
+ fprintf(stderr, "RCAgent: could not convert %s to int\n", argv[5]);
+ return TCL_ERROR;
+ }
+ if (argc == 7) {
+ RCAgent::sendmsg(atoi(argv[2]), argv[3], mac_dst, link_dst, 10, 0,
atoi(argv[6]));
+ return (TCL_OK);
+ }
+ double dist_to_dest;
+ if (Tcl_GetDouble(tcl.interp(),(char *)argv[6], &dist_to_dest) != TCL_O
K) {
+ fprintf(stderr, "RCAgent: could not convert %s to double\n", argv[6
]);
+ return TCL_ERROR;
+ }
+ if (argc == 8) {
+ RCAgent::sendmsg(atoi(argv[2]),argv[3],mac_dst,link_dst,dist_to_des
t,0, atoi(argv[7]));
+ return (TCL_OK);
+ }
+ int code;
+ if (Tcl_GetInt(tcl.interp(),(char *)argv[7], &code) != TCL_OK) {
+ fprintf(stderr, "RCAgent: could not convert %s to int\n", argv[7]);
+ return TCL_ERROR;
+ }
+ if (argc == 9) {
+ RCAgent::sendmsg(atoi(argv[2]), argv[3], mac_dst, link_dst, dist_to
_dest, code, atoi(argv[8]));
+ return (TCL_OK);
+ } else {
+ fprintf(stderr, "RCAgent: %s needs argc <= 9\n", argv[1]);
+ return TCL_ERROR;
+ }
+ }
+
+ return Agent::command(argc, argv);
+}
+
+void RCAgent::sendmsg(int data_size, const char* meta_data, int destination, in
t sendto, double dist_to_dest, int code, int packetMsg)
+{
+ // printf("sendmsg: strlen(meta_data) = %d\n", strlen(meta_data));
+
+ sendmsg(data_size, meta_data, strlen(meta_data), destination, sendto, dist_
to_dest, code, packetMsg);
+}
+
+void RCAgent::sendmsg(int data_size, const char* meta_data, int meta_size, int
mac_dst, int link_dst, double dist_to_dest, int code, int packetMsg)
+{
+
+ dst_.port_ = 0;
+ here_.port_ = 0;
+
+ Packet *p = allocpkt();
+ hdr_cmn *hdr = HDR_CMN(p);
+ hdr->size() = data_size;
+
+ hdr_rca *rca_hdr = HDR_RCA(p);
+ // rca_hdr->msg_type() = packetMsg_;
+ rca_hdr->msg_type() = packetMsg;
+ rca_hdr->set_meta(meta_data, meta_size);
+ rca_hdr->rca_mac_dst() = mac_dst;
+ rca_hdr->rca_link_dst() = link_dst;
+ rca_hdr->rca_mac_src() = mac->addr();
+ rca_hdr->rca_link_src() = ((LeachApp *) app_)->sensor_node()->nodeid();
+ rca_hdr->get_dist() = dist_to_dest;
+ rca_hdr->get_code() = code;
+
+ hdr_mac* mh = HDR_MAC(p);
+ mh->set(MF_DATA, mac->addr(), mac_dst);
+
+ // printf("Sending: Type=%d data_size=%d\n\tSource=%x\n\tTarget=%x\n\tDist
ance=%lf\n",rca_hdr->msg_type(), hdr->size(), rca_hdr->rca_src(),rca_hdr->rca_ma
c_dst(), dist_to_dest);
+ //printf("\tLink_dst = %x\n",rca_hdr->rca_link_dst());
+ //fflush(stdout);
+
+ //Packet::PrintRcHeader(p,"RCAgent");
+
+ // Scheduler::instance().schedule(ll, p, 0);
+ target_->recv(p);
+
+ return;
+}
+
+void RCAgent::recv(Packet* p, Handler*)
+{
+ hdr_cmn *hdr = HDR_CMN(p);
+ hdr_rca *rca_hdr = HDR_RCA(p);
+
+ if (app_ && (rca_hdr->rca_link_dst() < 0 || rca_hdr->rca_link_dst() == ((Le
achApp *) app_)->sensor_node()->nodeid()))
+ {
+ // printf("Receiving: Link_dst = %x, Type=%d data_size=%d\n\tMeta = %s
, source = %d\n",rca_hdr->rca_link_dst(),rca_hdr->msg_type(), hdr->size(), rca_h
dr->meta(),rca_hdr->rca_src());
+ // fflush(stdout);
+
+ packetMsg_ = rca_hdr->msg_type();
+ distEst_ = rca_hdr->dist_est();
+
+ ((LeachApp *) app_)->recv(packetMsg_, distEst_, rca_hdr->rca_link_dst()
, hdr->size(), rca_hdr->meta(),
+ rca_hdr->meta_size(), rca_hdr->rca_mac_src(),
rca_hdr->rca_link_src());
+ }
+ // else
+ // printf("Pacote descartado por %d\n", ((LeachApp *) app_)->sensor_node
()->nodeid());
+
+ /*
+ * didn't expect packet (or we're a null agent?)
+ */
+ Packet::free(p);
+}
+
+
+void RCAgent::log(const char *msg)
+{
+ if (!log_target) return;
+
+ Scheduler& s = Scheduler::instance();
+
+ sprintf(log_target->pt_->buffer(),
+ "C %.5f %s",
+ s.clock(),
+ msg);
+ log_target->pt_->dump();
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rcagent.h ns-allinone-2.2
9-mannasim/ns-2.29/mannasim/leach/rca/rcagent.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rcagent.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/rca/rcagent.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,61 @@
+/*************************************************************************
+ *
+ * This code was developed as part of the MIT SPIN project. (June, 1999)
+ *
+ *************************************************************************/
+
+
+#ifndef ns_rca_h
+#define ns_rca_h
+
+#include "math.h"
+#include "object.h"
+#include "agent.h"
+#include "trace.h"
+#include "packet.h"
+#include "priqueue.h"
+#include "mac.h"
+#include "random.h"
+
+#include "agent.h"
+#include "app.h"
+
+//#include "../../sensorBaseApp.h"
+
+#define SAMPLERATE 8000
+#define ADV 0
+#define REQ 1
+#define DATA 2
+#define RESEND 3
+
+class RCAgent : public Agent {
+public:
+ RCAgent();
+ ~RCAgent();
+ inline void sendmsg(int data_size, const char* meta_data, int destination, in
t sendto, double dist_to_dest, int code, int packetMsg);
+ void sendmsg(int data_size, const char* meta_data, int meta_size, int mac_dst
, int link_dst, double dist_to_dest, int code, int packetMsg);
+
+ virtual void recv(Packet*, Handler*);
+ void log(const char *msg);
+ int command(int argc, const char*const* argv);
+
+protected:
+ int packetMsg_;
+ int packetSize_;
+ double distEst_;
+
+private:
+
+ NsObject *ll; // our link layer object
+ Mac *mac; // our MAC layer object
+
+ Trace *log_target; // log target
+
+public:
+ inline Mac * getMAC() { return mac; }
+};
+
+#endif
+
+
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rca-ll.cc ns-allinone-2.2
9-mannasim/ns-2.29/mannasim/leach/rca/rca-ll.cc
--- ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rca-ll.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/rca/rca-ll.cc 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,66 @@
+/*************************************************************************
+ *
+ * This code was developed as part of the MIT SPIN project. (June, 1999)
+ *
+ *************************************************************************/
+
+
+#include "delay.h"
+//#include "object.h"
+#include "packet.h"
+
+//#include "debug.h"
+#include "list.h"
+#include "arp.h"
+#include "topography.h"
+#include "trace.h"
+#include "node.h"
+#include "mac.h"
+#include "ll.h"
+#include "mannasim/leach/rca/rca-ll.h"
+#include "random.h"
+
+static class RCALinkLayerClass : public TclClass {
+ public:
+ RCALinkLayerClass() : TclClass("RCALinkLayer") {}
+ TclObject* create(int, const char*const*) {
+ return (new RCALinkLayer);
+ }
+} class_rcalinklayer;
+
+void RCALinkLayer::sendDown(Packet* p)
+{
+ Scheduler& s = Scheduler::instance();
+ hdr_rca *rcah = HDR_RCA(p);
+ hdr_ll *llh = HDR_LL(p);
+ char *mh = (char*)p->access(hdr_mac::offset_);
+
+ llh->seqno() = ++seqno_;
+ llh->lltype() = LL_DATA;
+
+ mac_->hdr_src(mh, mac_->addr());
+ mac_->hdr_type(mh, ETHERTYPE_IP);
+ mac_->hdr_dst((char*) HDR_MAC(p), rcah->rca_mac_dst());
+
+ // Packet::PrintRcHeader(p,"Link Outgoing");
+
+ // mac_->hdr_dst((char*)HDR_MAC(p),rcah->rca_mac_dst());
+ //s.schedule(downtarget_, p, mindelay_ / 2 + delay_ * Random::uniform());
+ s.schedule(downtarget_, p, delay_);
+}
+
+
+void RCALinkLayer::sendUp(Packet* p)
+{
+ Scheduler& s = Scheduler::instance();
+ hdr_rca *rcah = HDR_RCA(p);
+
+ // Packet::PrintRcHeader(p,"Link Incomming");
+ if (hdr_cmn::access(p)->error() > 0) {
+ printf("Warning! %d dropping packet from %d b/c it has an error.\n", r
cah->rca_mac_dst(), rcah->rca_mac_src());
+ fflush(stdout);
+ drop(p);
+ } else
+ s.schedule(uptarget_, p, delay_);
+}
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rca-ll.h ns-allinone-2.29
-mannasim/ns-2.29/mannasim/leach/rca/rca-ll.h
--- ns-allinone-2.29/ns-2.29/mannasim/leach/rca/rca-ll.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/leach/rca/rca-ll.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,29 @@
+/*************************************************************************
+ *
+ * This code was developed as part of the MIT SPIN project. (June, 1999)
+ *
+ *************************************************************************/
+
+
+#ifndef rca_ll_h
+#define rca_ll_h
+
+#include "delay.h"
+#include "queue.h"
+
+#include "arp.h"
+#include "node.h"
+#include "god.h"
+
+class RCALinkLayer : public LL {
+ public:
+ RCALinkLayer() : LL() {};
+ private:
+ virtual void sendDown(Packet* p);
+ virtual void sendUp(Packet* p);
+};
+
+#endif
+
+
+
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/onDemandData.cc ns-allinone-2.29-ma
nnasim/ns-2.29/mannasim/onDemandData.cc
--- ns-allinone-2.29/ns-2.29/mannasim/onDemandData.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/onDemandData.cc 2006-05-26 11:08
:31.000000000 -0300
@@ -0,0 +1,77 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class represents data requests from an autosider of the Wireless
+/// Sensor Network. This kind of request is interesting for on demand data
+/// dissemination where dissemination only occurs when the outsider request
+/// data.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "onDemandData.h"
+
+/// Default constructor, invokes the request_type parameter constructor
+/// with default value.
+OnDemandData :: OnDemandData()
+{
+ /// REAL request type is default.
+ OnDemandData::OnDemandData(REAL);
+}
+
+/// Constructor. The request type of the OnDemandData is passed as
+/// parameter. Note that the superclass constructor (SensedData) is also
+/// called with ON_DEMAND_DATA AppDataType.
+OnDemandData :: OnDemandData(int request_type) : SensedData(ON_DEMAND_DATA)
+{
+ this->request_type_ = request_type;
+}
+
+/// Copy constructor. The OnDemandData is passed as parameter.
+OnDemandData :: OnDemandData(OnDemandData & data) : SensedData(data)
+{
+ request_type_ = data.requestType();
+}
+
+/// Returns the size, in bytes, of the object.
+int OnDemandData :: size() const
+{
+ return sizeof(OnDemandData);
+}
+
+/// Creates a copy of the OnDemandData object.
+AppData * OnDemandData :: copy()
+{
+ return new OnDemandData(*this);
+}
+
+/// Returns the address-of the request type field. Use this function carrefully
.
+int & OnDemandData :: requestType()
+{
+ return request_type_;
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/onDemandData.h ns-allinone-2.29-man
nasim/ns-2.29/mannasim/onDemandData.h
--- ns-allinone-2.29/ns-2.29/mannasim/onDemandData.h 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/onDemandData.h 2006-05-26 11:08
:31.000000000 -0300
@@ -0,0 +1,88 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class represents data requests from an autosider of the Wireless
+/// Sensor Network. This kind of request is interesting for on demand data
+/// dissemination where dissemination only occurs when the outsider request
+/// data.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef on_demand_data_
+#define on_demand_data_
+
+/// Request type possible values.
+/// REAL - the node collects new data.
+/// BUFFER - the node gets data from its buffer.
+/// AVERAGE - the node gets data from the average of all data from its buffer.
+enum
+{
+ REAL = 0,
+ BUFFER = 1,
+ AVERAGE = 2
+};
+
+#include <common/ns-process.h>
+#include "sensedData.h"
+
+/// Class that encapsulates the request messages functionality.
+///
+/// extends SensedData
+class OnDemandData : public SensedData{
+
+ public:
+
+ /// Constructors.
+ OnDemandData();
+ OnDemandData(int request_type);
+ OnDemandData(OnDemandData &data);
+
+ /// Size of the object.
+ int size() const;
+
+ /// Creates a copy of the object.
+ AppData * copy();
+
+ /// Returns the OnDemandData request type.
+ int & requestType();
+
+ private:
+
+ /// Request type of OnDemandData. Possible values BUFFER,
+ /// REAL and AVERAGE
+ int request_type_;
+
+ //n�o sei se precisa. Acho melhor colocar fun��o no SensedData
+ //que retornatamanho do infoRepository
+ //indicates the number of parameters (OnDemandParameters)
+ // int parameters_amount_;
+};
+
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/onDemandParameter.cc ns-allinone-2.
29-mannasim/ns-2.29/mannasim/onDemandParameter.cc
--- ns-allinone-2.29/ns-2.29/mannasim/onDemandParameter.cc 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/onDemandParameter.cc 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,70 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class represents the queries submited within a OnDemandData
+/// request message. Contains the requested data and a set of operations
+/// allowed to be performed to get the data (for example, get data if
+/// temperature is GREATER_THAN 50 celsius degrees).
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "onDemandParameter.h"
+
+/// Constructor. Requested data and operation performed on it are passed
+/// as parameters.
+OnDemandParameter :: OnDemandParameter(AppData* data, int operation)
+ : AppDa
ta(ON_DEMAND_PARAMETER)
+{
+ this->data_ = data;
+ this->operation_ = operation;
+}
+
+/// Returns OnDemandParameter object size in bytes.
+int OnDemandParameter :: size() const
+{
+ return sizeof(OnDemandParameter);
+}
+
+/// Creates a copy of OnDemandParameter object.
+AppData * OnDemandParameter :: copy()
+{
+ return new OnDemandParameter(data_, operation_);
+}
+
+/// Returns the address of operation_ field. Use this function carrefully.
+int & OnDemandParameter :: operation()
+{
+ return operation_;
+}
+
+/// Returns the requested data.
+AppData * OnDemandParameter :: data()
+{
+ return data_;
+}
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/onDemandParameter.h ns-allinone-2.2
9-mannasim/ns-2.29/mannasim/onDemandParameter.h
--- ns-allinone-2.29/ns-2.29/mannasim/onDemandParameter.h 1969-12-31 21:00
:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/onDemandParameter.h 2006-05-
26 11:08:31.000000000 -0300
@@ -0,0 +1,80 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// This class represents the queries submited within a OnDemandData
+/// request message. Contains the requested data and a set of operations
+/// allowed to be performed to get the data (for example, get data if
+/// temperature is GREATER_THAN 50 celsius degrees).
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef on_demand_parameter_h_
+#define on_demand_parameter_h_
+
+/// Comparation operations supported.
+enum
+{
+ GREATER_THAN = 0,
+ LESS_THAN = 1,
+ EQUAL = 2
+};
+
+#include <common/ns-process.h>
+
+/// Represents a query (each item) of the request message (OnDemandData).
+///
+/// extends AppData
+class OnDemandParameter : public AppData
+{
+ public:
+
+ /// Constructor.
+ OnDemandParameter(AppData* data, int operation);
+
+ /// Returns the size of the object.
+ int size() const;
+
+ /// Creates a copy of the object.
+ AppData * copy();
+
+ /// Accessor methods
+ int & operation();
+ AppData * data();
+
+ private:
+
+ /// Data requested.
+ AppData* data_;
+
+ /// Type of operation. Supported values nowadays:
+ /// GREATER_THAN, LESS_THAN, EQUAL
+ int operation_;
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/processing.cc ns-allinone-2.29-mann
asim/ns-2.29/mannasim/processing.cc
--- ns-allinone-2.29/ns-2.29/mannasim/processing.cc 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/processing.cc 2006-05-26 11:08
:31.000000000 -0300
@@ -0,0 +1,258 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Class that simulates the processing activity on sensed data. It
+/// constains a processed data buffer witch is accessed by the sensing
+/// in orther to disseminate processing results. Processing is a
+/// base class that can be specialized to simulate different types of data
+/// processing algorithms.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#include "processing.h"
+
+/// Default constructor. Only call superclass constructor.
+Processing::Processing() : TclObject()
+{
+}
+
+/// NS-2 command function overloaded. Deals with TCL script commands to C++
+/// implementation.
+int Processing::command(int argc, const char*const* argv)
+{
+ if (argc == 3)
+ {
+ if (strcmp("node",argv[1]) == 0)
+ {
+ sensor_node_ = (SensorNode*)TclObject::lookup(argv[2]);
+ if (sensor_node_)
+ return TCL_OK;
+ fprintf(stderr,"Error: %s object not found",argv[2]);
+ return TCL_ERROR;
+ }
+ }
+ return TclObject::command(argc, argv);
+}
+
+/// Receives common nodes sensed data from a EVENT_DRIVEN wireless sensor
+/// application. Verifies whether an event (for example, temperature sensed
+/// greater than X) occured or not. If so, process it and give it to
+/// dissemination. Otherwise, drop the information.
+AppData* Processing::processSensedData(AppData* data_, AppData* eventData_)
+{
+
+ /// This activity wastes sensor node energy! PROCESSING WASTE HERE!
+ ((Battery*)sensor_node_->energy_model())->DecrProcessingEnergy(
+ EVENT_CH
ECK_INSTRUCTIONS,
+ sensor_n
ode_->instructionsPerSecond(),
+ sensor_n
ode_->processingPower());
+
+ if(eventData_->checkEvent(data_))
+ {
+ printf("Processing::processSensedData - Event detected!\n");
+ return data_;
+ }
+ else
+ {
+ return NULL;
+ }
+}
+
+/// Method that deals with request messagens. First the request type is
+/// retrieved from data, then for each OnDemandParameter associated
+/// with the request message a specific process, based on query request,
+/// is realized.
+AppData * Processing::processRequest(AppData* data)
+{
+
+ /// Data received isn't OnDemandData.
+ if(data->type() != ON_DEMAND_DATA)
+ {
+ fprintf(stderr,"The data received is not a onDemandData.");
+ return NULL;
+ }
+
+ OnDemandData* onDemandData = (OnDemandData*)data;
+ int request_type = onDemandData->requestType();
+ AppDataList list = onDemandData->getData();
+
+ AppDataList::iterator it;
+ OnDemandParameter* parameter;
+
+ for (it = list.begin(); it != list.end(); it++)
+ {
+ if(((AppData*)(*it))->type() != ON_DEMAND_PARAMETER)
+ {
+ fprintf(stderr,"The data received is not a onDemandParam
eter.");
+ return NULL;
+ }
+
+ /// Gets OnDemandParameter associated with request an process it
.
+ parameter = (OnDemandParameter*)(*it);
+ return (process_request_data(parameter, request_type));
+ }
+}
+
+/// Manages diferent requests from an outsider observer. The request_type
+/// parameter is used to select the further data processing
+AppData* Processing::process_request_data(OnDemandParameter* parameter, int req
uest_type)
+{
+ int operation = parameter->operation();
+ AppData* data_ = parameter->data();
+
+ /// Choose the correct method given the request type.
+ switch (request_type)
+ {
+ case REAL:
+ return process_real_request(data_, operation);
+ break;
+
+ case BUFFER:
+ return process_buffer_request(data_, operation);
+ break;
+
+ case AVERAGE:
+ return process_average_request(data_, operation);
+ break;
+
+ default:
+ fprintf(stderr,"Processing::process_request_data - Invalid Reque
st Type.");
+ break;
+ }
+ return NULL;
+}
+
+/// Process request messages of REAL type. In this kind of data request,
+/// the sensor node drops all data from its buffer, collect new one and
+/// process it.
+AppData* Processing::process_real_request(AppData* data_, int operation)
+{
+ /// New synthetic data needs to be generated. The applications list of
+ /// data generator is used.
+ DataGenList list = app_->getGenList();
+ DataGenList::iterator it;
+
+ DataGenerator* gen;
+ AppData* newData;
+
+ /// Processed data.
+ SensedData* responseData = new SensedData();
+
+ /// For each data generator associated with the application app_...
+ for(it = list.begin(); it != list.end(); it++)
+ {
+ gen = (*it);
+
+ /// ... checks if generated data type is the same of the sample
data...
+ if(gen->type() == data_->type())
+ {
+ /// ... generates new data and process it.
+ newData = gen->collect();
+ if(data_->compareData(newData, operation))
+ {
+ responseData->insertNewData(newData);
+ return responseData;
+ }
+ }
+ }
+ return NULL;
+}
+
+/// Process request messages of BUFFER type. In this kind of data request,
+/// data storage in sensor data buffer is processed and if satisfys the
+/// request message it is given to dissemination.
+AppData* Processing::process_buffer_request(AppData* data_, int operation)
+{
+ AppDataList list;
+
+ if(info_ != NULL)
+ {
+ list = info_->getData();
+ }
+ else
+ {
+ printf("Processing::process_buffer_request - Buffer is empty.\n"
);
+ return NULL;
+ }
+
+ AppData* bufferData_;
+ AppDataList::iterator it;
+ SensedData* responseData_ = new SensedData();
+
+ //each AppData (temperature, ...) should have this method
+ for(it = list.begin(); it != list.end(); it++)
+ {
+ bufferData_ = (*it);
+
+ /// ... checks if buffer data type is the same of the sample dat
a...
+ if(bufferData_->type() == data_->type())
+ {
+ if(data_->compareData(bufferData_, operation))
+ {
+ /// ... buffer data attends request requiriments
, add it to
+ /// response data.
+ responseData_->insertNewData(bufferData_);
+ }
+ }
+ }
+
+ /// There were data in buffer, disseminate it.
+ if(responseData_->existsData())
+ {
+ return responseData_;
+ }
+ return NULL;
+}
+
+/// Process request messages of AVERAGE type. In this kind of request messages
+/// an average of the data storage in sensor node buffer is computed and
+/// returned to the dissemination.
+///
+/// NOT IMPLEMENTED YET.
+AppData * Processing::process_average_request(AppData* data_,int operation)
+{
+}
+
+/// Reset the processed data making it NULL.
+void Processing::resetData()
+{
+ info_ = NULL;
+}
+
+/// Returns data generated by the processing activity.
+SensedData * Processing::getProcessedData()
+{
+ return info_;
+}
+
+/// Set application attached to the wireless sensor application.
+void Processing::setApp(SensorBaseApp* app)
+{
+ app_ = app;
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/processing.h ns-allinone-2.29-manna
sim/ns-2.29/mannasim/processing.h
--- ns-allinone-2.29/ns-2.29/mannasim/processing.h 1969-12-31 21:00:00.0000
00000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/processing.h 2006-05-26 11:08
:31.000000000 -0300
@@ -0,0 +1,110 @@
+///
+/// Copyright (C) 2003-2005 Federal University of Minas Gerais
+///
+/// This program is free software; you can redistribute it and/or
+/// modify it under the terms of the GNU General Public License
+/// as published by the Free Software Foundation; either version 2
+/// of the License, or (at your option) any later version.
+/// This program is distributed in the hope that it will be useful,
+/// but WITHOUT ANY WARRANTY; without even the implied warranty of
+/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+/// GNU General Public License for more details.
+/// You should have received a copy of the GNU General Public License
+/// along with this program; if not, write to the Free Software
+/// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+/// MA 02110-1301, USA.
+///
+/// Class that simulates the processing activity on sensed data. It
+/// constains a processed data buffer witch is accessed by the sensing
+/// in orther to disseminate processing results. Processing is a
+/// base class that can be specialized to simulate different types of data
+/// processing algorithms.
+///
+/// authors: Linnyer B. Ruiz
+/// Fabricio A. Silva
+/// Thais Regina de M. Braga
+/// Kalina Ramos Porto
+///
+/// code revisor: Carlos Eduardo R. Lopes
+///
+/// --
+/// The Manna Reseach Group
+/// e-mail: mannateam@gmail.com
+///
+/// This project was financially supported by The National Council
+/// for Scientific and Technological Development (CNPq) from the
+/// brazilian government under the process number 55.2111/2002-3.
+///
+#ifndef __processing_h__
+#define __processing_h__
+
+#include <common/packet.h>
+
+#include "battery.h"
+#include "sensorNode.h"
+#include "sensedData.h"
+#include "onDemandData.h"
+#include "dataGenerator.h"
+#include "onDemandParameter.h"
+
+/// Processor instructions count for aggregation and event check (greater than,
+/// equal...) operations.
+#define AGGREGATION_INSTRUCTIONS 200
+#define EVENT_CHECK_INSTRUCTIONS 200
+
+class SensorBaseApp;
+
+/// Simulates the sensor data processing activity.
+///
+/// extends TclObject
+class Processing : public TclObject
+{
+ public:
+
+ /// Constructor.
+ Processing();
+
+ /// ??? This method MUST be overloaded.
+ virtual void recvData(AppData* data_) = 0;
+
+ /// NS-2 Function.
+ int command(int argc, const char*const* argv);
+
+ /// Simulates sensed data processing. This method
+ /// MUST be oveloaded.
+ virtual void processSensedData(AppData* data_) = 0;
+
+ /// Simulates sensed data processing. Deals wih event occurence
+ /// verification for EVEN_DRIVEN applications. Don't need to be
+ /// overloaded.
+ AppData* processSensedData(AppData* data_, AppData* eventData_);
+
+ /// Methods for methods for request messages treatment.
+ virtual AppData * processRequest(AppData* data);
+ virtual AppData * process_real_request(AppData* data_, int opera
tion);
+ virtual AppData * process_buffer_request(AppData* data_, int ope
ration);
+ virtual AppData * process_request_data(OnDemandParameter* parame
ter, int request_type);
+
+ /// NOT IMPLEMENTED YET.
+ virtual AppData * process_average_request(AppData* data_, int op
eration);
+
+ /// Accessor methods
+ virtual SensedData* getProcessedData();
+ virtual void resetData();
+ virtual void setApp(SensorBaseApp* app);
+
+ protected:
+
+ /// Processed data buffer.
+ SensedData* info_;
+
+ /// Application attached to the wireless sensor application. Use
d
+ /// in on demand processing.
+ SensorBaseApp * app_;
+
+ /// Sensor node where the processing takes place. Used for energ
y
+ /// contability propose.
+ SensorNode* sensor_node_;
+};
+
+#endif
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$1.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$1.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$1.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$1.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/AccessPointConfPanel$1java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Ac
Panel; Synthetic<init>(Lgui/AccessPointConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$1;actionPerformed(Lj
vent/ActionEvent;)Vgui/AccessPointConfPanelaccess$0
 9(Lgui/AccessPointConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+-

+
A *´+¸±
+0/   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$2.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$2.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$2.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$2.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/AccessPointConfPanel$2java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Ac
Panel; Synthetic<init>(Lgui/AccessPointConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$2;actionPerformed(Lj
vent/ActionEvent;)Vgui/AccessPointConfPanelaccess$1
 9(Lgui/AccessPointConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+=

+
A *´+¸±
+@?   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$3.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$3.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$3.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$3.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/AccessPointConfPanel$3java/awt/event/FocusAdapterthis$0Lgui/AccessPointConfPanel
c<init>(Lgui/AccessPointConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$3; focusLost(L
FocusEvent;)Vgui/AccessPointConfPanel
access$2
 8(Lgui/AccessPointConfPanel;Ljava/awt/even
t/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+B

+
+A *´+¸±
+ED   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$4.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$4.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$4.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$4.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/AccessPointConfPanel$4java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Ac
Panel; Synthetic<init>(Lgui/AccessPointConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$4;actionPerformed(Lj
vent/ActionEvent;)Vgui/AccessPointConfPanelaccess$3
 9(Lgui/AccessPointConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+W

+
A *´+¸±
+ZY   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$5.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$5.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$5.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$5.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/AccessPointConfPanel$5java/awt/event/FocusAdapterthis$0Lgui/AccessPointConfPanel
c<init>(Lgui/AccessPointConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$5; focusLost(L
FocusEvent;)Vgui/AccessPointConfPanel
access$4
 8(Lgui/AccessPointConfPanel;Ljava/awt/even
t/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+\

+
+A *´+¸±
+_^   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$6.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$6.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$6.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$6.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/AccessPointConfPanel$6java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Ac
Panel; Synthetic<init>(Lgui/AccessPointConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$6;actionPerformed(Lj
vent/ActionEvent;)Vgui/AccessPointConfPanelaccess$5
 9(Lgui/AccessPointConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+q

+
A *´+¸±
+ts   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$7.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$7.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$7.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$7.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/AccessPointConfPanel$7java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Ac
Panel; Synthetic<init>(Lgui/AccessPointConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$7;actionPerformed(Lj
vent/ActionEvent;)Vgui/AccessPointConfPanelaccess$6
 9(Lgui/AccessPointConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$8.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$8.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$8.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$8.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/AccessPointConfPanel$8java/awt/event/FocusAdapterthis$0Lgui/AccessPointConfPanel
c<init>(Lgui/AccessPointConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$8; focusLost(L
FocusEvent;)Vgui/AccessPointConfPanel
access$7
 8(Lgui/AccessPointConfPanel;Ljava/awt/even
t/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+ 

+
+A *´+¸±
+    
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel$9.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/AccessPointConfPanel$9.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el$9.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel$9.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,7 @@
+Êþº¾.gui/AccessPointConfPanel$9java/lang/Objectthis$0Lgui/AccessPointConfPanel; Syn
va/lang/String;<init>/(Lgui/AccessPointConfPanel;Ljava/lang/String;)VCode()V

+
+
 
 LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel$9;
toString
 ()L
ava/lang/String;
+SourceFileAccessPointConfPanel.java
InnerClasses0  
+
=*—*+µ*,µ±
+ú

/*´°ú

+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/g
ui/AccessPointConfPanel.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel.class 2006-05-26 11:25:53.000000000 -0300
@@ -0,0 +1,92 @@
+Êþº¾.sgui/AccessPointConfPaneljavax/swing/JPanelaccessPointApplicationComboBoxLjavax/swing
;accessPointApplicationLabelLjavax/swing/JLabel;accessPointEnergyLabelaccessPointEnergyT
extFieldLjavax/swing/JTextField;accessPointLocationComboBoxaccessPointLocationLabelacces
sPointNumberLabelaccessPointNumberTextField!accessPointTransmissionRangeLabel%access
PointTransmissionRangeTextFieldjoulesLabelmetersLabel<init>()VCode

+initComponents

+LineNumberTableLocalVariableTablethisLgui/AccessPointConfPanel;javax/swing/JComboBox
+!
 #javax/swing/JLabel%
+&
 (javax/swing/JTextField*
++
 -
 /
 1

+ 3
 5
 7

 9
 ;
 =
 ? setLayout(Ljava/awt/LayoutManager;)V
AB
+Cjava/awt/ColorE(III)V
G
+FH
setBackground (Ljava/awt/Color;)V
JK
java/awt/Font
+L NArialP(Ljava/lang/String;II)V
R
+OSsetFont(Ljava/awt/Font;)V
UV
+!W javax/swing/DefaultComboBoxModelYjava/lang/String["Application/AccessPointApplicat
ion ]([Ljava/lang/Object;)V
_
+ZsetModel
` (Ljavax/swing/ComboBoxModel;)V
bc
+!dgui/AccessPointConfPanel$1f(Lgui/AccessPointConfPanel;)V
h
+giaddActionListener"(Ljava/awt/event/ActionListener;)V
kl
+!madd*(Ljava/awt/Component;)Ljava/awt/Component;
op
+q setBounds(IIII)V
st
+!u
+&WACCESS POINT NUMBER:xsetText(Ljava/lang/String;)V
z{
+&|
+&u
++W1
++|gui/AccessPointConfPanel$2
+ i
++mgui/AccessPointConfPanel$3
+ i addFocusListener!(Ljava/awt/event/FocusListener;)V
 
++
++uACCESS POINT LOCATION: INITIAL ENERGY:  1000 gui/AccessPointConfPanel$4
+ i gui/AccessPointConfPanel$5
+ i Joules ACCESS POINT APPLICATION: C ENTER UP LEFT CORNER¡DOWN LEFT CORNER£UP RIGHT CORNER¥DOWN R
essPointConfPanel$6
+®iTRANSMISSION RANGE°100 ²gui/AccessPointConfPanel$7´
+µigui/AccessPointConfPanel$8—
+¸imetersº.accessPointTransmissionRangeTextFieldFocusLost(Ljava/awt/event/FocusEvent;)Vjava/
awt/event/FocusEvent¾ getSource()Ljava/lang/Object;
ÀÁ
+¿ÂgetText()Ljava/lang/String;
ÄÅ
++Ælength()I
ÈÉ
+\Êjava/lang/DoubleÌparseDouble(Ljava/lang/String;)D
ÎÏ
gui/MainFrame
+ÍÐ ÒgetTcl()Lgui/TclFields;
ÔÕ
gui/TclFields
+ÓÖ ØsetAccessPointTransmissionRange(D)V
ÚÛ
+ÙÜ
requestFocus
Þ
++ßjava/lang/NumberFormatExceptionáevtLjava/awt/event/FocusEvent; textFieldcontentLja
tring;auxDnfe!Ljava/lang/NumberFormatException;#accessPointEnergyTextFieldFocusLostsetAcce
ssPointEnergy
íÛ
+Ùî#accessPointNumberTextFieldFocusLostjava/lang/IntegerparseInt
ñ (Ljava/lang/String;)I
óô
+òõsetAccessPointNumber(I)V
÷ø
+ÙùI)accessPointNumberTextFieldActionPerformed(Ljava/awt/event/ActionEvent;)V
+getToolkit()Ljava/awt/Toolkit;
þÿ
+java/awt/Toolkitbeep

+setXMLSaved(Z)V

+Ó Ljava/awt/event/ActionEvent;s*accessPointLocationComboBoxActionPerformedgetSelected
m

+!setAccessPointLocation
{
+Ù)accessPointEnergyTextFieldActionPerformed-accessPointApplicationComboBoxActionPerfo
rmedsetAccessPointApplication
{
+Ù4accessPointTransmissionRangeTextFieldActionPerformedmakeObj&(Ljava/lang/String;)Ljava
/lang/Object;gui/AccessPointConfPanel$9/(Lgui/AccessPointConfPanel;Ljava/lang/String;)
V

+itemsetAccessPointNumberTextFieldsetAccessPointLocationComboBox

+$addItem(Ljava/lang/Object;)V
&'
+!(setSelectedItem
*'
+!+setAccessPointEnergyTextField!setAccessPointApplicationComboBox(setAccessPointTran
smissionRangeTextField
updateFields(Lgui/TclFields;)VgetAccessPointLocation
2Å
+Ù3
#{
+5getAccessPointNumber
7É
+Ù8valueOf(I)Ljava/lang/String;
:;
+\<
"{
+>getAccessPointEnergy()D
@A
+ÙB(D)Ljava/lang/String;
:D
+\E
-{
+GgetAccessPointApplication
IÅ
+ÙJ
.{
+LgetAccessPointTransmissionRange
NA
+ÙO
/{
+QtclLgui/TclFields;
access$0
 9(Lgui/AccessPointConfPanel;Ljava/awt/event/ActionEvent;)V
Synthetic

+access$1
X
üý
+access$2
[ 8(Lgui/AccessPointConfPanel;Ljava/awt/event/FocusEvent;)V
ð½
+access$3
_

+access$4
b
ì½
+access$5
e

+access$6
h

+access$7
k
¼½
+n
+SourceFileAccessPointConfPanel.java
InnerClasses!
  
+
;    *—*—±
\8b9%c;68e<IAf=RPÕ*»
gB[_hH!Y—
khjI~y"kKµ$*»
lL mM& Y—
¡oN´®'pPµëÁ)*»
qQúÊwR+Y—
xÓzS'â,{Uµ0õ.*»
|V9þ}W&Y—
I \' µe0*»
 t &Y—
  'µ2*»±+Y—
º Ã, µÔ4*»
  &Y—'µ6*»&Y—'µ8*»!Y—"µ:*»&Y—'µ<*»
泦Õ絨¼趩½û%é¬'—ª,+¶
ê'븫ü+ðìÃÀ
ý»½®¡³>¬+5,M,¶
=,+¶
*´
ã$äÃÇ.åÀN-¶
+¶M,¶
ÇN-¶
Ë Ç- N-¶
¸
ËÑ"9 ˸-¸
×ö-¶Ý=¸
¸öѧ6
9
׶¸ú׶§:úï:§*,¶¶à±
*´%.%â¶à:
"¸,¶à±%%â²±"¥¤
+±  â*
+¿À
+ÁÃÄ Å"Æ)Ç0Ê4Ë455ã3èû
++
ýçQ"¸ê×ë*´
 :¶À\¶¸
+±ÏÐÑãý¶8I*´4¶Ç:¶Ë # ¸ÑI¸×(¶ï§:*¶¶*´4¶à¸
+±##â*
+ÕÖ×ÙÚ#Û%Ü,Ý3à7á488ã6èé-
ç%êëýQ¸×*´$¶À\¶¸
+±åæçãý¶8I*´>¶Ç:¶Ë # ¸ÑI¸×(¶ݧ:*¶¶*´>¶à¸
+±##â*
+ëìíïð#ñ%ò,ó3ö7÷488ã6èé-
ç%êë>
+»Y*+— °ú
+
+!ç"{A *´.+¶ ±
+ÿþ  
ç#{Q*´:*+—%¶)*´:+¶,±

ç-{A *´4+¶ ±
 +   
ç.{M*´$+¶)*´$+¶,± 

ç/{A *´>+¶ ±
+   
ç01z2*+¶4—6*+¶9¸=—?*+¶C¸F—H*+¶K—M*+¶P¸F—R±&122SUTVW&*+—Y±ZãVW&*+—\±]½^W&*+—`±a°VW&*+—c±dÓ^W&*+—f±
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel.form ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gu
i/AccessPointConfPanel.form
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el.form 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel.form 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,210 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.0" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.bean
info.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean
" value="false"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integ
er" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value
="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" va
lue="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,
115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,6
5,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,
100,116,104,120,112,0,0,0,-25,0,0,2,62"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout
">
+ <Property name="useNullLayout" type="boolean" value="true"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JComboBox" name="accessPointApplicationComboB
ox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Application/AccessPointApplication"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="accessPointApplicationC
omboBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="140" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="accessPointNumberLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="ACCESS POINT NUMBE
R: "/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="20" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="accessPointNumberTextField"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="1"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="accessPointNumberTextFi
eldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="accessPointNumberTextFieldFocus
Lost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="20" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="accessPointLocationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="ACCESS POINT LOCAT
ION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="60" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="accessPointEnergyLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="INITIAL ENERGY:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="100" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="accessPointEnergyTextField"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="1000"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="accessPointEnergyTextFi
eldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="accessPointEnergyTextFieldFocus
Lost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="100" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="joulesLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Joules"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="100" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="accessPointApplicationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="ACCESS POINT APPLI
CATION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="140" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="accessPointLocationComboBox"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="7">
+ <StringItem index="0" value="CENTER"/>
+ <StringItem index="1" value="UP LEFT CORNER"/>
+ <StringItem index="2" value="DOWN LEFT CORNER"/>
+ <StringItem index="3" value="UP RIGHT CORNER"/>
+ <StringItem index="4" value="DOWN RIGHT CORNER"/>
+ <StringItem index="5" value="GRID"/>
+ <StringItem index="6" value="RANDOM"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="accessPointLocationComb
oBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="60" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="accessPointTransmissionRangeLab
el">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="TRANSMISSION RANGE
"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="180" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="accessPointTransmissionRang
eTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="100"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="accessPointTransmission
RangeTextFieldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="accessPointTransmissionRangeTex
tFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="180" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="metersLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="meters"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="180" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+</Form>
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoint
ConfPanel.java ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gu
i/AccessPointConfPanel.java
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPointConfPan
el.java 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/AccessPoi
ntConfPanel.java 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,298 @@
+/*
+ * accessPointConfPanel.java
+ *
+ * Created on 24 de Novembro de 2005, 19:35
+ */
+
+package gui;
+
+/**
+ *
+ * @author Helen Peters
+ */
+public class AccessPointConfPanel extends javax.swing.JPanel {
+
+ /** Creates new form accessPointConfPanel */
+ public AccessPointConfPanel() {
+ initComponents();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGI
N:initComponents
+ private void initComponents() {
+ accessPointApplicationComboBox = new javax.swing.JComboBox();
+ accessPointNumberLabel = new javax.swing.JLabel();
+ accessPointNumberTextField = new javax.swing.JTextField();
+ accessPointLocationLabel = new javax.swing.JLabel();
+ accessPointEnergyLabel = new javax.swing.JLabel();
+ accessPointEnergyTextField = new javax.swing.JTextField();
+ joulesLabel = new javax.swing.JLabel();
+ accessPointApplicationLabel = new javax.swing.JLabel();
+ accessPointLocationComboBox = new javax.swing.JComboBox();
+ accessPointTransmissionRangeLabel = new javax.swing.JLabel();
+ accessPointTransmissionRangeTextField = new javax.swing.JTextField();
+ metersLabel = new javax.swing.JLabel();
+
+ setLayout(null);
+
+ setBackground(new java.awt.Color(240, 238, 231));
+ accessPointApplicationComboBox.setFont(new java.awt.Font("Arial", 0, 11
));
+ accessPointApplicationComboBox.setModel(new javax.swing.DefaultComboBox
Model(new String[] { "Application/AccessPointApplication" }));
+ accessPointApplicationComboBox.addActionListener(new java.awt.event.Act
ionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ accessPointApplicationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(accessPointApplicationComboBox);
+ accessPointApplicationComboBox.setBounds(210, 140, 270, 22);
+
+ accessPointNumberLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointNumberLabel.setText("ACCESS POINT NUMBER: ");
+ add(accessPointNumberLabel);
+ accessPointNumberLabel.setBounds(20, 20, 125, 14);
+
+ accessPointNumberTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointNumberTextField.setText("1");
+ accessPointNumberTextField.addActionListener(new java.awt.event.ActionL
istener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ accessPointNumberTextFieldActionPerformed(evt);
+ }
+ });
+ accessPointNumberTextField.addFocusListener(new java.awt.event.FocusAda
pter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ accessPointNumberTextFieldFocusLost(evt);
+ }
+ });
+
+ add(accessPointNumberTextField);
+ accessPointNumberTextField.setBounds(210, 20, 270, 19);
+
+ accessPointLocationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointLocationLabel.setText("ACCESS POINT LOCATION:");
+ add(accessPointLocationLabel);
+ accessPointLocationLabel.setBounds(20, 60, 132, 14);
+
+ accessPointEnergyLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointEnergyLabel.setText("INITIAL ENERGY:");
+ add(accessPointEnergyLabel);
+ accessPointEnergyLabel.setBounds(20, 100, 81, 14);
+
+ accessPointEnergyTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointEnergyTextField.setText("1000");
+ accessPointEnergyTextField.addActionListener(new java.awt.event.ActionL
istener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ accessPointEnergyTextFieldActionPerformed(evt);
+ }
+ });
+ accessPointEnergyTextField.addFocusListener(new java.awt.event.FocusAda
pter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ accessPointEnergyTextFieldFocusLost(evt);
+ }
+ });
+
+ add(accessPointEnergyTextField);
+ accessPointEnergyTextField.setBounds(210, 100, 220, 19);
+
+ joulesLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ joulesLabel.setText("Joules");
+ add(joulesLabel);
+ joulesLabel.setBounds(450, 100, 31, 20);
+
+ accessPointApplicationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointApplicationLabel.setText("ACCESS POINT APPLICATION:");
+ add(accessPointApplicationLabel);
+ accessPointApplicationLabel.setBounds(20, 140, 146, 14);
+
+ accessPointLocationComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ accessPointLocationComboBox.setModel(new javax.swing.DefaultComboBoxMod
el(new String[] { "CENTER", "UP LEFT CORNER", "DOWN LEFT CORNER", "UP RIGHT CORN
ER", "DOWN RIGHT CORNER", "GRID", "RANDOM" }));
+ accessPointLocationComboBox.addActionListener(new java.awt.event.Action
Listener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ accessPointLocationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(accessPointLocationComboBox);
+ accessPointLocationComboBox.setBounds(210, 60, 270, 22);
+
+ accessPointTransmissionRangeLabel.setFont(new java.awt.Font("Arial", 0,
11));
+ accessPointTransmissionRangeLabel.setText("TRANSMISSION RANGE");
+ add(accessPointTransmissionRangeLabel);
+ accessPointTransmissionRangeLabel.setBounds(20, 180, 115, 14);
+
+ accessPointTransmissionRangeTextField.setFont(new java.awt.Font("Arial"
, 0, 11));
+ accessPointTransmissionRangeTextField.setText("100");
+ accessPointTransmissionRangeTextField.addActionListener(new java.awt.ev
ent.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ accessPointTransmissionRangeTextFieldActionPerformed(evt);
+ }
+ });
+ accessPointTransmissionRangeTextField.addFocusListener(new java.awt.eve
nt.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ accessPointTransmissionRangeTextFieldFocusLost(evt);
+ }
+ });
+
+ add(accessPointTransmissionRangeTextField);
+ accessPointTransmissionRangeTextField.setBounds(210, 180, 220, 19);
+
+ metersLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ metersLabel.setText("meters");
+ add(metersLabel);
+ metersLabel.setBounds(450, 180, 33, 20);
+
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void accessPointTransmissionRangeTextFieldFocusLost(java.awt.event.
FocusEvent evt) {//GEN-FIRST:event_accessPointTransmissionRangeTextFieldFocusLos
t
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setAccessPointTransmissionRange(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_accessPointTransmissionRangeTextFieldFocusLost
+
+ private void accessPointEnergyTextFieldFocusLost(java.awt.event.FocusEvent
evt) {//GEN-FIRST:event_accessPointEnergyTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setAccessPointEnergy(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_accessPointEnergyTextFieldFocusLost
+
+ private void accessPointNumberTextFieldFocusLost(java.awt.event.FocusEvent
evt) {//GEN-FIRST:event_accessPointNumberTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ int aux = Integer.parseInt(content);
+ MainFrame.getTcl().setAccessPointNumber(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_accessPointNumberTextFieldFocusLost
+
+ private void accessPointNumberTextFieldActionPerformed(java.awt.event.Actio
nEvent evt) {//GEN-FIRST:event_accessPointNumberTextFieldActionPerformed
+
+ int aux = 0;
+ String s = accessPointNumberTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Integer.parseInt(s);
+ MainFrame.getTcl().setAccessPointNumber(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ accessPointNumberTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_accessPointNumberTextFieldActionPerformed
+
+ private void accessPointLocationComboBoxActionPerformed(java.awt.event.Acti
onEvent evt) {//GEN-FIRST:event_accessPointLocationComboBoxActionPerformed
+
+ MainFrame.getTcl().setAccessPointLocation((String) accessPointLocationC
omboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_accessPointLocationComboBoxActionPerformed
+
+ private void accessPointEnergyTextFieldActionPerformed(java.awt.event.Actio
nEvent evt) {//GEN-FIRST:event_accessPointEnergyTextFieldActionPerformed
+
+ double aux = 0;
+ String s = accessPointEnergyTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setAccessPointEnergy(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ accessPointEnergyTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_accessPointEnergyTextFieldActionPerformed
+
+ private void accessPointApplicationComboBoxActionPerformed(java.awt.event.A
ctionEvent evt) {//GEN-FIRST:event_accessPointApplicationComboBoxActionPerformed
+
+ MainFrame.getTcl().setAccessPointApplication((String) accessPointApplic
ationComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_accessPointApplicationComboBoxActionPerformed
+
+ private void accessPointTransmissionRangeTextFieldActionPerformed(java.awt.
event.ActionEvent evt) {//GEN-FIRST:event_accessPointTransmissionRangeTextFieldA
ctionPerformed
+
+ double aux = 0;
+ String s = accessPointTransmissionRangeTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setAccessPointTransmissionRange(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ accessPointTransmissionRangeTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_accessPointTransmissionRangeTextFieldActionPerformed
+
+ private Object makeObj(final String item) {
+ return new Object() { public String toString() { return item; } };
+ }
+
+ private void setAccessPointNumberTextField(String s){
+ accessPointNumberTextField.setText(s);
+ }
+
+ private void setAccessPointLocationComboBox(String s) {
+ accessPointLocationComboBox.addItem(makeObj(s));
+ accessPointLocationComboBox.setSelectedItem(s);
+ }
+
+ private void setAccessPointEnergyTextField(String s){
+ accessPointEnergyTextField.setText(s);
+ }
+
+ private void setAccessPointApplicationComboBox(String s) {
+ accessPointApplicationComboBox.addItem(s);
+ accessPointApplicationComboBox.setSelectedItem(s);
+ }
+
+ private void setAccessPointTransmissionRangeTextField(String s){
+ accessPointTransmissionRangeTextField.setText(s);
+ }
+
+ public void updateFields(TclFields tcl){
+ setAccessPointLocationComboBox(tcl.getAccessPointLocation());
+ setAccessPointNumberTextField(String.valueOf(tcl.getAccessPointNumber()
));
+ setAccessPointEnergyTextField(String.valueOf(tcl.getAccessPointEnergy()
));
+ setAccessPointApplicationComboBox(tcl.getAccessPointApplication());
+ setAccessPointTransmissionRangeTextField(String.valueOf(tcl.getAccessPo
intTransmissionRange()));
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JComboBox accessPointApplicationComboBox;
+ private javax.swing.JLabel accessPointApplicationLabel;
+ private javax.swing.JLabel accessPointEnergyLabel;
+ private javax.swing.JTextField accessPointEnergyTextField;
+ private javax.swing.JComboBox accessPointLocationComboBox;
+ private javax.swing.JLabel accessPointLocationLabel;
+ private javax.swing.JLabel accessPointNumberLabel;
+ private javax.swing.JTextField accessPointNumberTextField;
+ private javax.swing.JLabel accessPointTransmissionRangeLabel;
+ private javax.swing.JTextField accessPointTransmissionRangeTextField;
+ private javax.swing.JLabel joulesLabel;
+ private javax.swing.JLabel metersLabel;
+ // End of variables declaration//GEN-END:variables
+
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$10.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$10.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$10.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$10.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$10java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$10;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel
access$9
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEve
nt;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+À

+
A *´+¸±
+ÃÂ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$11.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$11.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$11.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$11.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/BasicConfPanel$11java/awt/event/FocusAdapterthis$0Lgui/BasicConfPanel; Syn
/BasicConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$11; focusLost(Ljava/awt
FocusEvent;)Vgui/BasicConfPanel access$102(Lgui/BasicConfPanel;Ljava/awt/event/Fo
cusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+Å

+
+A *´+¸±
+ÈÇ   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$12.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$12.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$12.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$12.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$12java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$12;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$113(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+Ú

+
A *´+¸±
+ÝÜ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$13.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$13.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$13.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$13.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$13java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$13;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$123(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+å

+
A *´+¸±
+èç   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$14.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$14.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$14.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$14.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$14java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$14;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$133(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ú

+
A *´+¸±
+ýü   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$15.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$15.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$15.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$15.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$15java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$15;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$143(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+

+
A *´+¸±
 +    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$16.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$16.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$16.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$16.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$16java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$16;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$153(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$17.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$17.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$17.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$17.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$17java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$17;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$163(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+%

+
A *´+¸±
+'(   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$18.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$18.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$18.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$18.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$18java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$18;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$173(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+B

+
A *´+¸±
+DE   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$19.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$19.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$19.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$19.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$19java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$19;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$183(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+X

+
A *´+¸±
+Z[   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$1.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$1.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$1.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$1.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$1java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCon
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$1;actionPerformed(Ljava/aw
ctionEvent;)Vgui/BasicConfPanelaccess$0
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEven
t;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+J

+
A *´+¸±
+ML   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$20.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$20.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$20.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$20.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/BasicConfPanel$20java/awt/event/FocusAdapterthis$0Lgui/BasicConfPanel; Syn
/BasicConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$20; focusLost(Ljava/awt
FocusEvent;)Vgui/BasicConfPanel access$192(Lgui/BasicConfPanel;Ljava/awt/event/Fo
cusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+]

+
+A *´+¸±
+_`   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$21.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$21.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$21.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$21.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$21java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$21;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$203(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+r

+
A *´+¸±
+tu   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$22.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$22.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$22.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$22.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/BasicConfPanel$22java/awt/event/FocusAdapterthis$0Lgui/BasicConfPanel; Syn
/BasicConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$22; focusLost(Ljava/awt
FocusEvent;)Vgui/BasicConfPanel access$212(Lgui/BasicConfPanel;Ljava/awt/event/Fo
cusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+w

+
+A *´+¸±
+yz   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$23.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$23.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$23.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$23.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$23java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$23;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$223(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$24.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$24.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$24.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$24.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$24java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$24;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$233(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$25.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/
BasicConfPanel$25.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$25.
class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$25.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$25java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCo
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$25;actionPerformed(Ljava/a
ActionEvent;)Vgui/BasicConfPanel access$243(Lgui/BasicConfPanel;Ljava/awt/event/Ac
tionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+©

+
A *´+¸±
+¬«   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$2.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$2.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$2.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$2.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/BasicConfPanel$2java/awt/event/FocusAdapterthis$0Lgui/BasicConfPanel; Syn
/BasicConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$2; focusLost(Ljava/awt
FocusEvent;)Vgui/BasicConfPanelaccess$1
 2(Lgui/BasicConfPanel;Ljava/awt/event/FocusEvent
;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+O

+
+A *´+¸±
+RQ   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$3.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$3.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$3.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$3.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$3java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCon
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$3;actionPerformed(Ljava/aw
ctionEvent;)Vgui/BasicConfPanelaccess$2
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEven
t;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+`

+
A *´+¸±
+cb   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$4.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$4.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$4.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$4.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$4java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCon
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$4;actionPerformed(Ljava/aw
ctionEvent;)Vgui/BasicConfPanelaccess$3
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEven
t;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+p

+
A *´+¸±
+sr   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$5.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$5.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$5.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$5.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/BasicConfPanel$5java/awt/event/FocusAdapterthis$0Lgui/BasicConfPanel; Syn
/BasicConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$5; focusLost(Ljava/awt
FocusEvent;)Vgui/BasicConfPanelaccess$4
 2(Lgui/BasicConfPanel;Ljava/awt/event/FocusEvent
;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+u

+
+A *´+¸±
+xw   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$6.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$6.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$6.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$6.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$6java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCon
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$6;actionPerformed(Ljava/aw
ctionEvent;)Vgui/BasicConfPanelaccess$5
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEven
t;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$7.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$7.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$7.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$7.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/BasicConfPanel$7java/awt/event/FocusAdapterthis$0Lgui/BasicConfPanel; Syn
/BasicConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$7; focusLost(Ljava/awt
FocusEvent;)Vgui/BasicConfPanelaccess$6
 2(Lgui/BasicConfPanel;Ljava/awt/event/FocusEvent
;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+ 

+
+A *´+¸±
+    
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$8.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$8.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$8.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$8.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$8java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCon
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$8;actionPerformed(Ljava/aw
ctionEvent;)Vgui/BasicConfPanelaccess$7
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEven
t;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+¢¡   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel$9.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/B
asicConfPanel$9.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel$9.c
lass 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel$9.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/BasicConfPanel$9java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/BasicCon
Synthetic<init>(Lgui/BasicConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/BasicConfPanel$9;actionPerformed(Ljava/aw
ctionEvent;)Vgui/BasicConfPanelaccess$8
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEven
t;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileBasicConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+µ

+
A *´+¸±
+¸—   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/Bas
icConfPanel.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel.cla
ss 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel.class 2006-05-26 11:29:05.000000000 -0300
@@ -0,0 +1,239 @@
+Êþº¾.jgui/BasicConfPaneljavax/swing/JPanelantennaComboBoxLjavax/swing/JComboBox;
antennaLabelLjavax/swing/JLabel;batteryComboBox
batteryLabel
buttonGroup1Ljavax/swing/ButtonGroup;channelTypeLabelchannelTypeTextFieldLjavax/swing/JT
extField;ifqComboBox
ifqLabel
 ifqLenLabelifqLenTextField
linkComboBox linkLabel
macLabel
 macLayerComboBox
metersLabel1
metersLabel2phyComboBoxphyLabel
 propagationComboBoxpropagationLabelroutingProtocolComboBoxrou
tingProtocolLabelscenarySizeLenLabelscenarySizeXTextFieldscenarySizeYTextFieldsimulation
TimeLabel
+startLabelstartTextField
stopTextField traceAgentRadioButton
 stopLabel
Ljavax/swing/JRadioButton;
 traceFileCheckBoxLjavax/swin
g/JCheckBox;traceFileNameTextField
+traceLabeltraceMacRadioButtontraceRouteRadioButtontransportComboBoxtransportLabelxLabel<in
t>()VCode
34
+6initComponents
84
+9LineNumberTableLocalVariableTablethisLgui/BasicConfPanel;javax/swing/ButtonGroup?
+@6

Bjavax/swing/JTextFieldD
+E6
, G javax/swing/JCheckBoxI
+J6
*+ Ljavax/swing/JLabelN
+O6
  Q
! S
 U
2 W
" Y
 [javax/swing/JComboBox]
+^6
  `

+ b
 d
 f
 h
 j
 l
 n
 p
 r
 t
 v
 x
 z
 |
 ~
 
 
 
 
0 
1 
# 
% 
$ 
& 
' 
-  javax/swing/JRadioButton
+ 6
.) 
/) 
()   setLayout(Ljava/awt/LayoutManager;)V
¡¢
+£java/awt/Color¥(III)V
3§
setBackground
+¦¨ (Ljava/awt/Color;)V
ª«
java/awt/Font
+¬ ®Arial°(Ljava/lang/String;II)V
3²
+‾³setFont(Ljava/awt/Font;)V
µ¶
+E—trace.tr¹setText(Ljava/lang/String;)V
»¼
+E½gui/BasicConfPanel$1¿(Lgui/BasicConfPanel;)V
3Á
+ÀÂaddActionListener"(Ljava/awt/event/ActionListener;)V
ÄÅ
+EÆgui/BasicConfPanel$2È
+ÉÂaddFocusListener!(Ljava/awt/event/FocusListener;)V
ËÌ
+EÍadd*(Ljava/awt/Component;)Ljava/awt/Component;
ÏÐ
+Ñ setBounds(IIII)V
ÓÔ
+EÕ
+J¬
+J—setSelected(Z)V
ÙÚ
+JÛTRACE FILE NAME:Ý
+J½javax/swing/BorderFactoryàcreateEmptyBorder!(IIII)Ljavax/swing/border/Border;
âã
+áä setBorder(Ljavax/swing/border/Border;)V
æç
+Jè
setFocusable
êÚ
+JësetHorizontalAlignment(I)V
íî
+Jïjava/awt/Insetsñ
3Ô
+òó setMargin(Ljava/awt/Insets;)V
õö
+J÷gui/BasicConfPanel$3ù
+úÂ
+JÆ
+JÕ
SCENARY
+O— SIZE:ÿ
+O½
+OÕ100gui/BasicConfPanel$4
+Âgui/BasicConfPanel$5
g+ ui/BasicConfPanel$6
 meters
x 
+Âgui/BasicConfPanel$7
+Â
+^— javax/swing/DefaultComboBoxModeljava/lang/StringEnergyModel/Battery([Ljava/lang/Object;)
3
+
setModel (Ljavax/swing/ComboBoxModel;)V

+^!gui/BasicConfPanel$8#
+$Â
+^Æ
+^ÕBATTERY:(whiteLjava/awt/Color;
*+ ¦,
+O¬ROUTING PROTOCOL: /AODV1DSR3TORA5LEACH7DIRECTED DIFFUSION9DSDV;gui/BasicConfPanel$9=
+>Âgui/BasicConfPanel$10@
+AÂgui/BasicConfPanel$11C
Queue/RED/RIO
+DÂIFQ LENGTH: PQFIueue/DropTail
NTERFACE QUEUE R
Queue/Vq
(IFQ):
T HQueue/DropTail/PriQueue
Queue/XCPVQueue/DropTail/XCP
J Queue/RED
Xgui/BasicConfPanel$12
LQueue/RED/Pushback
Z N
+[ÂPropagation/TwoRayGround]Propagation/Shadowing_Propagation/ShadowingVis aPropagation/FreeSpa
BasicConfPanel$13e
+fÂRADIO PROPAGATION:ANTENNA: h jAntena/OmniAntennalgui/BasicConfPanel$14n
+oÂPhy/WirelessPhy - Mica2q,Phy/WirelessPhy - 914MHz Lucent WaveLAN DSSSsgui/BasicConfPanel$
15u
+vÂPHYSYCAL LAYER:xLINK:zLL|gui/BasicConfPanel$16~
+ Â 
+Mac/802_11 g ui/BasicConfPanel$17
+ Â MAC: TYPE:
CHANNEL
+E¬setEditable
 Ú
+E Channel/WirelessChannel s etDisabledTextColor
 «
+E UDP T CP gui/BasicConfPanel$18
+ Â TRANSPORT PROTOCOL: S IMULATION TIME: 1 gui/BasicConfPanel$19 
+¡Âgui/BasicConfPanel$20£
+¤ÂSTART:¦STOP:¨gui/BasicConfPanel$21ª
+«Âgui/BasicConfPanel$22
+®ÂTRACE:°
+ ¬
+ —
+ Û  TRACE-MACµ
+ ½
+ è
+ ÷ gui/BasicConfPanel$23º
+»Â
+ Æ
+ Õ TRACE-ROUTE¿gui/BasicConfPanel$24Á
+ÂÂTRACE-AGENTÄgui/BasicConfPanel$25Æ
+ÇÂstopTextFieldFocusLost(Ljava/awt/event/FocusEvent;)Vjava/awt/event/FocusEventË get
e()Ljava/lang/Object;
ÍÎ
+ÌÏgetText()Ljava/lang/String;
ÑÒ
+EÓlength()I
ÕÖ
+×java/lang/DoubleÙparseDouble(Ljava/lang/String;)D
ÛÜ
gui/MainFrame
+ÚÝ ßgetTcl()Lgui/TclFields;
áâ
gui/TclFields
+àã åsetSimulationStop(D)V
çè
+æé
requestFocus
ë4
+Eìjava/lang/NumberFormatExceptionîevtLjava/awt/event/FocusEvent; textFieldcontentLja
tring;auxDnfe!Ljava/lang/NumberFormatException;traceFileNameTextFieldFocusLostsetTraceFileN
ame
ú¼
+æûstartTextFieldFocusLostsetSimulationStart
þè
+æÿscenarySizeXTextFieldFocusLostjava/lang/IntegerparseInt
 (Ljava/lang/String;)I

+
setScenarioX
è 
+æ IscenarySizeYTextFieldFocusLost
setScenarioY

+æifqLenTextFieldFocusLost setIfqLen

+æstopTextFieldActionPerformed(Ljava/awt/event/ActionEvent;)V
+getToolkit()Ljava/awt/Toolkit;

+java/awt/Toolkitbeep
4
+setXMLSaved

+à Ljava/awt/event/ActionEvent;timesstartTextFieldActionPerformed$traceAgentRadioButtonActi
Performed
+isSelected()Z
'(
setTraceAgent
+ ) 
+Ú
setTraceRoute
+æ,$traceRouteRadioButtonActionPerformed
/Ú
+æ0"traceMacRadioButtonActionPerformedsetTraceMac
3Ú
+æ4%traceFileNameTextFieldActionPerformed traceFileCheckBoxActionPerformed
+J)
setTraceFile
9Ú
+æ:$scenarySizeYTextFieldActionPerformedsize$scenarySizeXTextFieldActionPerformedbatteryCo
mboBoxActionPerformedgetSelectedItem
@Î
+^A
+setBattery
C¼
+æDifqLenTextFieldActionPerformedifqLenifqComboBoxActionPerformedsetIfq
I¼
+æJ"propagationComboBoxActionPerformedsetPropagation
M¼
+æNantennaComboBoxActionPerformed
+setAntenna
Q¼
+æRphyComboBoxActionPerformedsetPhyLayer
U¼
+æVinkComboBoxActionPerformed
setLinkLayer
Y¼
+æZmacLayerComboBoxActionPerformedsetMacLayer
]¼
+æ^&routingProtocolComboBoxActionPerformedtoLowerCase
aÒ
+bsetRoutingProtocol
d¼
+æeleach
g compareTo
i
+j.Application/AccessPointApp/AccessPointLeachApplsetAccessPointApplication
n¼
+æo0Application/SensorBaseApp/CommonNodeApp/LeachApp
qsetCommonNodeApplication
s¼
+æt mainFrameLgui/MainFrame;
vw àxgetClusterHeadConfButton()Ljavax/swing/JButton;
z{
+à|javax/swing/JButton~
+setEnabled
 Ú
+  d d directed diffusion d irecteddiffusion Application/AccessPointDiffApp + Application/SensorBa
DiffApp  s l transportComboBoxActionPerformedsetTransportProtocol
 ¼
+æ setTraceFileNameTextFieldsetTraceFileCheckBoxbZsetScenarySizeYTextFieldsetScenarySizeXTe
tBatteryComboBoxaddItem(Ljava/lang/Object;)V
 
+^ setSelectedItem
 
+^ setIfqLenTextFieldsetIfqComboBoxsetPropagationComboBoxsetAntennaComboBoxsetPhyComboBoxse
nkComboBoxsetMacLayerComboBoxsetRoutingProtocolComboBoxsetTransportComboBoxsetTraceMacRa
dioButtonsetTraceRouteRadioButtonsetTraceAgentRadioButtonsetStartTextFieldsetStopTextFie
ld
updateFields(Lgui/TclFields;)VgetTransportProtocol
°Ò
+æ±
¨¼
+³getRoutingProtocol
µÒ
+æ¶
§¼
+¸getMacLayer
ºÒ
+æ»
¦¼
+½
getLinkLayer
¿Ò
+æÀ
¥¼
+ÂgetPhyLayer
ÄÒ
+æÅ
¤¼
+Ç
+getAntenna
ÉÒ
+æÊ
£¼
+ÌgetPropagation
ÎÒ
+æÏ
¢¼
+ÑgetIfq
ÓÒ
+æÔ
¡¼
+Ö getIfqLen
ØÖ
+æÙvalueOf(I)Ljava/lang/String;
ÛÜ
+Ý
 ¼
+ß
+getBattery
áÒ
+æâ
 ¼
+ä
getScenarioX()D
æç
+æè(D)Ljava/lang/String;
Ûê
+ë
 ¼
+í
getScenarioY
ïç
+æð
 ¼
+ògetTraceFileName
ôÒ
+æõ
 ¼
+÷isTraceFile
ù(
+æú
 Ú
+ü
+isTraceMac
þ(
+æÿ
©Ú
+
isTraceRoute
(
+æ
ªÚ
+
isTraceAgent
( 
+æ
«Ú
+getSimulationStart

+æ
¬¼
+getSimulationStop

+æ
¼
+tclLgui/TclFields;access$0
 3(Lgui/BasicConfPanel;Ljava/awt/event/ActionEvent;)V Syntheti
c
6
+
access$1 2(Lgui/BasicConfPanel;Ljava/awt/event/FocusEvent;)V
ùÊ
+access$2
 
7
+access$3
#
>
+access$4
&

+access$5
)
<
+access$6
,


+access$7
/
?
+access$8
2
`
+access$9
5
F
+8 access$10

+; access$11
H
+> access$12
L
+A access$13
P
+D access$14
T
+G access$15
X
+J access$16
\
+M access$17
 
+P access$18
%
+S access$19
ýÊ
+V access$20

+Y access$21
ÉÊ
+\ access$22
2
+_ access$23
.
+b access$24
&
+e
+SourceFileBasicConfPanel.java
InnerClasses!( 
+
!"%$#'&()*+,.-)/)0H21345; *—7*—:±<;
 @Y—AµC=*»
Ý*» >8E4Y—
5ßF µH*»JY—KµM*»OY—PµR*»EY—FµT*»OY—PµV*»OY—PµX*»EY—FµZ*»OY—Pµ\*»^Y—_µa*»OY—Pµc*»
+¶Î**´T¶ÒW*´TrÌF¶Ö*´V»‾Y±—´¶þ*´V
¶**´V¶ÒW*´V"Ì!¶*´X»‾Y±—´¶þ*´X¶**´X¶ÒW*´XTÌ
+¶*´Z»‾Y±—´¶¸*´Z¶¾*´Z»Y*—¶Ç*´Z»Y*—¶Î**´Z¶ÒW*´ZÒÌF¶Ö*´\»‾Y±—´¶þ*´\
¶**´\¶ÒW*´\ÂÌ!¶*´a»‾Y±—´¶*´a»Y½YS—¶"*´a»$Y*—%¶&**´a¶ÒW*´aÒ¤¶'*´c»‾Y±—´¶þ*´c)¶**´c¶ÒW*´c¤3¶*
pu*{3|D~W a  j {      ¡ ²  Å Ï  Þ í  ö   $  -  > Q  i x ¥ ¦ ¨ ¦©°ª¹«ÉÓ®æ‾ð°ù³±´Rµa»j¼{¾ ¿  À§Å¶Ë¿ÌÑÎäÏ
èñ !
B
_
U
h
x
®
Á
Ù # $ .% =+ F, X. k/ u0 ~1 3 ¡4
+=
+>
+0@
+CA
+aB
+pH
+yI
+ K
+ L
+§M
+±N
+ºO
+ÉQ
+ÜR
+æS
+ïT
+ÿVWX+]:cCdTfggqhzi k l ¨m±nÂpÕqßrîwý}
~

*
4
=
M
d
w



©
¸
Á
Ò
é
üÜ˳¡nWF²°‾©¨§¦¥¤£¡ <
=
.
ÏóòƸÝôÑǺ=õÒý<»>ö%Ê*É'Ó5=¼Ê÷'¬>5øÔ,ð½¬Ê+ñù,+¶
+¶
5×ÊÀ<Ð5->iÐÀ,E++¶
ÀM,¶
¶
=EM,¶
Ð>,ÀEðÔM,¶
N-¶
$ñÔN-¶
ò ÔØN-¶
N¸
Ø-ä-¸ ØÞ-¶
¸9
Þ9-¸ü丸±6¶;丧ÅĶä꧶:,¶í±%%ï;ÎÍ"—¶
Ü+§
 óÞôß&à(á,ä:<,>¶-í± =>&-&ðï%ñ;òÛÚ"
õ(÷ø
éÊóë5ôì&-+¶
í(îÐ,ÀñEM,¶
<>-=ÔN-¶
>-ð%ñØò-¸6¸ä ¶§ :,¶í±&&ï;èç"
öõóôø(õù÷'%ø÷úÊø'55û¬¶+,+¶ 8þI<>Ð*´,ÀZ=E¶
M,¶
>Ô,ð:¶$ñÔN-¶
Øò # ¸ØÞ-I¸  ¸ä6(¶ ¸ä궧§:*¶¶:*,´¶Tí¶
±í%¸%!ï±
;#õô"#ï;*
+%# ,
7+<348=>8ð"6#ö-$ô%÷ø%5¶8I*´Z¶Ô:¶Ø #¸ÞI¸ä(¶§:*¶¶*´T¶í¸!±##ï;*
;5/)#+<60*$#<%=,>3ð7"<<762.458©N=/¸>=ä8*´ ð"ZMH6¶
#Ô8*öN-¶
¶-;ü51$¸ôØ!%±÷-;ø:4.(&¸=5¸Nä¸ä*´
¶§ ¶*¶-¸!±;"
:*´T¶í¸!±!!ï;& @A
+BDE!F#G*J.K<4/=>/ð"-=
+%$ô#÷ø>5´6=*´T¶ÔN-¶Ø # -¸=¸ä ¶
+§:*¶¶*´T¶í¸!±!!ï;*
+OP
+QST!U#V*W1Z5[<46=>6ð"4=
+,$ô#÷ø?5Q¸ä*´a¶BÀ¶E¸!±;_`a<=>ð"F5³5=*´i¶ÔN-¶Ø " -¸=¸ä¶§:*¶¶*´i¶í¸!±  ï;*
+ef
+gij k"l)m0p4q<45=>5ð"3G
,
+y+¶
² $}kô¶""÷¸±ø;äH:5¶Qp¸ä¸*´"ä  ,¶o u¶²
5BÀy>¶¶ }KK¶¸¢!_§±£;iu¤vrw¥<{=¦>ð©"L«5<Q¸ä*´
=>q¶
ð"BÀ¶ôO¸5!Q±¸;ä{|*´
}<¶=B>ðÀ¶"P¸5!Q±
¸;ä‾*´
°±w¶<=B>Àð¶"S¸¼!±
5A;   <=>*´
ð"HT5+¶
Q¾¸ä±;*´
 y¶
+¶µ< => $ô Ú 5A *´M¶ܱ;
+º¹< =>    ¼ 5A *´Z+¶¾±;
+¾½< => $ô ¼ 5A *´T+¶¾±;
+ÂÁ< => $ô ¼ 5M*´a+¶ *´a+¶ ±;ÆÅÇ<=>$ô ¼5A *´i+¶¾±;
+ËÊ< => $ô¡¼5M*´o+¶ *´o+¶ ±;ÏÎÐ<=>$ô¢¼5M*´q+¶ *´q+¶ ±;ÔÓÕ<=>$ô£¼5M*´w+¶ *´w+¶ ±;ÙØÚ<=>
+÷ö< =>   ªÚ5A *´ ¶ ´±;
+ûú< =>   «Ú5A *´ ¶´±;
+ÿþ< =>   ¬¼5A *´ +¶¾±;
<+  = > $ô¼5A *´ +¶¾±;
<+  = > $ô®‾5(¨*+¶²—´*+¶——¹*+¶¼—¾*+¶Á—Ã*+¶ƗÈ*+¶˗Í*+¶ЗÒ*+¶՗×*+¶Ú¸ޗà*+¶ã—å*+¶é¸ì
+—
*+¶¸ì—*+¶¸ì—±;R
+
 (08@KS^iqy    §<¨=>5¨&*+—±;25<&*+—!±;Â"<5&*+—$±;8%<5&*+—'±;M(<5&*+—*±;Ù+<5&*+—-±;>.<5&*+—0±;æ1<5&*
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel.form ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/Basi
cConfPanel.form
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel.for
m 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel.form 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,712 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.0" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <NonVisualComponents>
+ <Component class="javax.swing.ButtonGroup" name="buttonGroup1">
+ </Component>
+ </NonVisualComponents>
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.bean
info.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean
" value="false"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integ
er" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value
="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" va
lue="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,
115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,6
5,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,
100,116,104,120,112,0,0,2,116,0,0,2,73"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout
">
+ <Property name="useNullLayout" type="boolean" value="true"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JTextField" name="traceFileNameTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="trace.tr"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="traceFileNameTextFieldA
ctionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="traceFileNameTextFieldFocusLost
"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="500" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JCheckBox" name="traceFileCheckBox">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="TRACE FILE NAME:"/
>
+ <Property name="border" type="javax.swing.border.Border" editor="org.ne
tbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInf
o">
+ <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+ </Border>
+ </Property>
+ <Property name="focusable" type="boolean" value="false"/>
+ <Property name="horizontalAlignment" type="int" value="2"/>
+ <Property name="margin" type="java.awt.Insets" editor="org.netbeans.bea
ninfo.editors.InsetsEditor">
+ <Insets value="[0, 0, 0, 0]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="traceFileCheckBoxAction
Performed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="500" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="scenarySizeLenLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="SCENARY SIZE:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="460" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="scenarySizeXTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="100"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="scenarySizeXTextFieldAc
tionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="scenarySizeXTextFieldFocusLost"
/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="370" y="460" width="70" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="metersLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="meters"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="290" y="460" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="xLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="x"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="340" y="460" width="10" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="scenarySizeYTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="100"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="scenarySizeYTextFieldAc
tionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="scenarySizeYTextFieldFocusLost"
/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="460" width="70" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="metersLabel2">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="meters"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="460" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="batteryComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="EnergyModel/Battery"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="batteryComboBoxActionPe
rformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="420" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="batteryLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="BATTERY:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="420" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="routingProtocolLabel">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="ff" green="ff" id="white" palette="1" red="ff" type="pal
ette"/>
+ </Property>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="ROUTING PROTOCOL:"
/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="100" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="routingProtocolComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="6">
+ <StringItem index="0" value="AODV"/>
+ <StringItem index="1" value="DSR"/>
+ <StringItem index="2" value="TORA"/>
+ <StringItem index="3" value="LEECH"/>
+ <StringItem index="4" value="DIRECT DIFFUSION"/>
+ <StringItem index="5" value="DSDV"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="routingProtocolComboBox
ActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="100" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="ifqLenTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="100"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="ifqLenTextFieldActionPe
rformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="ifqLenTextFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="380" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="ifqLenLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="IFQ LENGTH:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="380" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="ifqLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="INTERFACE QUEUE (I
FQ):"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="340" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="ifqComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="8">
+ <StringItem index="0" value="Queue/DropTail/PriQueue"/>
+ <StringItem index="1" value="Queue/RED"/>
+ <StringItem index="2" value="Queue/RED/Pushback"/>
+ <StringItem index="3" value="Queue/RED/RIO"/>
+ <StringItem index="4" value="Queue/DropTail"/>
+ <StringItem index="5" value="Queue/Vq"/>
+ <StringItem index="6" value="Queue/XCP"/>
+ <StringItem index="7" value="Queue/DropTail/XCP"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="ifqComboBoxActionPerfor
med"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="340" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="propagationComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="4">
+ <StringItem index="0" value="Propagation/TwoRayGround"/>
+ <StringItem index="1" value="Propagation/Shadowing"/>
+ <StringItem index="2" value="Propagation/ShadowingVis"/>
+ <StringItem index="3" value="Propagation/FreeSpace"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="propagationComboBoxActi
onPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="300" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="propagationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="RADIO PROPAGATION:
"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="300" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="antennaLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="ANTENNA:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="260" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="antennaComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Antena/OmniAntenna"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="antennaComboBoxActionPe
rformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="260" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="phyComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="2">
+ <StringItem index="0" value="Phy/WirelessPhy - Mica2"/>
+ <StringItem index="1" value="Phy/WirelessPhy - 914MHz Lucent WaveLA
N DSSS"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="phyComboBoxActionPerfor
med"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="220" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="phyLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="PHYSYCAL LAYER:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="220" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="linkLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="LINK:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="180" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="linkComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="LL"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="linkComboBoxActionPerfo
rmed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="180" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="macLayerComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Mac/802_11"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="macLayerComboBoxActionP
erformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="140" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="macLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="MAC:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="140" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="channelTypeLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="CHANNEL TYPE:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="20" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="channelTypeTextField">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ <Property name="editable" type="boolean" value="false"/>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Channel/WirelessCh
annel"/>
+ <Property name="disabledTextColor" type="java.awt.Color" editor="org.ne
tbeans.beaninfo.editors.ColorEditor">
+ <Color blue="ff" green="ff" red="ff" type="rgb"/>
+ </Property>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="20" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="transportComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="2">
+ <StringItem index="0" value="UDP"/>
+ <StringItem index="1" value="TCP"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="transportComboBoxAction
Performed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="60" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="transportLabel">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="ff" green="ff" id="white" palette="1" red="ff" type="pal
ette"/>
+ </Property>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="TRANSPORT PROTOCO
L:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="60" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="simulationTimeLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="SIMULATION TIME:"/
>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="580" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="startTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="1"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="startTextFieldActionPer
formed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="startTextFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="250" y="580" width="90" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="startLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="START:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="580" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="stopLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="STOP:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="360" y="580" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="stopTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="100"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="stopTextFieldActionPerf
ormed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="stopTextFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="390" y="580" width="90" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="traceLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="TRACE:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="540" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="traceMacRadioButton">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="TRACE-MAC"/>
+ <Property name="border" type="javax.swing.border.Border" editor="org.ne
tbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInf
o">
+ <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+ </Border>
+ </Property>
+ <Property name="margin" type="java.awt.Insets" editor="org.netbeans.bea
ninfo.editors.InsetsEditor">
+ <Insets value="[0, 0, 0, 0]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="traceMacRadioButtonActi
onPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="540" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="traceRouteRadioButton">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="TRACE-ROUTE"/>
+ <Property name="border" type="javax.swing.border.Border" editor="org.ne
tbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInf
o">
+ <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+ </Border>
+ </Property>
+ <Property name="margin" type="java.awt.Insets" editor="org.netbeans.bea
ninfo.editors.InsetsEditor">
+ <Insets value="[0, 0, 0, 0]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="traceRouteRadioButtonAc
tionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="300" y="540" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JRadioButton" name="traceAgentRadioButton">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.
beaninfo.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="selected" type="boolean" value="true"/>
+ <Property name="text" type="java.lang.String" value="TRACE-AGENT"/>
+ <Property name="border" type="javax.swing.border.Border" editor="org.ne
tbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.EmptyBorderInf
o">
+ <EmptyBorder bottom="0" left="0" right="0" top="0"/>
+ </Border>
+ </Property>
+ <Property name="margin" type="java.awt.Insets" editor="org.netbeans.bea
ninfo.editors.InsetsEditor">
+ <Insets value="[0, 0, 0, 0]"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="traceAgentRadioButtonAc
tionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="400" y="540" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+</Form>
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPa
nel.java ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/Basi
cConfPanel.java
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConfPanel.jav
a 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/BasicConf
Panel.java 2006-05-26 11:29:04.000000000 -0300
@@ -0,0 +1,842 @@
+/*
+ * BasicConfPanel.java
+ *
+ * Created on 24 de Novembro de 2005, 18:16
+ */
+
+package gui;
+
+/**
+ *
+ * @author Helen Peters
+ */
+
+public class BasicConfPanel extends javax.swing.JPanel {
+
+ /** Creates new form BasicConfPanel */
+ public BasicConfPanel() {
+ initComponents();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGI
N:initComponents
+ private void initComponents() {
+ buttonGroup1 = new javax.swing.ButtonGroup();
+ traceFileNameTextField = new javax.swing.JTextField();
+ traceFileCheckBox = new javax.swing.JCheckBox();
+ scenarySizeLenLabel = new javax.swing.JLabel();
+ scenarySizeXTextField = new javax.swing.JTextField();
+ metersLabel1 = new javax.swing.JLabel();
+ xLabel = new javax.swing.JLabel();
+ scenarySizeYTextField = new javax.swing.JTextField();
+ metersLabel2 = new javax.swing.JLabel();
+ batteryComboBox = new javax.swing.JComboBox();
+ batteryLabel = new javax.swing.JLabel();
+ routingProtocolLabel = new javax.swing.JLabel();
+ routingProtocolComboBox = new javax.swing.JComboBox();
+ ifqLenTextField = new javax.swing.JTextField();
+ ifqLenLabel = new javax.swing.JLabel();
+ ifqLabel = new javax.swing.JLabel();
+ ifqComboBox = new javax.swing.JComboBox();
+ propagationComboBox = new javax.swing.JComboBox();
+ propagationLabel = new javax.swing.JLabel();
+ antennaLabel = new javax.swing.JLabel();
+ antennaComboBox = new javax.swing.JComboBox();
+ phyComboBox = new javax.swing.JComboBox();
+ phyLabel = new javax.swing.JLabel();
+ linkLabel = new javax.swing.JLabel();
+ linkComboBox = new javax.swing.JComboBox();
+ macLayerComboBox = new javax.swing.JComboBox();
+ macLabel = new javax.swing.JLabel();
+ channelTypeLabel = new javax.swing.JLabel();
+ channelTypeTextField = new javax.swing.JTextField();
+ transportComboBox = new javax.swing.JComboBox();
+ transportLabel = new javax.swing.JLabel();
+ simulationTimeLabel = new javax.swing.JLabel();
+ startTextField = new javax.swing.JTextField();
+ startLabel = new javax.swing.JLabel();
+ stopLabel = new javax.swing.JLabel();
+ stopTextField = new javax.swing.JTextField();
+ traceLabel = new javax.swing.JLabel();
+ traceMacRadioButton = new javax.swing.JRadioButton();
+ traceRouteRadioButton = new javax.swing.JRadioButton();
+ traceAgentRadioButton = new javax.swing.JRadioButton();
+
+ setLayout(null);
+
+ setBackground(new java.awt.Color(240, 238, 231));
+ traceFileNameTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ traceFileNameTextField.setText("trace.tr");
+ traceFileNameTextField.addActionListener(new java.awt.event.ActionListe
ner() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ traceFileNameTextFieldActionPerformed(evt);
+ }
+ });
+ traceFileNameTextField.addFocusListener(new java.awt.event.FocusAdapter
() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ traceFileNameTextFieldFocusLost(evt);
+ }
+ });
+
+ add(traceFileNameTextField);
+ traceFileNameTextField.setBounds(210, 500, 270, 19);
+
+ traceFileCheckBox.setBackground(new java.awt.Color(240, 238, 231));
+ traceFileCheckBox.setFont(new java.awt.Font("Arial", 0, 11));
+ traceFileCheckBox.setSelected(true);
+ traceFileCheckBox.setText("TRACE FILE NAME:");
+ traceFileCheckBox.setBorder(javax.swing.BorderFactory.createEmptyBorder
(0, 0, 0, 0));
+ traceFileCheckBox.setFocusable(false);
+ traceFileCheckBox.setHorizontalAlignment(javax.swing.SwingConstants.LEF
T);
+ traceFileCheckBox.setMargin(new java.awt.Insets(0, 0, 0, 0));
+ traceFileCheckBox.addActionListener(new java.awt.event.ActionListener()
{
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ traceFileCheckBoxActionPerformed(evt);
+ }
+ });
+
+ add(traceFileCheckBox);
+ traceFileCheckBox.setBounds(20, 500, 109, 15);
+
+ scenarySizeLenLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ scenarySizeLenLabel.setText("SCENARY SIZE:");
+ add(scenarySizeLenLabel);
+ scenarySizeLenLabel.setBounds(20, 460, 78, 14);
+
+ scenarySizeXTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ scenarySizeXTextField.setText("100");
+ scenarySizeXTextField.addActionListener(new java.awt.event.ActionListen
er() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ scenarySizeXTextFieldActionPerformed(evt);
+ }
+ });
+ scenarySizeXTextField.addFocusListener(new java.awt.event.FocusAdapter(
) {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ scenarySizeXTextFieldFocusLost(evt);
+ }
+ });
+
+ add(scenarySizeXTextField);
+ scenarySizeXTextField.setBounds(370, 460, 70, 19);
+
+ metersLabel1.setFont(new java.awt.Font("Arial", 0, 11));
+ metersLabel1.setText("meters");
+ add(metersLabel1);
+ metersLabel1.setBounds(290, 460, 33, 20);
+
+ xLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ xLabel.setText("x");
+ add(xLabel);
+ xLabel.setBounds(340, 460, 10, 20);
+
+ scenarySizeYTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ scenarySizeYTextField.setText("100");
+ scenarySizeYTextField.addActionListener(new java.awt.event.ActionListen
er() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ scenarySizeYTextFieldActionPerformed(evt);
+ }
+ });
+ scenarySizeYTextField.addFocusListener(new java.awt.event.FocusAdapter(
) {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ scenarySizeYTextFieldFocusLost(evt);
+ }
+ });
+
+ add(scenarySizeYTextField);
+ scenarySizeYTextField.setBounds(210, 460, 70, 19);
+
+ metersLabel2.setFont(new java.awt.Font("Arial", 0, 11));
+ metersLabel2.setText("meters");
+ add(metersLabel2);
+ metersLabel2.setBounds(450, 460, 33, 20);
+
+ batteryComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ batteryComboBox.setModel(new javax.swing.DefaultComboBoxModel(new Strin
g[] { "EnergyModel/Battery" }));
+ batteryComboBox.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ batteryComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(batteryComboBox);
+ batteryComboBox.setBounds(210, 420, 270, 22);
+
+ batteryLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ batteryLabel.setText("BATTERY:");
+ add(batteryLabel);
+ batteryLabel.setBounds(20, 420, 51, 14);
+
+ routingProtocolLabel.setBackground(java.awt.Color.white);
+ routingProtocolLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ routingProtocolLabel.setText("ROUTING PROTOCOL:");
+ add(routingProtocolLabel);
+ routingProtocolLabel.setBounds(20, 100, 107, 14);
+
+ routingProtocolComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ routingProtocolComboBox.setModel(new javax.swing.DefaultComboBoxModel(n
ew String[] { "AODV", "DSR", "TORA", "LEACH", "DIRECTED DIFFUSION", "DSDV" }));
+ routingProtocolComboBox.addActionListener(new java.awt.event.ActionList
ener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ routingProtocolComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(routingProtocolComboBox);
+ routingProtocolComboBox.setBounds(210, 100, 270, 22);
+
+ ifqLenTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ ifqLenTextField.setText("100");
+ ifqLenTextField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ ifqLenTextFieldActionPerformed(evt);
+ }
+ });
+ ifqLenTextField.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ ifqLenTextFieldFocusLost(evt);
+ }
+ });
+
+ add(ifqLenTextField);
+ ifqLenTextField.setBounds(210, 380, 270, 19);
+
+ ifqLenLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ ifqLenLabel.setText("IFQ LENGTH:");
+ add(ifqLenLabel);
+ ifqLenLabel.setBounds(20, 380, 62, 14);
+
+ ifqLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ ifqLabel.setText("INTERFACE QUEUE (IFQ):");
+ add(ifqLabel);
+ ifqLabel.setBounds(20, 340, 122, 14);
+
+ ifqComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ ifqComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[]
{ "Queue/DropTail/PriQueue", "Queue/RED", "Queue/RED/Pushback", "Queue/RED/RIO",
"Queue/DropTail", "Queue/Vq", "Queue/XCP", "Queue/DropTail/XCP" }));
+ ifqComboBox.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ ifqComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(ifqComboBox);
+ ifqComboBox.setBounds(210, 340, 270, 22);
+
+ propagationComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ propagationComboBox.setModel(new javax.swing.DefaultComboBoxModel(new S
tring[] { "Propagation/TwoRayGround", "Propagation/Shadowing", "Propagation/Shad
owingVis", "Propagation/FreeSpace" }));
+ propagationComboBox.addActionListener(new java.awt.event.ActionListener
() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ propagationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(propagationComboBox);
+ propagationComboBox.setBounds(210, 300, 270, 22);
+
+ propagationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ propagationLabel.setText("RADIO PROPAGATION:");
+ add(propagationLabel);
+ propagationLabel.setBounds(20, 300, 112, 14);
+
+ antennaLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ antennaLabel.setText("ANTENNA:");
+ add(antennaLabel);
+ antennaLabel.setBounds(20, 260, 52, 14);
+
+ antennaComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ antennaComboBox.setModel(new javax.swing.DefaultComboBoxModel(new Strin
g[] { "Antena/OmniAntenna" }));
+ antennaComboBox.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ antennaComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(antennaComboBox);
+ antennaComboBox.setBounds(210, 260, 270, 22);
+
+ phyComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ phyComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[]
{ "Phy/WirelessPhy - Mica2", "Phy/WirelessPhy - 914MHz Lucent WaveLAN DSSS" }));
+ phyComboBox.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ phyComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(phyComboBox);
+ phyComboBox.setBounds(210, 220, 273, 20);
+
+ phyLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ phyLabel.setText("PHYSYCAL LAYER:");
+ add(phyLabel);
+ phyLabel.setBounds(20, 220, 98, 14);
+
+ linkLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ linkLabel.setText("LINK:");
+ add(linkLabel);
+ linkLabel.setBounds(20, 180, 25, 14);
+
+ linkComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ linkComboBox.setModel(new javax.swing.DefaultComboBoxModel(new String[]
{ "LL" }));
+ linkComboBox.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ linkComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(linkComboBox);
+ linkComboBox.setBounds(210, 180, 270, 22);
+
+ macLayerComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ macLayerComboBox.setModel(new javax.swing.DefaultComboBoxModel(new Stri
ng[] { "Mac/802_11" }));
+ macLayerComboBox.addActionListener(new java.awt.event.ActionListener()
{
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ macLayerComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(macLayerComboBox);
+ macLayerComboBox.setBounds(210, 140, 270, 22);
+
+ macLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ macLabel.setText("MAC:");
+ add(macLabel);
+ macLabel.setBounds(20, 140, 26, 14);
+
+ channelTypeLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ channelTypeLabel.setText("CHANNEL TYPE:");
+ add(channelTypeLabel);
+ channelTypeLabel.setBounds(20, 20, 80, 14);
+
+ channelTypeTextField.setBackground(new java.awt.Color(240, 238, 231));
+ channelTypeTextField.setEditable(false);
+ channelTypeTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ channelTypeTextField.setText("Channel/WirelessChannel");
+ channelTypeTextField.setDisabledTextColor(new java.awt.Color(255, 255,
255));
+ add(channelTypeTextField);
+ channelTypeTextField.setBounds(210, 20, 270, 19);
+
+ transportComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ transportComboBox.setModel(new javax.swing.DefaultComboBoxModel(new Str
ing[] { "UDP", "TCP" }));
+ transportComboBox.addActionListener(new java.awt.event.ActionListener()
{
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ transportComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(transportComboBox);
+ transportComboBox.setBounds(210, 60, 270, 22);
+
+ transportLabel.setBackground(java.awt.Color.white);
+ transportLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ transportLabel.setText("TRANSPORT PROTOCOL:");
+ add(transportLabel);
+ transportLabel.setBounds(20, 60, 127, 14);
+
+ simulationTimeLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ simulationTimeLabel.setText("SIMULATION TIME:");
+ add(simulationTimeLabel);
+ simulationTimeLabel.setBounds(20, 580, 89, 14);
+
+ startTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ startTextField.setText("1");
+ startTextField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ startTextFieldActionPerformed(evt);
+ }
+ });
+ startTextField.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ startTextFieldFocusLost(evt);
+ }
+ });
+
+ add(startTextField);
+ startTextField.setBounds(250, 580, 90, 19);
+
+ startLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ startLabel.setText("START:");
+ add(startLabel);
+ startLabel.setBounds(210, 580, 37, 20);
+
+ stopLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ stopLabel.setText("STOP:");
+ add(stopLabel);
+ stopLabel.setBounds(360, 580, 30, 20);
+
+ stopTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ stopTextField.setText("100");
+ stopTextField.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ stopTextFieldActionPerformed(evt);
+ }
+ });
+ stopTextField.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ stopTextFieldFocusLost(evt);
+ }
+ });
+
+ add(stopTextField);
+ stopTextField.setBounds(390, 580, 90, 19);
+
+ traceLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ traceLabel.setText("TRACE:");
+ add(traceLabel);
+ traceLabel.setBounds(20, 540, 37, 14);
+
+ traceMacRadioButton.setBackground(new java.awt.Color(240, 238, 231));
+ traceMacRadioButton.setFont(new java.awt.Font("Arial", 0, 11));
+ traceMacRadioButton.setSelected(true);
+ traceMacRadioButton.setText("TRACE-MAC");
+ traceMacRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBord
er(0, 0, 0, 0));
+ traceMacRadioButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
+ traceMacRadioButton.addActionListener(new java.awt.event.ActionListener
() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ traceMacRadioButtonActionPerformed(evt);
+ }
+ });
+
+ add(traceMacRadioButton);
+ traceMacRadioButton.setBounds(210, 540, 79, 15);
+
+ traceRouteRadioButton.setBackground(new java.awt.Color(240, 238, 231));
+ traceRouteRadioButton.setFont(new java.awt.Font("Arial", 0, 11));
+ traceRouteRadioButton.setSelected(true);
+ traceRouteRadioButton.setText("TRACE-ROUTE");
+ traceRouteRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBo
rder(0, 0, 0, 0));
+ traceRouteRadioButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
+ traceRouteRadioButton.addActionListener(new java.awt.event.ActionListen
er() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ traceRouteRadioButtonActionPerformed(evt);
+ }
+ });
+
+ add(traceRouteRadioButton);
+ traceRouteRadioButton.setBounds(300, 540, 89, 15);
+
+ traceAgentRadioButton.setBackground(new java.awt.Color(240, 238, 231));
+ traceAgentRadioButton.setFont(new java.awt.Font("Arial", 0, 11));
+ traceAgentRadioButton.setSelected(true);
+ traceAgentRadioButton.setText("TRACE-AGENT");
+ traceAgentRadioButton.setBorder(javax.swing.BorderFactory.createEmptyBo
rder(0, 0, 0, 0));
+ traceAgentRadioButton.setMargin(new java.awt.Insets(0, 0, 0, 0));
+ traceAgentRadioButton.addActionListener(new java.awt.event.ActionListen
er() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ traceAgentRadioButtonActionPerformed(evt);
+ }
+ });
+
+ add(traceAgentRadioButton);
+ traceAgentRadioButton.setBounds(400, 540, 91, 15);
+
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void stopTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-F
IRST:event_stopTextFieldFocusLost
+
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSour
ce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setSimulationStop(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_stopTextFieldFocusLost
+
+ private void traceFileNameTextFieldFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_traceFileNameTextFieldFocusLost
+
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSour
ce();
+ String content = textField.getText();
+ MainFrame.getTcl().setTraceFileName(content);
+ }//GEN-LAST:event_traceFileNameTextFieldFocusLost
+
+
+
+ private void startTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN-
FIRST:event_startTextFieldFocusLost
+
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSour
ce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setSimulationStart(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_startTextFieldFocusLost
+
+ private void scenarySizeXTextFieldFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_scenarySizeXTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ int aux = Integer.parseInt(content);
+ MainFrame.getTcl().setScenarioX(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_scenarySizeXTextFieldFocusLost
+
+ private void scenarySizeYTextFieldFocusLost(java.awt.event.FocusEvent evt)
{//GEN-FIRST:event_scenarySizeYTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ int aux = Integer.parseInt(content);
+ MainFrame.getTcl().setScenarioY (aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_scenarySizeYTextFieldFocusLost
+
+ private void ifqLenTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GEN
-FIRST:event_ifqLenTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ int aux = Integer.parseInt(content);
+ MainFrame.getTcl().setIfqLen(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_ifqLenTextFieldFocusLost
+
+ private void stopTextFieldActionPerformed(java.awt.event.ActionEvent evt) {
//GEN-FIRST:event_stopTextFieldActionPerformed
+
+ double time = 0;
+ String s = scenarySizeYTextField.getText();
+ if (s.length() != 0) {
+ try {
+ time = Double.parseDouble(s);
+ MainFrame.getTcl().setSimulationStop(time);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ scenarySizeXTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_stopTextFieldActionPerformed
+
+ private void startTextFieldActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_startTextFieldActionPerformed
+
+ double time = 0;
+ String s = scenarySizeYTextField.getText();
+ if (s.length() != 0) {
+ try {
+ time = Double.parseDouble(s);
+ MainFrame.getTcl().setSimulationStart(time);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ scenarySizeXTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_startTextFieldActionPerformed
+
+ private void traceAgentRadioButtonActionPerformed(java.awt.event.ActionEven
t evt) {//GEN-FIRST:event_traceAgentRadioButtonActionPerformed
+
+ MainFrame.getTcl().setTraceAgent(traceAgentRadioButton.isSelected());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_traceAgentRadioButtonActionPerformed
+
+ private void traceRouteRadioButtonActionPerformed(java.awt.event.ActionEven
t evt) {//GEN-FIRST:event_traceRouteRadioButtonActionPerformed
+
+ MainFrame.getTcl().setTraceRoute(traceRouteRadioButton.isSelected());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_traceRouteRadioButtonActionPerformed
+
+
+ private void traceMacRadioButtonActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_traceMacRadioButtonActionPerformed
+ MainFrame.getTcl().setTraceMac(traceMacRadioButton.isSelected());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_traceMacRadioButtonActionPerformed
+
+ private void traceFileNameTextFieldActionPerformed(java.awt.event.ActionEve
nt evt) {//GEN-FIRST:event_traceFileNameTextFieldActionPerformed
+
+ MainFrame.getTcl().setTraceFileName(traceFileNameTextField.getText());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_traceFileNameTextFieldActionPerformed
+
+ private void traceFileCheckBoxActionPerformed(java.awt.event.ActionEvent ev
t) {//GEN-FIRST:event_traceFileCheckBoxActionPerformed
+
+ MainFrame.getTcl().setTraceFile(traceFileCheckBox.isSelected());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_traceFileCheckBoxActionPerformed
+
+ private void scenarySizeYTextFieldActionPerformed(java.awt.event.ActionEven
t evt) {//GEN-FIRST:event_scenarySizeYTextFieldActionPerformed
+
+ int size = 0;
+ String s = scenarySizeYTextField.getText();
+ if (s.length() != 0) {
+ try {
+ size = Integer.parseInt(s);
+ MainFrame.getTcl().setScenarioY(size);
+ } catch (NumberFormatException nfe) {
+ scenarySizeXTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_scenarySizeYTextFieldActionPerformed
+
+ private void scenarySizeXTextFieldActionPerformed(java.awt.event.ActionEven
t evt) {//GEN-FIRST:event_scenarySizeXTextFieldActionPerformed
+
+ int size = 0;
+ String s = scenarySizeXTextField.getText();
+ if (s.length() != 0) {
+ try {
+ size = Integer.parseInt(s);
+ MainFrame.getTcl().setScenarioX(size);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ scenarySizeXTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_scenarySizeXTextFieldActionPerformed
+
+ private void batteryComboBoxActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_batteryComboBoxActionPerformed
+
+ MainFrame.getTcl().setBattery((String) batteryComboBox.getSelectedItem(
));
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_batteryComboBoxActionPerformed
+
+ private void ifqLenTextFieldActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_ifqLenTextFieldActionPerformed
+
+ int ifqLen = 0;
+ String s = ifqLenTextField.getText();
+ if (s.length() != 0) {
+ try {
+ ifqLen = Integer.parseInt(s);
+ MainFrame.getTcl().setIfqLen(ifqLen);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ ifqLenTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_ifqLenTextFieldActionPerformed
+
+ private void ifqComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//
GEN-FIRST:event_ifqComboBoxActionPerformed
+
+ MainFrame.getTcl().setIfq((String) ifqComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_ifqComboBoxActionPerformed
+
+ private void propagationComboBoxActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_propagationComboBoxActionPerformed
+
+ MainFrame.getTcl().setPropagation((String) propagationComboBox.getSelec
tedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_propagationComboBoxActionPerformed
+
+ private void antennaComboBoxActionPerformed(java.awt.event.ActionEvent evt)
{//GEN-FIRST:event_antennaComboBoxActionPerformed
+
+ MainFrame.getTcl().setAntenna((String) antennaComboBox.getSelectedItem(
));
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_antennaComboBoxActionPerformed
+
+ private void phyComboBoxActionPerformed(java.awt.event.ActionEvent evt) {//
GEN-FIRST:event_phyComboBoxActionPerformed
+
+ MainFrame.getTcl().setPhyLayer((String) phyComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_phyComboBoxActionPerformed
+
+ private void linkComboBoxActionPerformed(java.awt.event.ActionEvent evt) {/
/GEN-FIRST:event_linkComboBoxActionPerformed
+
+ MainFrame.getTcl().setLinkLayer((String) linkComboBox.getSelectedItem()
);
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_linkComboBoxActionPerformed
+
+ private void macLayerComboBoxActionPerformed(java.awt.event.ActionEvent evt
) {//GEN-FIRST:event_macLayerComboBoxActionPerformed
+
+ MainFrame.getTcl().setMacLayer((String) macLayerComboBox.getSelectedIte
m());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_macLayerComboBoxActionPerformed
+
+ private void routingProtocolComboBoxActionPerformed(java.awt.event.ActionEv
ent evt) {//GEN-FIRST:event_routingProtocolComboBoxActionPerformed
+ String sl = ((String) routingProtocolComboBox.getSelectedItem()).toLower
Case();
+
+ MainFrame.getTcl().setRoutingProtocol((String) routingProtocolComboBox.
getSelectedItem());
+ MainFrame.setXMLSaved(false);
+
+ if (sl.compareTo("leach") == 0) {
+ MainFrame.getTcl().setAccessPointApplication("Application/Access
PointApp/AccessPointLeachApp");
+ MainFrame.getTcl().setCommonNodeApplication("Application/SensorB
aseApp/CommonNodeApp/LeachApp");
+ MainFrame.mainFrame.getClusterHeadConfButton().setEnabled(false)
;
+ }
+ else if (sl.compareTo("dd") == 0 || sl.compareTo("directed diffusion")
== 0 ||
+ sl.compareTo("directeddiffusion") == 0) {
+ MainFrame.getTcl().setAccessPointApplication("Application/Access
PointDiffApp");
+ MainFrame.getTcl().setCommonNodeApplication("Application/SensorB
aseApp/CommonNodeDiffApp");
+ MainFrame.mainFrame.getClusterHeadConfButton().setEnabled(false)
;
+ }
+ else {
+ MainFrame.mainFrame.getClusterHeadConfButton().setEnabled(true);
+ }
+ }//GEN-LAST:event_routingProtocolComboBoxActionPerformed
+
+ private void transportComboBoxActionPerformed(java.awt.event.ActionEvent ev
t) {//GEN-FIRST:event_transportComboBoxActionPerformed
+
+ MainFrame.getTcl().setTransportProtocol((String)transportComboBox.getSe
lectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_transportComboBoxActionPerformed
+
+
+ private void setTraceFileNameTextField(String s) {
+ traceFileNameTextField.setText(s);
+ }
+
+ private void setTraceFileCheckBox(boolean b) {
+ traceFileCheckBox.setSelected(b);
+ }
+
+ private void setScenarySizeYTextField(String s) {
+ scenarySizeYTextField.setText(s);
+ }
+
+ private void setScenarySizeXTextField(String s) {
+ scenarySizeXTextField.setText(s);
+ }
+
+ private void setBatteryComboBox(String s) {
+ batteryComboBox.addItem(s);
+ batteryComboBox.setSelectedItem(s);
+ }
+
+ private void setIfqLenTextField(String s) {
+ ifqLenTextField.setText(s);
+ }
+
+ private void setIfqComboBox(String s) {
+ ifqComboBox.addItem(s);
+ ifqComboBox.setSelectedItem(s);
+ }
+
+ private void setPropagationComboBox(String s) {
+ propagationComboBox.addItem(s);
+ propagationComboBox.setSelectedItem(s);
+ }
+
+ private void setAntennaComboBox(String s) {
+ antennaComboBox.addItem(s);
+ antennaComboBox.setSelectedItem(s);
+ }
+
+ private void setPhyComboBox(String s) {
+ phyComboBox.addItem(s);
+ phyComboBox.setSelectedItem(s);
+ }
+
+ private void setLinkComboBox(String s) {
+ linkComboBox.addItem(s);
+ linkComboBox.setSelectedItem(s);
+ }
+
+ private void setMacLayerComboBox(String s) {
+ macLayerComboBox.addItem(s);
+ macLayerComboBox.setSelectedItem(s);
+ }
+
+ private void setRoutingProtocolComboBox(String s) {
+ routingProtocolComboBox.addItem(s);
+ routingProtocolComboBox.setSelectedItem(s);
+ }
+
+ private void setTransportComboBox(String s) {
+ transportComboBox.addItem(s);
+ transportComboBox.setSelectedItem(s);
+ }
+
+ private void setTraceMacRadioButton(boolean b){
+ traceMacRadioButton.setSelected(b);
+ }
+
+ private void setTraceRouteRadioButton(boolean b){
+ traceRouteRadioButton.setSelected(b);
+ }
+
+ private void setTraceAgentRadioButton(boolean b){
+ traceAgentRadioButton.setSelected(b);
+ }
+
+ private void setStartTextField(String s) {
+ startTextField.setText(s);
+ }
+
+ private void setStopTextField(String s) {
+ stopTextField.setText(s);
+ }
+
+ public void updateFields(TclFields tcl){
+ setTransportComboBox(tcl.getTransportProtocol());
+ setRoutingProtocolComboBox(tcl.getRoutingProtocol());
+ setMacLayerComboBox(tcl.getMacLayer());
+ setLinkComboBox(tcl.getLinkLayer());
+ setPhyComboBox(tcl.getPhyLayer());
+ setAntennaComboBox(tcl.getAntenna());
+ setPropagationComboBox(tcl.getPropagation());
+ setIfqComboBox(tcl.getIfq());
+ setIfqLenTextField(String.valueOf(tcl.getIfqLen()));
+ setBatteryComboBox(tcl.getBattery());
+ setScenarySizeXTextField(String.valueOf(tcl.getScenarioX()));
+ setScenarySizeYTextField(String.valueOf(tcl.getScenarioY()));
+ setTraceFileNameTextField(tcl.getTraceFileName());
+ setTraceFileCheckBox(tcl.isTraceFile());
+ setTraceMacRadioButton(tcl.isTraceMac());
+ setTraceRouteRadioButton(tcl.isTraceRoute());
+ setTraceAgentRadioButton(tcl.isTraceAgent());
+ setStartTextField(String.valueOf(tcl.getSimulationStart()));
+ setStopTextField(String.valueOf(tcl.getSimulationStop()));
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JComboBox antennaComboBox;
+ private javax.swing.JLabel antennaLabel;
+ private javax.swing.JComboBox batteryComboBox;
+ private javax.swing.JLabel batteryLabel;
+ private javax.swing.ButtonGroup buttonGroup1;
+ private javax.swing.JLabel channelTypeLabel;
+ private javax.swing.JTextField channelTypeTextField;
+ private javax.swing.JComboBox ifqComboBox;
+ private javax.swing.JLabel ifqLabel;
+ private javax.swing.JLabel ifqLenLabel;
+ private javax.swing.JTextField ifqLenTextField;
+ private javax.swing.JComboBox linkComboBox;
+ private javax.swing.JLabel linkLabel;
+ private javax.swing.JLabel macLabel;
+ private javax.swing.JComboBox macLayerComboBox;
+ private javax.swing.JLabel metersLabel1;
+ private javax.swing.JLabel metersLabel2;
+ private javax.swing.JComboBox phyComboBox;
+ private javax.swing.JLabel phyLabel;
+ private javax.swing.JComboBox propagationComboBox;
+ private javax.swing.JLabel propagationLabel;
+ private javax.swing.JComboBox routingProtocolComboBox;
+ private javax.swing.JLabel routingProtocolLabel;
+ private javax.swing.JLabel scenarySizeLenLabel;
+ private javax.swing.JTextField scenarySizeXTextField;
+ private javax.swing.JTextField scenarySizeYTextField;
+ private javax.swing.JLabel simulationTimeLabel;
+ private javax.swing.JLabel startLabel;
+ private javax.swing.JTextField startTextField;
+ private javax.swing.JLabel stopLabel;
+ private javax.swing.JTextField stopTextField;
+ private javax.swing.JRadioButton traceAgentRadioButton;
+ private javax.swing.JCheckBox traceFileCheckBox;
+ private javax.swing.JTextField traceFileNameTextField;
+ private javax.swing.JLabel traceLabel;
+ private javax.swing.JRadioButton traceMacRadioButton;
+ private javax.swing.JRadioButton traceRouteRadioButton;
+ private javax.swing.JComboBox transportComboBox;
+ private javax.swing.JLabel transportLabel;
+ private javax.swing.JLabel xLabel;
+ // End of variables declaration//GEN-END:variables
+
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$10.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorToo
l/gui/ClusterHeadConfPanel$10.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$10.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$10.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$10java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/C
fPanel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$10;actionPerformed(L
event/ActionEvent;)Vgui/ClusterHeadConfPanel access$9
 9(Lgui/ClusterHeadConfPanel;Ljava/a
wt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+¹

+
A *´+¸±
+¼»   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$11.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorToo
l/gui/ClusterHeadConfPanel$11.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$11.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$11.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$11java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/C
fPanel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$11;actionPerformed(L
event/ActionEvent;)Vgui/ClusterHeadConfPanel access$109(Lgui/ClusterHeadConfPanel;Ljav
a/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+Ä

+
A *´+¸±
+ÇÆ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$12.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorToo
l/gui/ClusterHeadConfPanel$12.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$12.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$12.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/ClusterHeadConfPanel$12java/awt/event/FocusAdapterthis$0Lgui/ClusterHeadConfPane
Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$12; focusLost(L
t/event/FocusEvent;)Vgui/ClusterHeadConfPanel access$118(Lgui/ClusterHeadConfPa
nel;Ljava/awt/event/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+É

+
+A *´+¸±
+ÌË   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$1.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$1.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$1.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$1.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$1java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Cl
Panel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$1;actionPerformed(Lj
vent/ActionEvent;)Vgui/ClusterHeadConfPanelaccess$0
 9(Lgui/ClusterHeadConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+5

+
A *´+¸±
+87   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$2.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$2.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$2.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$2.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$2java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Cl
Panel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$2;actionPerformed(Lj
vent/ActionEvent;)Vgui/ClusterHeadConfPanelaccess$1
 9(Lgui/ClusterHeadConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+E

+
A *´+¸±
+HG   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$3.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$3.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$3.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$3.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/ClusterHeadConfPanel$3java/awt/event/FocusAdapterthis$0Lgui/ClusterHeadConfPanel
c<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$3; focusLost(L
FocusEvent;)Vgui/ClusterHeadConfPanel
access$2
 8(Lgui/ClusterHeadConfPanel;Ljava/awt/even
t/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+J

+
+A *´+¸±
+ML   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$4.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$4.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$4.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$4.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$4java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Cl
Panel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$4;actionPerformed(Lj
vent/ActionEvent;)Vgui/ClusterHeadConfPanelaccess$3
 9(Lgui/ClusterHeadConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+_

+
A *´+¸±
+ba   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$5.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$5.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$5.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$5.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/ClusterHeadConfPanel$5java/awt/event/FocusAdapterthis$0Lgui/ClusterHeadConfPanel
c<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$5; focusLost(L
FocusEvent;)Vgui/ClusterHeadConfPanel
access$4
 8(Lgui/ClusterHeadConfPanel;Ljava/awt/even
t/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+d

+
+A *´+¸±
+gf   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$6.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$6.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$6.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$6.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$6java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Cl
Panel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$6;actionPerformed(Lj
vent/ActionEvent;)Vgui/ClusterHeadConfPanelaccess$5
 9(Lgui/ClusterHeadConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+y

+
A *´+¸±
+|{   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$7.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$7.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$7.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$7.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$7java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Cl
Panel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$7;actionPerformed(Lj
vent/ActionEvent;)Vgui/ClusterHeadConfPanelaccess$6
 9(Lgui/ClusterHeadConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$8.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$8.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$8.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$8.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/ClusterHeadConfPanel$8java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Cl
Panel; Synthetic<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$8;actionPerformed(Lj
vent/ActionEvent;)Vgui/ClusterHeadConfPanelaccess$7
 9(Lgui/ClusterHeadConfPanel;Ljava/aw
t/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+¢¡   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel$9.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/ClusterHeadConfPanel$9.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el$9.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel$9.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/ClusterHeadConfPanel$9java/awt/event/FocusAdapterthis$0Lgui/ClusterHeadConfPanel
c<init>(Lgui/ClusterHeadConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel$9; focusLost(L
FocusEvent;)Vgui/ClusterHeadConfPanel
access$8
 8(Lgui/ClusterHeadConfPanel;Ljava/awt/even
t/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileClusterHeadConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+¤

+
+A *´+¸±
+§¦   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/g
ui/ClusterHeadConfPanel.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,106 @@
+Êþº¾.Àgui/ClusterHeadConfPaneljavax/swing/JPanelclusterHeadApplicationComboBoxLjavax/swing
sterHeadApplicationLabelLjavax/swing/JLabel;clusterHeadApplicationLabel1clusterHeadDis
sIntervalLabel clusterHeadDissIntervalTextFieldLjavax/swing/JTextField;lusterHeadDis
sTypeComboBoxclusterHeadDissTypeLabelclusterHeadEnergyLabelclusterHeadEnergyTextFieldlu
sterHeadLocationComboBoxclusterHeadLocationLabelclusterHeadNumberLabelclusterHeadNumbe
rTextFieldclusterHeadProcessingComboBoxclusterHeadPtLabel%clusterHeadTransmissionRang
eTextFieldjoulesLabel
secondsLabel <init>()VCode
secondsLabel1

+initComponents
 
+!LineNumberTableLocalVariableTablethisLgui/ClusterHeadConfPanel;javax/swing/JComboBox'
+(
 *javax/swing/JLabel,
+-
 /javax/swing/JTextField1
+2

4
 6
 8

:
 <
 >
 @
 B
 D
 F
 H

J

+ L
 N
 P

R
 T setLayout(Ljava/awt/LayoutManager;)V
VW
+Xjava/awt/ColorZ(III)V
\
+[]
setBackground (Ljava/awt/Color;)V
_`
java/awt/Font
+a cAriale(Ljava/lang/String;II)V
g
+dhsetFont(Ljava/awt/Font;)V
jk
+(l javax/swing/DefaultComboBoxModelnjava/lang/Stringp"Application/ClusterHeadApplicat
ion r([Ljava/lang/Object;)V
t
+osetModel
u (Ljavax/swing/ComboBoxModel;)V
wx
+(ygui/ClusterHeadConfPanel$1{(Lgui/ClusterHeadConfPanel;)V
}
+|~addActionListener"(Ljava/awt/event/ActionListener;)V
 
+( add*(Ljava/awt/Component;)Ljava/awt/Component;
 
+  setBounds(IIII)V
 
+(
+-lCLUSTER HEAD NUMBER: setText(Ljava/lang/String;)V
 
+-
+-
+2l0
+2 gui/ClusterHeadConfPanel$2
+ ~
+2 gui/ClusterHeadConfPanel$3
+ ~ addFocusListener!(Ljava/awt/event/FocusListener;)V
  
+2¡
+2 CLUSTER HEAD LOCATION:¤INITIAL ENERGY: ¦1000¨gui/ClusterHeadConfPanel$4ª
+«~gui/ClusterHeadConfPanel$5
+®~Joules°CLUSTER HEAD APPLICATION:²RANDOM´GRID¶gui/ClusterHeadConfPanel$6¸
+¹~TRANSMISSION RANGE:»DISSEMINATION TYPE:½
+Continuous¿
+ProgrammedÁ On DemandÃsetSelectedIndex(I)V
ÅÆ
+(Çgui/ClusterHeadConfPanel$7É
+Ê~secondsÌ2Î0gui/ClusterHeadConfPanel$8Ð
+Ñ~gui/ClusterHeadConfPanel$9Ó
+Ô~DISSEMINATION INTERVAL:ÖPROCESSING TYPE:ØProcessing/AggregateProcessing
Úgui/ClusterHeadConf
$10Ü
+Ý~70ßgui/ClusterHeadConfPanel$11á
+â~gui/ClusterHeadConfPanel$12ä
+å~metersç)clusterHeadDissIntervalTextFieldFocusLost(Ljava/awt/event/FocusEvent;)Vjava/awt/e
vent/FocusEventë getSource()Ljava/lang/Object;
íî
+ìïgetText()Ljava/lang/String;
ñò
+2ólength()I
õö
+q÷java/lang/DoubleùparseDouble(Ljava/lang/String;)D
ûü
gui/MainFrame
+úý ÿgetTcl()Lgui/TclFields;

+
gui/TclFields setClusterHeadDissInterval(D)V

+ 
requestFocus

+2
java/lang/NumberFormatExceptionevtLjava/awt/event/FocusEvent; textFieldcontentLjava/lang/
tring;auxDnfe!Ljava/lang/NumberFormatException;.clusterHeadTransmissionRangeTextFieldFoc
usLostsetClusterHeadTransmissionRange

+#clusterHeadEnergyTextFieldFocusLostsetClusterHeadEnergy

+#clusterHeadNumberTextFieldFocusLostjava/lang/IntegerparseInt
" (Ljava/lang/String;)I
$%
+#&setClusterHeadNumber
(Æ
+)I)clusterHeadNumberTextFieldActionPerformed(Ljava/awt/event/ActionEvent;)V
+getToolkit()Ljava/awt/Toolkit;
./
+0java/awt/Toolkit2beep
4
+35setXMLSaved(Z)V
78
+9Ljava/awt/event/ActionEvent;s*clusterHeadLocationComboBoxActionPerformedgetSelectedIte
m
>î
+(?setClusterHeadLocation
A
+B)clusterHeadEnergyTextFieldActionPerformed-clusterHeadApplicationComboBoxActionPerf
ormedsetClusterHeadApplication
F
+G,clusterHeadProcessingComboBoxActionPerformedsetClusterHeadProcessingType
J
+K4clusterHeadTransmissionRangeTextFieldActionPerformed*clusterHeadDissTypeComboBoxAc
tionPerformedsetClusterHeadDissType
O
+P/clusterHeadDissIntervalTextFieldActionPerformedsetClusterHeadLocationComboBoxaddItem(Lj
ava/lang/Object;)V
TU
+(VsetSelectedItem
XU
+(YsetClusterHeadNumberTextFieldsetClusterHeadEnergyTextField!setClusterHeadApplicatio
nComboBox setClusterHeadProcessingComboBox(setClusterHeadTransmissionRangeTextFiel
dsetClusterHeadDissTypeComboBox#setClusterHeadDissIntervalTextField
updateFields(Lgui/TclFields;)VgetClusterHeadLocation
dò
+e
S
+ggetClusterHeadNumber
iö
+jvalueOf(I)Ljava/lang/String;
lm
+qn
[
+pgetClusterHeadEnergy()D
rs
+t(D)Ljava/lang/String;
lv
+qw
\
+ygetClusterHeadApplication
{ò
+|
]
+~getClusterHeadProcessingType
 ò
+
^
+ g etClusterHeadTransmissionRange
 s
+
_
+ g etClusterHeadDissType
 ò
+
`
+ g etClusterHeadDissInterval
 s
+
a
+ t clLgui/TclFields;
access$0
 9(Lgui/ClusterHeadConfPanel;Ljava/awt/event/ActionEvent;)V
Synthetic
E-
+access$1
 
,-
+access$2
  8(Lgui/ClusterHeadConfPanel;Ljava/awt/event/FocusEvent;)V
!ê
+access$3
 
D-
+access$4
£

+access$5
¦
=-
+access$6
©
N-
+access$7
¬
R-
+access$8
‾
éê
+access$9
²
I-
+µ access$10
M-
+¸ access$11

+»
+SourceFileClusterHeadConfPanel.java
InnerClasses!   
+
  
  
 
#;  *—*—"±$#
— ¸7¹F¿OÀ%a&ÂtÏÃí*»
}Ä(Y—
É Ï) ¤µÐ+*»
¶ÒÉ-Y—
ÓÒÔ.ÛµÕ0*»
ì×$2Y—
 3µ5*»-Y—.µ7*»-Y—.µ9*»2Y—3µ;*»-Y—.µ=*»-Y—.µ?*»(Y—)µA*»-Y—.
í%&éê¬,+¶ðÀ2M,¶ôN-¶ø -¸þ9¸¶
+§Þ%ß%%#àÛÚ"'á+ä:$,>¶,%&$,
ܱ
'ë%êì%¬%#,+¶
é± íèç"'îð+Àñ2M,¶
$>,%ôN-¶
&$, ø - ¸þ9¸¶§ :,¶
'ø%êù%¬%#,+¶
ö± úõô"'ûð+Àþ2M,¶
$>,%ôN-¶
&$, ø - ¸þ9¸¶ § :,¶
'+'%!$%ê>#¬,"+¶
%± %&$,ðÀ
 2M,¶ôN-¶ø - ¸'6¸¶*§ :,¶
¸+:'± ,-³#5*=*´5¶ôN-¶ø "-¸'=¸¶*§:*¶1¶6*´5¶
+
+ ")04$45%&5;3+
¸+:+± <#"#=#-*Q¸*´A¶@Àq¶C¸:±# !$%&;D-¶8I*´;¶ô:¶ø #¸þI¸(¶ §:*¶1¶6*´;¶
¸+:%± &#'#)#**#+%,,-3071$48%&8;6-<%E-Q¸*´+¶@Àq¶H¸:±#567$%&;I-Q¸*´Q¶@Àq¶L¸:±#;<=$%&;M-¶8I*´S¶ô:¶ø #¸
+ABCEF#G%H,I3L7M$48%&8;6-<%N-Q¸*´G¶@Àq¶Q¸:±#QRS$%&;R-¶8I*´K¶ô:¶ø #¸þI¸(¶
¸+§:± :#*¶##1¶*6*´K¶
+WXY[\#]%^,_3b7c$48%&8;6-<%S M*´A+¶W*´A+¶Z±#kjl$%&<[ A *´5+¶ ±#
+op$ %& <\ A  *´;+¶ ±#
+st$ %& <] M *´++¶W*´++¶Z±#xwy$%&<^ M *´Q+¶W*´Q+¶Z±#}|~$%&<_ A *´S+¶ ±#
+ $  %& <` M *´G+¶W*´G+¶Z±#  $%&<a A  *´K+¶ ±#
$+ $  & *+—¡%±&#¢$  &*+— <b¤c¡±#M*+¶
#¥$ f—&*h+—
*+¶§k±#¸óo—¨$q*+¶
 &*u+—
¸ªx±
—#z«$*+¶
  &}*—+—*+¶
±#O—®$*+¶
 &*¸
+—x—°±#*+¶
U±$ — &**+¶
+—³±¸#xٗ´$±#& *+—¶±#9—$  &
|  « ®¹ÊÑÔÝâå
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel.form ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gu
i/ClusterHeadConfPanel.form
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el.form 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel.form 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,317 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.0" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.bean
info.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean
" value="false"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integ
er" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value
="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" va
lue="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,
115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,6
5,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,
100,116,104,120,112,0,0,1,124,0,0,2,70"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout
">
+ <Property name="useNullLayout" type="boolean" value="true"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JComboBox" name="clusterHeadApplicationComboB
ox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Application/ClusterHeadApplication"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadApplicationC
omboBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="140" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadNumberLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="CLUSTER HEAD NUMBE
R: "/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="20" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="clusterHeadNumberTextField"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="0"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadNumberTextFi
eldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="clusterHeadNumberTextFieldFocus
Lost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="20" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadLocationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="CLUSTER HEAD LOCAT
ION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="60" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadEnergyLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="INITIAL ENERGY:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="100" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="clusterHeadEnergyTextField"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="1000"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadEnergyTextFi
eldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="clusterHeadEnergyTextFieldFocus
Lost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="100" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="joulesLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Joules"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="100" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadApplicationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="CLUSTER HEAD APPLI
CATION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="140" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="clusterHeadLocationComboBox"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="2">
+ <StringItem index="0" value="RANDOM"/>
+ <StringItem index="1" value="GRID"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadLocationComb
oBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="60" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadPtLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="TRANSMISSION RANGE
:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="220" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadDissTypeLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DISSEMINATION TYPE
: "/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="260" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="clusterHeadDissTypeComboBox"
>
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="3">
+ <StringItem index="0" value="Continuous"/>
+ <StringItem index="1" value="Programmed"/>
+ <StringItem index="2" value="On Demand"/>
+ </StringArray>
+ </Property>
+ <Property name="selectedIndex" type="int" value="1"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadDissTypeComb
oBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="260" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="secondsLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="seconds"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="440" y="300" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="clusterHeadDissIntervalText
Field">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="20"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadDissInterval
TextFieldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="clusterHeadDissIntervalTextFiel
dFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="300" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadDissIntervalLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DISSEMINATION INTE
RVAL:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="300" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="clusterHeadApplicationLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="PROCESSING TYPE:"/
>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="180" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="clusterHeadProcessingComboBo
x">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Processing/AggregateProcessing"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadProcessingCo
mboBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="180" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="clusterHeadTransmissionRang
eTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="70"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="clusterHeadTransmission
RangeTextFieldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="clusterHeadTransmissionRangeTex
tFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="220" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="secondsLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="meters"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="220" width="-1" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+</Form>
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHead
ConfPanel.java ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gu
i/ClusterHeadConfPanel.java
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHeadConfPan
el.java 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ClusterHe
adConfPanel.java 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,431 @@
+/*
+ * ClusterHeadConfPanel.java
+ *
+ * Created on 25 de Novembro de 2005, 10:59
+ */
+
+package gui;
+
+/**
+ *
+ * @author Helen Peters
+ */
+public class ClusterHeadConfPanel extends javax.swing.JPanel {
+
+ /** Creates new form ClusterHeadConfPanel */
+ public ClusterHeadConfPanel() {
+ initComponents();
+ }
+
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGI
N:initComponents
+ private void initComponents() {
+ clusterHeadApplicationComboBox = new javax.swing.JComboBox();
+ clusterHeadNumberLabel = new javax.swing.JLabel();
+ clusterHeadNumberTextField = new javax.swing.JTextField();
+ clusterHeadLocationLabel = new javax.swing.JLabel();
+ clusterHeadEnergyLabel = new javax.swing.JLabel();
+ clusterHeadEnergyTextField = new javax.swing.JTextField();
+ joulesLabel = new javax.swing.JLabel();
+ clusterHeadApplicationLabel = new javax.swing.JLabel();
+ clusterHeadLocationComboBox = new javax.swing.JComboBox();
+ clusterHeadPtLabel = new javax.swing.JLabel();
+ clusterHeadDissTypeLabel = new javax.swing.JLabel();
+ clusterHeadDissTypeComboBox = new javax.swing.JComboBox();
+ secondsLabel = new javax.swing.JLabel();
+ clusterHeadDissIntervalTextField = new javax.swing.JTextField();
+ clusterHeadDissIntervalLabel = new javax.swing.JLabel();
+ clusterHeadApplicationLabel1 = new javax.swing.JLabel();
+ clusterHeadProcessingComboBox = new javax.swing.JComboBox();
+ clusterHeadTransmissionRangeTextField = new javax.swing.JTextField();
+ secondsLabel1 = new javax.swing.JLabel();
+
+ setLayout(null);
+
+ setBackground(new java.awt.Color(240, 238, 231));
+ clusterHeadApplicationComboBox.setFont(new java.awt.Font("Arial", 0, 11
));
+ clusterHeadApplicationComboBox.setModel(new javax.swing.DefaultComboBox
Model(new String[] { "Application/ClusterHeadApplication" }));
+ clusterHeadApplicationComboBox.addActionListener(new java.awt.event.Act
ionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadApplicationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(clusterHeadApplicationComboBox);
+ clusterHeadApplicationComboBox.setBounds(210, 140, 270, 22);
+
+ clusterHeadNumberLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadNumberLabel.setText("CLUSTER HEAD NUMBER: ");
+ add(clusterHeadNumberLabel);
+ clusterHeadNumberLabel.setBounds(20, 20, 128, 14);
+
+ clusterHeadNumberTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadNumberTextField.setText("0");
+ clusterHeadNumberTextField.addActionListener(new java.awt.event.ActionL
istener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadNumberTextFieldActionPerformed(evt);
+ }
+ });
+ clusterHeadNumberTextField.addFocusListener(new java.awt.event.FocusAda
pter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ clusterHeadNumberTextFieldFocusLost(evt);
+ }
+ });
+
+ add(clusterHeadNumberTextField);
+ clusterHeadNumberTextField.setBounds(210, 20, 270, 19);
+
+ clusterHeadLocationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadLocationLabel.setText("CLUSTER HEAD LOCATION:");
+ add(clusterHeadLocationLabel);
+ clusterHeadLocationLabel.setBounds(20, 60, 135, 14);
+
+ clusterHeadEnergyLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadEnergyLabel.setText("INITIAL ENERGY:");
+ add(clusterHeadEnergyLabel);
+ clusterHeadEnergyLabel.setBounds(20, 100, 81, 14);
+
+ clusterHeadEnergyTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadEnergyTextField.setText("1000");
+ clusterHeadEnergyTextField.addActionListener(new java.awt.event.ActionL
istener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadEnergyTextFieldActionPerformed(evt);
+ }
+ });
+ clusterHeadEnergyTextField.addFocusListener(new java.awt.event.FocusAda
pter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ clusterHeadEnergyTextFieldFocusLost(evt);
+ }
+ });
+
+ add(clusterHeadEnergyTextField);
+ clusterHeadEnergyTextField.setBounds(210, 100, 220, 19);
+
+ joulesLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ joulesLabel.setText("Joules");
+ add(joulesLabel);
+ joulesLabel.setBounds(450, 100, 31, 20);
+
+ clusterHeadApplicationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadApplicationLabel.setText("CLUSTER HEAD APPLICATION:");
+ add(clusterHeadApplicationLabel);
+ clusterHeadApplicationLabel.setBounds(20, 140, 149, 14);
+
+ clusterHeadLocationComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadLocationComboBox.setModel(new javax.swing.DefaultComboBoxMod
el(new String[] { "RANDOM", "GRID" }));
+ clusterHeadLocationComboBox.addActionListener(new java.awt.event.Action
Listener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadLocationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(clusterHeadLocationComboBox);
+ clusterHeadLocationComboBox.setBounds(210, 60, 270, 22);
+
+ clusterHeadPtLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadPtLabel.setText("TRANSMISSION RANGE:");
+ add(clusterHeadPtLabel);
+ clusterHeadPtLabel.setBounds(20, 220, 118, 14);
+
+ clusterHeadDissTypeLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadDissTypeLabel.setText("DISSEMINATION TYPE: ");
+ add(clusterHeadDissTypeLabel);
+ clusterHeadDissTypeLabel.setBounds(20, 260, 112, 14);
+
+ clusterHeadDissTypeComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ clusterHeadDissTypeComboBox.setModel(new javax.swing.DefaultComboBoxMod
el(new String[] { "Continuous", "Programmed", "On Demand" }));
+ clusterHeadDissTypeComboBox.setSelectedIndex(1);
+ clusterHeadDissTypeComboBox.addActionListener(new java.awt.event.Action
Listener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadDissTypeComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(clusterHeadDissTypeComboBox);
+ clusterHeadDissTypeComboBox.setBounds(210, 260, 270, 22);
+
+ secondsLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ secondsLabel.setText("seconds");
+ add(secondsLabel);
+ secondsLabel.setBounds(440, 300, 42, 20);
+
+ clusterHeadDissIntervalTextField.setFont(new java.awt.Font("Arial", 0,
11));
+ clusterHeadDissIntervalTextField.setText("20");
+ clusterHeadDissIntervalTextField.addActionListener(new java.awt.event.A
ctionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadDissIntervalTextFieldActionPerformed(evt);
+ }
+ });
+ clusterHeadDissIntervalTextField.addFocusListener(new java.awt.event.Fo
cusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ clusterHeadDissIntervalTextFieldFocusLost(evt);
+ }
+ });
+
+ add(clusterHeadDissIntervalTextField);
+ clusterHeadDissIntervalTextField.setBounds(210, 300, 220, 19);
+
+ clusterHeadDissIntervalLabel.setFont(new java.awt.Font("Arial", 0, 11))
;
+ clusterHeadDissIntervalLabel.setText("DISSEMINATION INTERVAL:");
+ add(clusterHeadDissIntervalLabel);
+ clusterHeadDissIntervalLabel.setBounds(20, 300, 133, 14);
+
+ clusterHeadApplicationLabel1.setFont(new java.awt.Font("Arial", 0, 11))
;
+ clusterHeadApplicationLabel1.setText("PROCESSING TYPE:");
+ add(clusterHeadApplicationLabel1);
+ clusterHeadApplicationLabel1.setBounds(20, 180, 97, 14);
+
+ clusterHeadProcessingComboBox.setFont(new java.awt.Font("Arial", 0, 11)
);
+ clusterHeadProcessingComboBox.setModel(new javax.swing.DefaultComboBoxM
odel(new String[] { "Processing/AggregateProcessing" }));
+ clusterHeadProcessingComboBox.addActionListener(new java.awt.event.Acti
onListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadProcessingComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(clusterHeadProcessingComboBox);
+ clusterHeadProcessingComboBox.setBounds(210, 180, 270, 22);
+
+ clusterHeadTransmissionRangeTextField.setFont(new java.awt.Font("Arial"
, 0, 11));
+ clusterHeadTransmissionRangeTextField.setText("70");
+ clusterHeadTransmissionRangeTextField.addActionListener(new java.awt.ev
ent.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ clusterHeadTransmissionRangeTextFieldActionPerformed(evt);
+ }
+ });
+ clusterHeadTransmissionRangeTextField.addFocusListener(new java.awt.eve
nt.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ clusterHeadTransmissionRangeTextFieldFocusLost(evt);
+ }
+ });
+
+ add(clusterHeadTransmissionRangeTextField);
+ clusterHeadTransmissionRangeTextField.setBounds(210, 220, 220, 19);
+
+ secondsLabel1.setFont(new java.awt.Font("Arial", 0, 11));
+ secondsLabel1.setText("meters");
+ add(secondsLabel1);
+ secondsLabel1.setBounds(450, 220, 33, 20);
+
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void clusterHeadDissIntervalTextFieldFocusLost(java.awt.event.Focus
Event evt) {//GEN-FIRST:event_clusterHeadDissIntervalTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setClusterHeadDissInterval(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_clusterHeadDissIntervalTextFieldFocusLost
+
+ private void clusterHeadTransmissionRangeTextFieldFocusLost(java.awt.event.
FocusEvent evt) {//GEN-FIRST:event_clusterHeadTransmissionRangeTextFieldFocusLos
t
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setClusterHeadTransmissionRange(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_clusterHeadTransmissionRangeTextFieldFocusLost
+
+ private void clusterHeadEnergyTextFieldFocusLost(java.awt.event.FocusEvent
evt) {//GEN-FIRST:event_clusterHeadEnergyTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setClusterHeadEnergy(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_clusterHeadEnergyTextFieldFocusLost
+
+ private void clusterHeadNumberTextFieldFocusLost(java.awt.event.FocusEvent
evt) {//GEN-FIRST:event_clusterHeadNumberTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ int aux = Integer.parseInt(content);
+ MainFrame.getTcl().setClusterHeadNumber(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_clusterHeadNumberTextFieldFocusLost
+
+ private void clusterHeadNumberTextFieldActionPerformed(java.awt.event.Actio
nEvent evt) {//GEN-FIRST:event_clusterHeadNumberTextFieldActionPerformed
+
+ int aux = 0;
+ String s = clusterHeadNumberTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Integer.parseInt(s);
+ MainFrame.getTcl().setClusterHeadNumber(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ clusterHeadNumberTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadNumberTextFieldActionPerformed
+
+ private void clusterHeadLocationComboBoxActionPerformed(java.awt.event.Acti
onEvent evt) {//GEN-FIRST:event_clusterHeadLocationComboBoxActionPerformed
+
+ MainFrame.getTcl().setClusterHeadLocation((String)clusterHeadLocationCo
mboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadLocationComboBoxActionPerformed
+
+ private void clusterHeadEnergyTextFieldActionPerformed(java.awt.event.Actio
nEvent evt) {//GEN-FIRST:event_clusterHeadEnergyTextFieldActionPerformed
+
+ double aux = 0;
+ String s = clusterHeadEnergyTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setClusterHeadEnergy(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ clusterHeadEnergyTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadEnergyTextFieldActionPerformed
+
+ private void clusterHeadApplicationComboBoxActionPerformed(java.awt.event.A
ctionEvent evt) {//GEN-FIRST:event_clusterHeadApplicationComboBoxActionPerformed
+
+ MainFrame.getTcl().setClusterHeadApplication((String)clusterHeadApplica
tionComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadApplicationComboBoxActionPerformed
+
+ private void clusterHeadProcessingComboBoxActionPerformed(java.awt.event.Ac
tionEvent evt) {//GEN-FIRST:event_clusterHeadProcessingComboBoxActionPerformed
+
+ MainFrame.getTcl().setClusterHeadProcessingType((String)clusterHeadProc
essingComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadProcessingComboBoxActionPerformed
+
+ private void clusterHeadTransmissionRangeTextFieldActionPerformed(java.awt.
event.ActionEvent evt) {//GEN-FIRST:event_clusterHeadTransmissionRangeTextFieldA
ctionPerformed
+
+ double aux = 0;
+ String s = clusterHeadTransmissionRangeTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setClusterHeadTransmissionRange(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ clusterHeadTransmissionRangeTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadTransmissionRangeTextFieldActionPerformed
+
+ private void clusterHeadDissTypeComboBoxActionPerformed(java.awt.event.Acti
onEvent evt) {//GEN-FIRST:event_clusterHeadDissTypeComboBoxActionPerformed
+
+ MainFrame.getTcl().setClusterHeadDissType((String)clusterHeadDissTypeCo
mboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadDissTypeComboBoxActionPerformed
+
+ private void clusterHeadDissIntervalTextFieldActionPerformed(java.awt.event
.ActionEvent evt) {//GEN-FIRST:event_clusterHeadDissIntervalTextFieldActionPerfo
rmed
+
+ double aux = 0;
+ String s = clusterHeadDissIntervalTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setClusterHeadDissInterval(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ clusterHeadDissIntervalTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_clusterHeadDissIntervalTextFieldActionPerformed
+
+
+
+
+
+ private void setClusterHeadLocationComboBox(String s) {
+ clusterHeadLocationComboBox.addItem(s);
+ clusterHeadLocationComboBox.setSelectedItem(s);
+ }
+
+ private void setClusterHeadNumberTextField(String s) {
+ clusterHeadNumberTextField.setText(s);
+ }
+
+ private void setClusterHeadEnergyTextField(String s) {
+ clusterHeadEnergyTextField.setText(s);
+ }
+
+ private void setClusterHeadApplicationComboBox(String s) {
+ clusterHeadApplicationComboBox.addItem(s);
+ clusterHeadApplicationComboBox.setSelectedItem(s);
+ }
+
+ private void setClusterHeadProcessingComboBox(String s) {
+ clusterHeadProcessingComboBox.addItem(s);
+ clusterHeadProcessingComboBox.setSelectedItem(s);
+ }
+
+ private void setClusterHeadTransmissionRangeTextField(String s) {
+ clusterHeadTransmissionRangeTextField.setText(s);
+ }
+
+ private void setClusterHeadDissTypeComboBox(String s) {
+ clusterHeadDissTypeComboBox.addItem(s);
+ clusterHeadDissTypeComboBox.setSelectedItem(s);
+ }
+
+ private void setClusterHeadDissIntervalTextField(String s) {
+ clusterHeadDissIntervalTextField.setText(s);
+ }
+
+
+ public void updateFields(TclFields tcl){
+ setClusterHeadLocationComboBox(tcl.getClusterHeadLocation());
+ setClusterHeadNumberTextField(String.valueOf(tcl.getClusterHeadNumber()
));
+ setClusterHeadEnergyTextField(String.valueOf(tcl.getClusterHeadEnergy()
));
+ setClusterHeadApplicationComboBox(tcl.getClusterHeadApplication());
+ setClusterHeadProcessingComboBox(tcl.getClusterHeadProcessingType());
+ setClusterHeadTransmissionRangeTextField(String.valueOf(tcl.getClusterH
eadTransmissionRange()));
+ setClusterHeadDissTypeComboBox(tcl.getClusterHeadDissType());
+ setClusterHeadDissIntervalTextField(String.valueOf(tcl.getClusterHeadDi
ssInterval()));
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JComboBox clusterHeadApplicationComboBox;
+ private javax.swing.JLabel clusterHeadApplicationLabel;
+ private javax.swing.JLabel clusterHeadApplicationLabel1;
+ private javax.swing.JLabel clusterHeadDissIntervalLabel;
+ private javax.swing.JTextField clusterHeadDissIntervalTextField;
+ private javax.swing.JComboBox clusterHeadDissTypeComboBox;
+ private javax.swing.JLabel clusterHeadDissTypeLabel;
+ private javax.swing.JLabel clusterHeadEnergyLabel;
+ private javax.swing.JTextField clusterHeadEnergyTextField;
+ private javax.swing.JComboBox clusterHeadLocationComboBox;
+ private javax.swing.JLabel clusterHeadLocationLabel;
+ private javax.swing.JLabel clusterHeadNumberLabel;
+ private javax.swing.JTextField clusterHeadNumberTextField;
+ private javax.swing.JComboBox clusterHeadProcessingComboBox;
+ private javax.swing.JLabel clusterHeadPtLabel;
+ private javax.swing.JTextField clusterHeadTransmissionRangeTextField;
+ private javax.swing.JLabel joulesLabel;
+ private javax.swing.JLabel secondsLabel;
+ private javax.swing.JLabel secondsLabel1;
+ // End of variables declaration//GEN-END:variables
+
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$10.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$10.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$10.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$10.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$10java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$10;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanelaccess$9
 8(Lgui/CommonNodeConfPanel;Ljava/awt/
event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+Å

+
A *´+¸±
+ÈÇ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$11.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$11.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$11.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$11.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$11java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$11;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$108(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+Ú

+
A *´+¸±
+ÝÜ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$12.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$12.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$12.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$12.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$12java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$12;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$118(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+å

+
A *´+¸±
+èç   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$13.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$13.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$13.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$13.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$13java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$13; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel access$127(Lgui/CommonNodeConfPanel;Ljava/awt/eve
nt/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+ê

+
+A *´+¸±
+íì   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$14.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$14.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$14.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$14.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$14java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$14;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$138(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ÿ

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$15.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$15.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$15.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$15.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$15java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$15;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$148(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$16.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$16.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$16.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$16.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$16java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$16; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel access$157(Lgui/CommonNodeConfPanel;Ljava/awt/eve
nt/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+

+
+A *´+¸±
+ !   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$17.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$17.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$17.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$17.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$17java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$17;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$168(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+)

+
A *´+¸±
++,   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$18.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$18.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$18.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$18.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$18java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$18; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel access$177(Lgui/CommonNodeConfPanel;Ljava/awt/eve
nt/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+.

+
+A *´+¸±
+01   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$19.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$19.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$19.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$19.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$19java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$19;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$188(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+9

+
A *´+¸±
+;<   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$1.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$1.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$1.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$1.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$1java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Com
nel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$1;actionPerformed(Lja
ent/ActionEvent;)Vgui/CommonNodeConfPanel access$0
 8(Lgui/CommonNodeConfPanel;Ljava/awt/e
vent/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+A

+
A *´+¸±
+DC   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$20.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$20.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$20.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$20.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$20java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$20; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel access$197(Lgui/CommonNodeConfPanel;Ljava/awt/eve
nt/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+>

+
+A *´+¸±
+@A   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$21.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$21.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$21.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$21.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$21java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Co
anel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$21;actionPerformed(Lj
vent/ActionEvent;)Vgui/CommonNodeConfPanel access$208(Lgui/CommonNodeConfPanel;Ljava
/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+N

+
A *´+¸±
+PQ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$22.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/CommonNodeConfPanel$22.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$22.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$22.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$22java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$22; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel access$217(Lgui/CommonNodeConfPanel;Ljava/awt/eve
nt/FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+S

+
+A *´+¸±
+UV   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$2.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$2.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$2.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$2.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$2java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Com
nel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$2;actionPerformed(Lja
ent/ActionEvent;)Vgui/CommonNodeConfPanel access$1
 8(Lgui/CommonNodeConfPanel;Ljava/awt/e
vent/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+Q

+
A *´+¸±
+TS   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$3.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$3.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$3.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$3.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$3java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$3; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel
access$2
 7(Lgui/CommonNodeConfPanel;Ljava/awt/event/
FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+V

+
+A *´+¸±
+YX   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$4.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$4.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$4.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$4.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$4java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Com
nel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$4;actionPerformed(Lja
ent/ActionEvent;)Vgui/CommonNodeConfPanel access$3
 8(Lgui/CommonNodeConfPanel;Ljava/awt/e
vent/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+k

+
A *´+¸±
+nm   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$5.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$5.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$5.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$5.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$5java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$5; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel
access$4
 7(Lgui/CommonNodeConfPanel;Ljava/awt/event/
FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+p

+
+A *´+¸±
+sr   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$6.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$6.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$6.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$6.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$6java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Com
nel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$6;actionPerformed(Lja
ent/ActionEvent;)Vgui/CommonNodeConfPanel access$5
 8(Lgui/CommonNodeConfPanel;Ljava/awt/e
vent/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$7.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$7.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$7.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$7.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$7java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Com
nel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$7;actionPerformed(Lja
ent/ActionEvent;)Vgui/CommonNodeConfPanel access$6
 8(Lgui/CommonNodeConfPanel;Ljava/awt/e
vent/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+ 

+
A *´+¸±
+    !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$8.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$8.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$8.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$8.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/CommonNodeConfPanel$8java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/Com
nel; Synthetic<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$8;actionPerformed(Lja
ent/ActionEvent;)Vgui/CommonNodeConfPanel access$7
 8(Lgui/CommonNodeConfPanel;Ljava/awt/e
vent/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+
8
+*—*+µ±
+«

+
A *´+¸±
+®   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel$9.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/CommonNodeConfPanel$9.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l$9.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel$9.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/CommonNodeConfPanel$9java/awt/event/FocusAdapterthis$0Lgui/CommonNodeConfPanel;
c<init>(Lgui/CommonNodeConfPanel;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel$9; focusLost(L
FocusEvent;)Vgui/CommonNodeConfPanel
access$8
 7(Lgui/CommonNodeConfPanel;Ljava/awt/event/
FocusEvent;)V

+evtLjava/awt/event/FocusEvent;
+SourceFileCommonNodeConfPanel.java
InnerClasses0  
+8
*+µ±
+*—
+°

+
+A *´+¸±
+³²   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gu
i/CommonNodeConfPanel.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,158 @@
+Êþº¾.|gui/CommonNodeConfPaneljavax/swing/JPanelaverageDataLabelLjavax/swing/JLabel;commonN
onComboBoxLjavax/swing/JComboBox;commonNodeApplicationLabelommonNodeApplicationLabel1o
mmonNodeDissIntervalLabelcommonNodeDissIntervalLabel1commonNodeDissIntervalTextFieldLj
avax/swing/JTextField;commonNodeDissTypeComboBoxcommonNodeDissTypeLabelcommonNodeDissT
ypeLabel1commonNodeEnergyLabelcommonNodeEnergyTextFieldcommonNodeLocationComboBoxcommonN
odeLocationLabelcommonNodeNumberLabelcommonNodeNumberTextField commonNodeProcessingTy
peComboBox"commonNodeSensingIntervalTextFieldcommonNodeSensingTypeComboBox commonNod
eTransmissionRangeLabel$commonNodeTransmissionRangeTextFielddataAverageTextFielddataG
eneratorTypeComboBoxdataGeneratorTypeLabeldeviationLabeldeviationTextFieldjoulesLabel
maxDataLabelmaxDataTextFieldmetersLabel
secondsLabel <init>()VCode
secondsLabel1
()
++initComponents
-)
+.LineNumberTableLocalVariableTablethisLgui/CommonNodeConfPanel;javax/swing/JComboBox4
+5+
 7javax/swing/JLabel9
+:+
 <javax/swing/JTextField>
+?+
 A
 C
 E
 G
" I
  K
 M
 O
 Q
 S
& U
 W
 Y

+ [
 ]
 _

 a
 c
 e
' g
 i
 k
  m
 o
# q
 s
! u
$ w
% y
 { setLayout(Ljava/awt/LayoutManager;)V
}~
+ j ava/awt/Color (III)V
(
+  
setBackground (Ljava/awt/Color;)V
 
+ 
java/awt/Font  A rial ( Ljava/lang/String;II)V
(
+  s etFont(Ljava/awt/Font;)V
 
+5  javax/swing/DefaultComboBoxModel java/lang/String  Application/ComonNodeApplication ( [Lj
ang/Object;)V
(
+ setModel
  (Ljavax/swing/ComboBoxModel;)V
 
+5 gui/CommonNodeConfPanel$1¢(Lgui/CommonNodeConfPanel;)V
(¤
+£¥addActionListener"(Ljava/awt/event/ActionListener;)V
§¨
+5©add*(Ljava/awt/Component;)Ljava/awt/Component;
«¬
+ setBounds(IIII)V
‾°
+5±
+: COMMON NODE NUMBER:´setText(Ljava/lang/String;)V
¶—
+:¸
+:±
+? 1¼
+?¸gui/CommonNodeConfPanel$2¿
+À¥
+?©gui/CommonNodeConfPanel$3Ã
+Ä¥addFocusListener!(Ljava/awt/event/FocusListener;)V
ÆÇ
+?È
+?±COMMON NODE LOCATION:ËINITIAL ENERGY: Í1000Ïgui/CommonNodeConfPanel$4Ñ
+Ò¥gui/CommonNodeConfPanel$5Ô
+Õ¥Joules×COMMON NODE APPLICATION: ÙRANDOMÛGRID Ýgui/CommonNodeConfPanel$6ß
+à¥TRANSMISSION RANGE:âDISSEMINATION TYPE:ä
+Continuousæ
+Programmedè On DemandêsetSelectedIndex(I)V
ìí
+5îgui/CommonNodeConfPanel$7ð
+ñ¥secondsó2õ0gui/CommonNodeConfPanel$8÷
+ø¥gui/CommonNodeConfPanel$9ú
+û¥DISSEMINATION INTERVAL:ýPROCESSING TYPE:ÿProcessing/AggregateProcessing gui/CommonNodeConfPa
+¥SENSING TYPE:SENSING INTERVAL: gui/CommonNodeConfPanel$11
+
g+ui/CommonNodeConfPanel$12
¥5 
+¥gui/CommonNodeConfPanel$13
+¥DATA GENERATOR TYPE:TemperatureDataGenerator CarbonMonoxideDataGeneratorgui/CommonNodeConfPan
+¥DATA STANDARD DEVIATION:DATA AVERAGE VALUE:  MAXIMUM DATA VALUE:"25$gui/CommonNodeConfPanel$15
+'¥gui/CommonNodeConfPanel$16)
+*¥gui/CommonNodeConfPanel$17,
+-¥gui/CommonNodeConfPanel$18/
+0¥302gui/CommonNodeConfPanel$194
+5¥gui/CommonNodeConfPanel$207
+8¥meters:5<0gui/CommonNodeConfPanel$21>
+?¥gui/CommonNodeConfPanel$22A
+B¥maxDataTextFieldFocusLost(Ljava/awt/event/FocusEvent;)Vjava/awt/event/FocusEventF
getSource()Ljava/lang/Object;
HI
+GJgetText()Ljava/lang/String;
LM
+?Nlength()I
PQ
+ R java/lang/DoubleTparseDouble(Ljava/lang/String;)D
VW
gui/MainFrame
+UX ZgetTcl()Lgui/TclFields;
\]
gui/TclFields
+[^ `setCommonNodeMaximumData(D)V
bc
+ad
requestFocus
f)
+?gjava/lang/NumberFormatExceptionievtLjava/awt/event/FocusEvent; textFieldcontentLja
tring;auxDnfe!Ljava/lang/NumberFormatException;deviationTextFieldFocusLostsetCommonNodeData
Deviation
uc
+avdataAverageTextFieldFocusLostsetCommonNodeDataAverage
yc
+az+commonNodeSensingIntervalTextFieldFocusLostsetCommonNodeSensingInterval
}c
+a~(commonNodeDissIntervalTextFieldFocusLostsetCommonNodeDissInterval
 c
+a -commonNodeTransmissionRangeTextFieldFocusLostsetCommonNodeTransmissionRange
 c
+a "commonNodeEnergyTextFieldFocusLostsetCommonNodeEnergy
 c
+a "commonNodeNumberTextFieldFocusLostjava/lang/IntegerparseInt
  (Ljava/lang/String;)I
 
+  s etCommonNodeNumber
 í
+a I3commonNodeTransmissionRangeTextFieldActionPerformed(Ljava/awt/event/ActionEvent;)V
+getToolkit()Ljava/awt/Toolkit;
 
+ j ava/awt/Toolkit b eep
 )
+   setXMLSaved(Z)V
¢£
+[¤Ljava/awt/event/ActionEvent;s(commonNodeNumberTextFieldActionPerformed)commonNodeLocati
onComboBoxActionPerformedgetSelectedItem
ªI
+5«setCommonNodeLocation
—
+a®(commonNodeEnergyTextFieldActionPerformed,commonNodeApplicationComboBoxActionPerfor
medsetCommonNodeApplication
²—
+a³/commonNodeProcessingTypeComboBoxActionPerformedsetCommonNodeProcessingType
¶—
+a—)commonNodeDissTypeComboBoxActionPerformedsetCommonNodeDissType
º—
+a».commonNodeDissIntervalTextFieldActionPerformed,commonNodeSensingTypeComboBoxAction
PerformedsetCommonNodeSensingType
¿—
+aÀ1commonNodeSensingIntervalTextFieldActionPerformed(dataGeneratorTypeComboBoxActionP
erformedsetCommonNodeDataGeneratorType
Ä—
+aÅ#dataAverageTextFieldActionPerformed!deviationTextFieldActionPerformedmaxDataTextFiel
dActionPerformed'setCommonNodeTransmissionRangeTextFieldsetCommonNodeNumberTextFiel
dsetCommonNodeLocationComboBoxaddItem(Ljava/lang/Object;)V
ÍÎ
+5ÏsetSelectedItem
ÑÎ
+5ÒsetCommonNodeEnergyTextField setCommonNodeApplicationComboBox#setCommonNodeProcessin
gTypeComboBoxsetCommonNodeDissTypeComboBox"setCommonNodeDissIntervalTextField setCom
monNodeSensingTypeComboBox%setCommonNodeSensingIntervalTextField&setCommonNodeData
GeneratorTypeComboBox!setCommonNodeDataAverageTextFieldsetCommonNodeDeviationTextFi
eldsetCommonNodeMaxDataTextField
updateFields(Lgui/TclFields;)VgetCommonNodeTransmissionRange()D
áâ
+aãvalueOf(D)Ljava/lang/String;
åæ
+ ç
Ê—
+égetCommonNodeNumber
ëQ
+aì(I)Ljava/lang/String;
åî
+ ï
Ë—
+ñgetCommonNodeLocation
óM
+aô
Ì—
+ögetCommonNodeEnergy
øâ
+aù
Ô—
+ûgetCommonNodeApplication
ýM
+aþ
Õ—
+getCommonNodeProcessingType
M
+a
Ö—
+getCommonNodeDissType
M
+a
×—
+
+getCommonNodeDissInterval


+a
Ø—
+getCommonNodeSensingType
M
+a
Ù—
+getCommonNodeSensingInterval

+a
Ú—
+getCommonNodeDataGeneratorType
M
+a&(Ljava/lang/Object;)Ljava/lang/String;
å
+ 
Û—
+!getCommonNodeDataAverage
#â
+a$
Ü—
+&getCommonNodeDataDeviation
(â
+a)
Ý—
++getCommonNodeMaximumData
-â
+a.
Þ—
+0tclLgui/TclFields;
access$0
 8(Lgui/CommonNodeConfPanel;Ljava/awt/event/ActionEvent;)V
Synthetic
±
+access$1
7
¨
+access$2
: 7(Lgui/CommonNodeConfPanel;Ljava/awt/event/FocusEvent;)V
 E
+access$3
>
°
+access$4
A
 E
+access$5
D
©
+access$6
G
¹
+access$7
J
½
+access$8
M
 E
+access$9
P
µ
+S access$10
¾
+V access$11
Â
+Y access$12
|E
+\ access$13
Ã
+_ access$14
Ç
+b access$15
xE
+e access$16
È
+h access$17
tE
+k access$18
É
+n access$19
DE
+q access$20
 
+t access$21
 E
+w
+SourceFileCommonNodeConfPanel.java
InnerClasses!  
+
 !"#$%&'=()*; *—,*—/±10
 23-)*
+
*»5Y—6µ8*»:Y—;µ=*»?Y—@µB*»:Y—;µD*»:Y—;µF*»?Y—@µH*»:Y—;µJ*»:Y—;µL*»5Y—6µN*»:Y—;µP*»:Y—;µR*»5
¶ª**´d¶®W*´dÒT¶²*´f» Y —  ¶»*´f¶¾*´f»Y*—¶Â*´f»Y*—¶É**´f¶®W*´fÒ|ܶÊ*´h» Y — ¶³*´hô¶¹**´h¶®W*´
+
#$Àÿ%Ò'å(ï)þ. 5
6
-
F
Y
c
l
|
¨
4— (7 ;8 E9 T> cD lE ~G H I ¤J
+\1

+
¼n‾¢{a2o¾±¤}pc3p¿²¥~qdD%qE'À³¦re*r'¬sÁ´§f,+|xt+¶
ÄE—ªvi*1K¶>¬À8,?+¶
M,¶
I2*´
3,K|kO˦
N-¶
$l?M,¶
Om:¶SSON-¶
-#¸ ¸Y9
YSI¸
¸-__¶¸(¶
Ye9
§6¸§
_:¶:*{w,§¶h±
¶¡%%*´
j|:
0¶,"h_¶¸h`±
¥±%#%#jj00»º"®¡ zyml*
+ÈÉÊÌÍ#Î%Ï,Ð3Ó7Ô148238k¦6pq-§o%rs¨ * ³5=*´B¶ON-¶S "-¸ =¸_¶ §:*¶ ¶¡*´B¶h¸¥±  j0*
+ØÙ
+ÚÜÝ Þ"ß)à0ã4ä145235k¦3p 
++§o"rs© *Q¸_*´N¶¬À ¶‾¸¥±0èéê123k¦° *¶8I*´H¶O:¶S #¸YI¸_(¶ §:*¶ ¶¡*´H¶h¸¥±##j0*
+îïðòó#ô%õ,ö3ù7ú148238k¦6pq-§o%rs± * Q¸_*´8¶¬À ¶´¸¥±0þÿ123k¦µ *Q¸_*´^¶¬À ¶¸¸¥±0123k¦¹ *Q¸_*´
+
123k¦½ * ¶8I*´X¶O:¶S #¸YI¸_(¶ §:*¶ ¶¡*´X¶h¸¥±##j0*
+#%,37148238k¦6pq-§o%rs¾ *Q¸_*´d¶¬À ¶Á¸¥±0 !"123k¦Â *¶8I*´f¶O:¶S #¸YI¸_(¶ §:*¶ ¶¡*´f¶h¸¥±##
+&'(*+#,%-,.3172148238k¦6pq-§o%rsà * Q¸_*´l¶¬À ¶Æ¸¥±0678123k¦Ç * ¶8I*´t¶O:¶S # ¸YI¸_(¶{§:*¶ ¶¡
+<=>@A#B%C,D3G7H148238k¦6pq-§o%rsÈ * ¶8I*´v¶O:¶S #¸YI¸_(¶w§:*¶ ¶¡*´v¶h¸¥±##j0*
+LMNPQ#R%S,T3W7X148238k¦6pq-§o%rsÉ * ¶8I*´x¶O:¶S #¸YI¸_(¶e§:*¶ ¶¡*´x¶h¸¥±##j0*
+\]^`a#b%c,d3g7h148238k¦6pq-§o%rsÊ—*A *´|+¶¾±0
+kl1 23 §oË—*A *´B+¶¾±0
+op1 23 §oÌ—*M*´N+¶Ð*´N+¶Ó±0tsu123§oÔ—*A *´H+¶¾±0
+xy1 23 §oÕ—*M*´8+¶Ð*´8+¶Ó±0}|~123§oÖ—*M*´^+¶Ð*´^+¶Ó±0  1 23§o×—*M*´T+¶Ð*´T+¶Ó±0  123
+ 1  23 §oÙ—*M*´d+¶Ð*´d+¶Ó±0  123§oÚ—*A *´f+¶¾±0
+ 1  23 §oÛ—*M*´l+¶Ð*´l+¶Ó±0  123§oÜ—*A *´t+¶¾±0
+ 1  23 §oÝ—*A *´v+¶¾±0
+¢¡1 23 §oÞ—*A *´x+¶¾±0
+¦¥1 23 §oßà*ø *+¶ä¸è—ê*+¶í¸ð—ò*+¶õ—÷*+¶ú¸è—ü*+¶ÿ—*+¶—*+¶ —*+¶¸è—*+¶—*+¶¸è—*+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel.form ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui
/CommonNodeConfPanel.form
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l.form 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel.form 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,519 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.0" type="org.netbeans.modules.form.forminfo.JPanelFormInfo">
+ <Properties>
+ <Property name="background" type="java.awt.Color" editor="org.netbeans.bean
info.editors.ColorEditor">
+ <Color blue="e7" green="ee" red="f0" type="rgb"/>
+ </Property>
+ </Properties>
+ <AuxValues>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean
" value="false"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integ
er" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value
="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" va
lue="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,
115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,6
5,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,
100,116,104,120,112,0,0,2,80,0,0,2,74"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout
">
+ <Property name="useNullLayout" type="boolean" value="true"/>
+ </Layout>
+ <SubComponents>
+ <Component class="javax.swing.JComboBox" name="commonNodeApplicationComboBo
x">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Application/ComonNodeApplication"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeApplicationCo
mboBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="140" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeNumberLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="COMMON NODE NUMBE
R: "/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="20" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="commonNodeNumberTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="1"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeNumberTextFie
ldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="commonNodeNumberTextFieldFocusL
ost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="20" width="250" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeLocationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="COMMON NODE LOCAT
ION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="60" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeEnergyLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="INITIAL ENERGY:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="100" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="commonNodeEnergyTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="1000"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeEnergyTextFie
ldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="commonNodeEnergyTextFieldFocusL
ost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="100" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="joulesLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="Joules"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="100" width="40" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeApplicationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="COMMON NODE APPL
ICATION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="140" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="commonNodeLocationComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="2">
+ <StringItem index="0" value="RANDOM"/>
+ <StringItem index="1" value="GRID"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeLocationCombo
BoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="60" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeTransmissionRangeLabe
l">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="TRANSMISSION RANGE
:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="220" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeDissTypeLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DISSEMINATION TYPE
: "/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="260" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="commonNodeDissTypeComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="3">
+ <StringItem index="0" value="Continuous"/>
+ <StringItem index="1" value="Programmed"/>
+ <StringItem index="2" value="On Demand"/>
+ </StringArray>
+ </Property>
+ <Property name="selectedIndex" type="int" value="1"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeDissTypeCombo
BoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="260" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="secondsLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="seconds"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="440" y="300" width="50" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="commonNodeDissIntervalTextF
ield">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="20"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeDissIntervalT
extFieldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="commonNodeDissIntervalTextField
FocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="300" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeDissIntervalLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DISSEMINATION INTE
RVAL:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="300" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeApplicationLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="PROCESSING TYPE:"/
>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="180" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="commonNodeProcessingTypeComb
oBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="1">
+ <StringItem index="0" value="Processing/AggregateProcessing"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeProcessingTyp
eComboBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="180" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeDissTypeLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="SENSING TYPE: "/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="340" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="commonNodeDissIntervalLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="SENSING INTERVAL:"
/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="380" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="commonNodeSensingTypeComboBo
x">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="3">
+ <StringItem index="0" value="Continuous"/>
+ <StringItem index="1" value="Programmed"/>
+ <StringItem index="2" value="On Demand"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeSensingTypeCo
mboBoxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="340" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="commonNodeSensingIntervalTe
xtField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="5"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeSensingInterv
alTextFieldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="commonNodeSensingIntervalTextFi
eldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="380" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="secondsLabel1">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="seconds"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="440" y="380" width="50" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="dataGeneratorTypeLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DATA GENERATOR TYP
E:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="420" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JComboBox" name="dataGeneratorTypeComboBox">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="model" type="javax.swing.ComboBoxModel" editor="org.net
beans.modules.form.editors2.ComboBoxModelEditor">
+ <StringArray count="2">
+ <StringItem index="0" value="TemperatureDataGenerator"/>
+ <StringItem index="1" value="CarbonMonoxideDataGenerator"/>
+ </StringArray>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="dataGeneratorTypeComboB
oxActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="420" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="deviationLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DATA STANDARD DEVI
ATION:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="500" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="averageDataLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="DATA AVERAGE VALUE
:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="460" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="maxDataLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="MAXIMUM DATA VALUE
:"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="20" y="540" width="-1" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="dataAverageTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="25"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="dataAverageTextFieldAct
ionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="dataAverageTextFieldFocusLost"/
>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="460" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="deviationTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="5"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="deviationTextFieldActio
nPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="deviationTextFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="500" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="maxDataTextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="30"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="maxDataTextFieldActionP
erformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="maxDataTextFieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="540" width="270" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JLabel" name="metersLabel">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="meters"/>
+ </Properties>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="450" y="220" width="40" height="20"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ <Component class="javax.swing.JTextField" name="commonNodeTransmissionRange
TextField">
+ <Properties>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="11" style="0"/>
+ </Property>
+ <Property name="text" type="java.lang.String" value="50"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="commonNodeTransmissionR
angeTextFieldActionPerformed"/>
+ <EventHandler event="focusLost" listener="java.awt.event.FocusListener"
parameters="java.awt.event.FocusEvent" handler="commonNodeTransmissionRangeText
FieldFocusLost"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsolut
eLayout$AbsoluteConstraintsDescription">
+ <AbsoluteConstraints x="210" y="220" width="220" height="-1"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+</Form>
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeC
onfPanel.java ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui
/CommonNodeConfPanel.java
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNodeConfPane
l.java 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/CommonNod
eConfPanel.java 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,733 @@
+/*
+ * ConfPanel.java
+ *
+ * Created on 25 de Novembro de 2005, 10:59
+ */
+
+package gui;
+
+/**
+ *
+ * @author Helen Peters
+ */
+public class CommonNodeConfPanel extends javax.swing.JPanel {
+
+ /** Creates new form ConfPanel */
+ public CommonNodeConfPanel() {
+ initComponents();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGI
N:initComponents
+ private void initComponents() {
+ commonNodeApplicationComboBox = new javax.swing.JComboBox();
+ commonNodeNumberLabel = new javax.swing.JLabel();
+ commonNodeNumberTextField = new javax.swing.JTextField();
+ commonNodeLocationLabel = new javax.swing.JLabel();
+ commonNodeEnergyLabel = new javax.swing.JLabel();
+ commonNodeEnergyTextField = new javax.swing.JTextField();
+ joulesLabel = new javax.swing.JLabel();
+ commonNodeApplicationLabel = new javax.swing.JLabel();
+ commonNodeLocationComboBox = new javax.swing.JComboBox();
+ commonNodeTransmissionRangeLabel = new javax.swing.JLabel();
+ commonNodeDissTypeLabel = new javax.swing.JLabel();
+ commonNodeDissTypeComboBox = new javax.swing.JComboBox();
+ secondsLabel = new javax.swing.JLabel();
+ commonNodeDissIntervalTextField = new javax.swing.JTextField();
+ commonNodeDissIntervalLabel = new javax.swing.JLabel();
+ commonNodeApplicationLabel1 = new javax.swing.JLabel();
+ commonNodeProcessingTypeComboBox = new javax.swing.JComboBox();
+ commonNodeDissTypeLabel1 = new javax.swing.JLabel();
+ commonNodeDissIntervalLabel1 = new javax.swing.JLabel();
+ commonNodeSensingTypeComboBox = new javax.swing.JComboBox();
+ commonNodeSensingIntervalTextField = new javax.swing.JTextField();
+ secondsLabel1 = new javax.swing.JLabel();
+ dataGeneratorTypeLabel = new javax.swing.JLabel();
+ dataGeneratorTypeComboBox = new javax.swing.JComboBox();
+ deviationLabel = new javax.swing.JLabel();
+ averageDataLabel = new javax.swing.JLabel();
+ maxDataLabel = new javax.swing.JLabel();
+ dataAverageTextField = new javax.swing.JTextField();
+ deviationTextField = new javax.swing.JTextField();
+ maxDataTextField = new javax.swing.JTextField();
+ metersLabel = new javax.swing.JLabel();
+ commonNodeTransmissionRangeTextField = new javax.swing.JTextField();
+
+ setLayout(null);
+
+ setBackground(new java.awt.Color(240, 238, 231));
+ commonNodeApplicationComboBox.setFont(new java.awt.Font("Arial", 0, 11)
);
+ commonNodeApplicationComboBox.setModel(new javax.swing.DefaultComboBoxM
odel(new String[] { "Application/ComonNodeApplication" }));
+ commonNodeApplicationComboBox.addActionListener(new java.awt.event.Acti
onListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeApplicationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(commonNodeApplicationComboBox);
+ commonNodeApplicationComboBox.setBounds(210, 140, 270, 22);
+
+ commonNodeNumberLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeNumberLabel.setText("COMMON NODE NUMBER: ");
+ add(commonNodeNumberLabel);
+ commonNodeNumberLabel.setBounds(20, 20, 131, 14);
+
+ commonNodeNumberTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeNumberTextField.setText("1");
+ commonNodeNumberTextField.addActionListener(new java.awt.event.ActionLi
stener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeNumberTextFieldActionPerformed(evt);
+ }
+ });
+ commonNodeNumberTextField.addFocusListener(new java.awt.event.FocusAdap
ter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ commonNodeNumberTextFieldFocusLost(evt);
+ }
+ });
+
+ add(commonNodeNumberTextField);
+ commonNodeNumberTextField.setBounds(210, 20, 250, 19);
+
+ commonNodeLocationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeLocationLabel.setText("COMMON NODE LOCATION:");
+ add(commonNodeLocationLabel);
+ commonNodeLocationLabel.setBounds(20, 60, 138, 14);
+
+ commonNodeEnergyLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeEnergyLabel.setText("INITIAL ENERGY:");
+ add(commonNodeEnergyLabel);
+ commonNodeEnergyLabel.setBounds(20, 100, 81, 14);
+
+ commonNodeEnergyTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeEnergyTextField.setText("1000");
+ commonNodeEnergyTextField.addActionListener(new java.awt.event.ActionLi
stener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeEnergyTextFieldActionPerformed(evt);
+ }
+ });
+ commonNodeEnergyTextField.addFocusListener(new java.awt.event.FocusAdap
ter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ commonNodeEnergyTextFieldFocusLost(evt);
+ }
+ });
+
+ add(commonNodeEnergyTextField);
+ commonNodeEnergyTextField.setBounds(210, 100, 220, 19);
+
+ joulesLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ joulesLabel.setText("Joules");
+ add(joulesLabel);
+ joulesLabel.setBounds(450, 100, 40, 20);
+
+ commonNodeApplicationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeApplicationLabel.setText("COMMON NODE APPLICATION:");
+ add(commonNodeApplicationLabel);
+ commonNodeApplicationLabel.setBounds(20, 140, 155, 14);
+
+ commonNodeLocationComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeLocationComboBox.setModel(new javax.swing.DefaultComboBoxMode
l(new String[] { "RANDOM", "GRID" }));
+ commonNodeLocationComboBox.addActionListener(new java.awt.event.ActionL
istener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeLocationComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(commonNodeLocationComboBox);
+ commonNodeLocationComboBox.setBounds(210, 60, 270, 22);
+
+ commonNodeTransmissionRangeLabel.setFont(new java.awt.Font("Arial", 0,
11));
+ commonNodeTransmissionRangeLabel.setText("TRANSMISSION RANGE:");
+ add(commonNodeTransmissionRangeLabel);
+ commonNodeTransmissionRangeLabel.setBounds(20, 220, 118, 14);
+
+ commonNodeDissTypeLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeDissTypeLabel.setText("DISSEMINATION TYPE: ");
+ add(commonNodeDissTypeLabel);
+ commonNodeDissTypeLabel.setBounds(20, 260, 112, 14);
+
+ commonNodeDissTypeComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeDissTypeComboBox.setModel(new javax.swing.DefaultComboBoxMode
l(new String[] { "Continuous", "Programmed", "On Demand" }));
+ commonNodeDissTypeComboBox.setSelectedIndex(1);
+ commonNodeDissTypeComboBox.addActionListener(new java.awt.event.ActionL
istener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeDissTypeComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(commonNodeDissTypeComboBox);
+ commonNodeDissTypeComboBox.setBounds(210, 260, 270, 22);
+
+ secondsLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ secondsLabel.setText("seconds");
+ add(secondsLabel);
+ secondsLabel.setBounds(440, 300, 50, 14);
+
+ commonNodeDissIntervalTextField.setFont(new java.awt.Font("Arial", 0, 1
1));
+ commonNodeDissIntervalTextField.setText("20");
+ commonNodeDissIntervalTextField.addActionListener(new java.awt.event.Ac
tionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeDissIntervalTextFieldActionPerformed(evt);
+ }
+ });
+ commonNodeDissIntervalTextField.addFocusListener(new java.awt.event.Foc
usAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ commonNodeDissIntervalTextFieldFocusLost(evt);
+ }
+ });
+
+ add(commonNodeDissIntervalTextField);
+ commonNodeDissIntervalTextField.setBounds(210, 300, 220, 19);
+
+ commonNodeDissIntervalLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeDissIntervalLabel.setText("DISSEMINATION INTERVAL:");
+ add(commonNodeDissIntervalLabel);
+ commonNodeDissIntervalLabel.setBounds(20, 300, 133, 14);
+
+ commonNodeApplicationLabel1.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeApplicationLabel1.setText("PROCESSING TYPE:");
+ add(commonNodeApplicationLabel1);
+ commonNodeApplicationLabel1.setBounds(20, 180, 97, 14);
+
+ commonNodeProcessingTypeComboBox.setFont(new java.awt.Font("Arial", 0,
11));
+ commonNodeProcessingTypeComboBox.setModel(new javax.swing.DefaultComboB
oxModel(new String[] { "Processing/AggregateProcessing" }));
+ commonNodeProcessingTypeComboBox.addActionListener(new java.awt.event.A
ctionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeProcessingTypeComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(commonNodeProcessingTypeComboBox);
+ commonNodeProcessingTypeComboBox.setBounds(210, 180, 270, 22);
+
+ commonNodeDissTypeLabel1.setFont(new java.awt.Font("Arial", 0, 11));
+ commonNodeDissTypeLabel1.setText("SENSING TYPE: ");
+ add(commonNodeDissTypeLabel1);
+ commonNodeDissTypeLabel1.setBounds(20, 340, 79, 14);
+
+ commonNodeDissIntervalLabel1.setFont(new java.awt.Font("Arial", 0, 11))
;
+ commonNodeDissIntervalLabel1.setText("SENSING INTERVAL:");
+ add(commonNodeDissIntervalLabel1);
+ commonNodeDissIntervalLabel1.setBounds(20, 380, 100, 14);
+
+ commonNodeSensingTypeComboBox.setFont(new java.awt.Font("Arial", 0, 11)
);
+ commonNodeSensingTypeComboBox.setModel(new javax.swing.DefaultComboBoxM
odel(new String[] { "Continuous", "Programmed", "On Demand" }));
+ commonNodeSensingTypeComboBox.addActionListener(new java.awt.event.Acti
onListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeSensingTypeComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(commonNodeSensingTypeComboBox);
+ commonNodeSensingTypeComboBox.setBounds(210, 340, 270, 22);
+
+ commonNodeSensingIntervalTextField.setFont(new java.awt.Font("Arial", 0
, 11));
+ commonNodeSensingIntervalTextField.setText("5");
+ commonNodeSensingIntervalTextField.addActionListener(new java.awt.event
.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeSensingIntervalTextFieldActionPerformed(evt);
+ }
+ });
+ commonNodeSensingIntervalTextField.addFocusListener(new java.awt.event.
FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ commonNodeSensingIntervalTextFieldFocusLost(evt);
+ }
+ });
+
+ add(commonNodeSensingIntervalTextField);
+ commonNodeSensingIntervalTextField.setBounds(210, 380, 220, 19);
+
+ secondsLabel1.setFont(new java.awt.Font("Arial", 0, 11));
+ secondsLabel1.setText("seconds");
+ add(secondsLabel1);
+ secondsLabel1.setBounds(440, 380, 50, 20);
+
+ dataGeneratorTypeLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ dataGeneratorTypeLabel.setText("DATA GENERATOR TYPE:");
+ add(dataGeneratorTypeLabel);
+ dataGeneratorTypeLabel.setBounds(20, 420, 127, 14);
+
+ dataGeneratorTypeComboBox.setFont(new java.awt.Font("Arial", 0, 11));
+ dataGeneratorTypeComboBox.setModel(new javax.swing.DefaultComboBoxModel
(new String[] { "TemperatureDataGenerator", "CarbonMonoxideDataGenerator" }));
+ dataGeneratorTypeComboBox.addActionListener(new java.awt.event.ActionLi
stener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ dataGeneratorTypeComboBoxActionPerformed(evt);
+ }
+ });
+
+ add(dataGeneratorTypeComboBox);
+ dataGeneratorTypeComboBox.setBounds(210, 420, 270, 22);
+
+ deviationLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ deviationLabel.setText("DATA STANDARD DEVIATION:");
+ add(deviationLabel);
+ deviationLabel.setBounds(20, 500, 149, 14);
+
+ averageDataLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ averageDataLabel.setText("DATA AVERAGE VALUE:");
+ add(averageDataLabel);
+ averageDataLabel.setBounds(20, 460, 124, 14);
+
+ maxDataLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ maxDataLabel.setText("MAXIMUM DATA VALUE:");
+ add(maxDataLabel);
+ maxDataLabel.setBounds(20, 540, 121, 14);
+
+ dataAverageTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ dataAverageTextField.setText("25");
+ dataAverageTextField.addActionListener(new java.awt.event.ActionListene
r() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ dataAverageTextFieldActionPerformed(evt);
+ }
+ });
+ dataAverageTextField.addFocusListener(new java.awt.event.FocusAdapter()
{
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ dataAverageTextFieldFocusLost(evt);
+ }
+ });
+
+ add(dataAverageTextField);
+ dataAverageTextField.setBounds(210, 460, 270, 19);
+
+ deviationTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ deviationTextField.setText("5");
+ deviationTextField.addActionListener(new java.awt.event.ActionListener(
) {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ deviationTextFieldActionPerformed(evt);
+ }
+ });
+ deviationTextField.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ deviationTextFieldFocusLost(evt);
+ }
+ });
+
+ add(deviationTextField);
+ deviationTextField.setBounds(210, 500, 270, 19);
+
+ maxDataTextField.setFont(new java.awt.Font("Arial", 0, 11));
+ maxDataTextField.setText("30");
+ maxDataTextField.addActionListener(new java.awt.event.ActionListener()
{
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ maxDataTextFieldActionPerformed(evt);
+ }
+ });
+ maxDataTextField.addFocusListener(new java.awt.event.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ maxDataTextFieldFocusLost(evt);
+ }
+ });
+
+ add(maxDataTextField);
+ maxDataTextField.setBounds(210, 540, 270, 19);
+
+ metersLabel.setFont(new java.awt.Font("Arial", 0, 11));
+ metersLabel.setText("meters");
+ add(metersLabel);
+ metersLabel.setBounds(450, 220, 40, 20);
+
+ commonNodeTransmissionRangeTextField.setFont(new java.awt.Font("Arial",
0, 11));
+ commonNodeTransmissionRangeTextField.setText("50");
+ commonNodeTransmissionRangeTextField.addActionListener(new java.awt.eve
nt.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ commonNodeTransmissionRangeTextFieldActionPerformed(evt);
+ }
+ });
+ commonNodeTransmissionRangeTextField.addFocusListener(new java.awt.even
t.FocusAdapter() {
+ public void focusLost(java.awt.event.FocusEvent evt) {
+ commonNodeTransmissionRangeTextFieldFocusLost(evt);
+ }
+ });
+
+ add(commonNodeTransmissionRangeTextField);
+ commonNodeTransmissionRangeTextField.setBounds(210, 220, 220, 19);
+
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void maxDataTextFieldFocusLost(java.awt.event.FocusEvent evt) {//GE
N-FIRST:event_maxDataTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeMaximumData(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_maxDataTextFieldFocusLost
+
+ private void deviationTextFieldFocusLost(java.awt.event.FocusEvent evt) {//
GEN-FIRST:event_deviationTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeDataDeviation(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_deviationTextFieldFocusLost
+
+ private void dataAverageTextFieldFocusLost(java.awt.event.FocusEvent evt) {
//GEN-FIRST:event_dataAverageTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeDataAverage(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_dataAverageTextFieldFocusLost
+
+ private void commonNodeSensingIntervalTextFieldFocusLost(java.awt.event.Foc
usEvent evt) {//GEN-FIRST:event_commonNodeSensingIntervalTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeSensingInterval(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_commonNodeSensingIntervalTextFieldFocusLost
+
+ private void commonNodeDissIntervalTextFieldFocusLost(java.awt.event.FocusE
vent evt) {//GEN-FIRST:event_commonNodeDissIntervalTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeDissInterval(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_commonNodeDissIntervalTextFieldFocusLost
+
+ private void commonNodeTransmissionRangeTextFieldFocusLost(java.awt.event.F
ocusEvent evt) {//GEN-FIRST:event_commonNodeTransmissionRangeTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeTransmissionRange(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_commonNodeTransmissionRangeTextFieldFocusLost
+
+ private void commonNodeEnergyTextFieldFocusLost(java.awt.event.FocusEvent e
vt) {//GEN-FIRST:event_commonNodeEnergyTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ double aux = Double.parseDouble(content);
+ MainFrame.getTcl().setCommonNodeEnergy(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_commonNodeEnergyTextFieldFocusLost
+
+ private void commonNodeNumberTextFieldFocusLost(java.awt.event.FocusEvent e
vt) {//GEN-FIRST:event_commonNodeNumberTextFieldFocusLost
+ javax.swing.JTextField textField = (javax.swing.JTextField) evt.getSo
urce();
+ String content = textField.getText();
+ if (content.length() != 0) {
+ try {
+ int aux = Integer.parseInt(content);
+ MainFrame.getTcl().setCommonNodeNumber(aux);
+ } catch (NumberFormatException nfe) {
+ textField.requestFocus();
+ }
+ }
+ }//GEN-LAST:event_commonNodeNumberTextFieldFocusLost
+
+ private void commonNodeTransmissionRangeTextFieldActionPerformed(java.awt.e
vent.ActionEvent evt) {//GEN-FIRST:event_commonNodeTransmissionRangeTextFieldAct
ionPerformed
+
+ double aux = 0;
+ String s = commonNodeTransmissionRangeTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeTransmissionRange(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ commonNodeTransmissionRangeTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeTransmissionRangeTextFieldActionPerformed
+
+ private void commonNodeNumberTextFieldActionPerformed(java.awt.event.Action
Event evt) {//GEN-FIRST:event_commonNodeNumberTextFieldActionPerformed
+
+ int aux = 0;
+ String s = commonNodeNumberTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Integer.parseInt(s);
+ MainFrame.getTcl().setCommonNodeNumber(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ commonNodeNumberTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeNumberTextFieldActionPerformed
+
+ private void commonNodeLocationComboBoxActionPerformed(java.awt.event.Actio
nEvent evt) {//GEN-FIRST:event_commonNodeLocationComboBoxActionPerformed
+
+ MainFrame.getTcl().setCommonNodeLocation((String) commonNodeLocationCom
boBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeLocationComboBoxActionPerformed
+
+ private void commonNodeEnergyTextFieldActionPerformed(java.awt.event.Action
Event evt) {//GEN-FIRST:event_commonNodeEnergyTextFieldActionPerformed
+
+ double aux = 0;
+ String s = commonNodeEnergyTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeEnergy(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ commonNodeEnergyTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeEnergyTextFieldActionPerformed
+
+ private void commonNodeApplicationComboBoxActionPerformed(java.awt.event.Ac
tionEvent evt) {//GEN-FIRST:event_commonNodeApplicationComboBoxActionPerformed
+
+ MainFrame.getTcl().setCommonNodeApplication((String) commonNodeApplicat
ionComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeApplicationComboBoxActionPerformed
+
+ private void commonNodeProcessingTypeComboBoxActionPerformed(java.awt.event
.ActionEvent evt) {//GEN-FIRST:event_commonNodeProcessingTypeComboBoxActionPerfo
rmed
+
+ MainFrame.getTcl().setCommonNodeProcessingType((String) commonNodeProce
ssingTypeComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeProcessingTypeComboBoxActionPerformed
+
+ private void commonNodeDissTypeComboBoxActionPerformed(java.awt.event.Actio
nEvent evt) {//GEN-FIRST:event_commonNodeDissTypeComboBoxActionPerformed
+
+ MainFrame.getTcl().setCommonNodeDissType((String) commonNodeDissTypeCom
boBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeDissTypeComboBoxActionPerformed
+
+ private void commonNodeDissIntervalTextFieldActionPerformed(java.awt.event.
ActionEvent evt) {//GEN-FIRST:event_commonNodeDissIntervalTextFieldActionPerform
ed
+
+ double aux = 0;
+ String s = commonNodeDissIntervalTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeDissInterval(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ commonNodeDissIntervalTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeDissIntervalTextFieldActionPerformed
+
+ private void commonNodeSensingTypeComboBoxActionPerformed(java.awt.event.Ac
tionEvent evt) {//GEN-FIRST:event_commonNodeSensingTypeComboBoxActionPerformed
+
+ MainFrame.getTcl().setCommonNodeSensingType((String) commonNodeSensingT
ypeComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeSensingTypeComboBoxActionPerformed
+
+ private void commonNodeSensingIntervalTextFieldActionPerformed(java.awt.eve
nt.ActionEvent evt) {//GEN-FIRST:event_commonNodeSensingIntervalTextFieldActionP
erformed
+
+ double aux = 0;
+ String s = commonNodeSensingIntervalTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeSensingInterval(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ commonNodeSensingIntervalTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_commonNodeSensingIntervalTextFieldActionPerformed
+
+ private void dataGeneratorTypeComboBoxActionPerformed(java.awt.event.Action
Event evt) {//GEN-FIRST:event_dataGeneratorTypeComboBoxActionPerformed
+
+ MainFrame.getTcl().setCommonNodeDataGeneratorType((String) dataGenerato
rTypeComboBox.getSelectedItem());
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_dataGeneratorTypeComboBoxActionPerformed
+
+ private void dataAverageTextFieldActionPerformed(java.awt.event.ActionEvent
evt) {//GEN-FIRST:event_dataAverageTextFieldActionPerformed
+
+ double aux = 0;
+ String s = dataAverageTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeDataAverage(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ dataAverageTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_dataAverageTextFieldActionPerformed
+
+ private void deviationTextFieldActionPerformed(java.awt.event.ActionEvent e
vt) {//GEN-FIRST:event_deviationTextFieldActionPerformed
+
+ double aux = 0;
+ String s = deviationTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeDataDeviation(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ deviationTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_deviationTextFieldActionPerformed
+
+ private void maxDataTextFieldActionPerformed(java.awt.event.ActionEvent evt
) {//GEN-FIRST:event_maxDataTextFieldActionPerformed
+
+ double aux = 0;
+ String s = maxDataTextField.getText();
+ if (s.length() != 0) {
+ try {
+ aux = Double.parseDouble(s);
+ MainFrame.getTcl().setCommonNodeMaximumData(aux);
+ } catch (NumberFormatException nfe) {
+ getToolkit().beep();
+ maxDataTextField.requestFocus();
+ }
+ }
+ MainFrame.setXMLSaved(false);
+ }//GEN-LAST:event_maxDataTextFieldActionPerformed
+
+ private void setCommonNodeTransmissionRangeTextField(String s){
+ commonNodeTransmissionRangeTextField.setText(s);
+ }
+
+ private void setCommonNodeNumberTextField(String s){
+ commonNodeNumberTextField.setText(s);
+ }
+
+ private void setCommonNodeLocationComboBox(String s){
+ commonNodeLocationComboBox.addItem(s);
+ commonNodeLocationComboBox.setSelectedItem(s);
+ }
+
+ private void setCommonNodeEnergyTextField(String s){
+ commonNodeEnergyTextField.setText(s);
+ }
+
+ private void setCommonNodeApplicationComboBox(String s){
+ commonNodeApplicationComboBox.addItem(s);
+ commonNodeApplicationComboBox.setSelectedItem(s);
+ }
+
+ private void setCommonNodeProcessingTypeComboBox(String s){
+ commonNodeProcessingTypeComboBox.addItem(s);
+ commonNodeProcessingTypeComboBox.setSelectedItem(s);
+ }
+
+ private void setCommonNodeDissTypeComboBox(String s){
+ commonNodeDissTypeComboBox.addItem(s);
+ commonNodeDissTypeComboBox.setSelectedItem(s);
+ }
+
+ private void setCommonNodeDissIntervalTextField(String s){
+ commonNodeDissIntervalTextField.setText(s);
+ }
+
+ private void setCommonNodeSensingTypeComboBox(String s){
+ commonNodeSensingTypeComboBox.addItem(s);
+ commonNodeSensingTypeComboBox.setSelectedItem(s);
+ }
+
+ private void setCommonNodeSensingIntervalTextField(String s){
+ commonNodeSensingIntervalTextField.setText(s);
+ }
+
+ private void setCommonNodeDataGeneratorTypeComboBox(String s){
+ dataGeneratorTypeComboBox.addItem(s);
+ dataGeneratorTypeComboBox.setSelectedItem(s);
+ }
+
+ private void setCommonNodeDataAverageTextField(String s){
+ dataAverageTextField.setText(s);
+ }
+
+ private void setCommonNodeDeviationTextField(String s){
+ deviationTextField.setText(s);
+ }
+
+ private void setCommonNodeMaxDataTextField(String s){
+ maxDataTextField.setText(s);
+ }
+
+
+ public void updateFields(TclFields tcl){
+ setCommonNodeTransmissionRangeTextField(String.valueOf(tcl.getCommonNod
eTransmissionRange()));
+ setCommonNodeNumberTextField(String.valueOf(tcl.getCommonNodeNumber()))
;
+ setCommonNodeLocationComboBox(tcl.getCommonNodeLocation());
+ setCommonNodeEnergyTextField(String.valueOf(tcl.getCommonNodeEnergy()))
;
+ setCommonNodeApplicationComboBox(tcl.getCommonNodeApplication());
+ setCommonNodeProcessingTypeComboBox(tcl.getCommonNodeProcessingType());
+ setCommonNodeDissTypeComboBox(tcl.getCommonNodeDissType());
+ setCommonNodeDissIntervalTextField(String.valueOf(tcl.getCommonNodeDiss
Interval()));
+ setCommonNodeSensingTypeComboBox(tcl.getCommonNodeSensingType());
+ setCommonNodeSensingIntervalTextField(String.valueOf(tcl.getCommonNodeS
ensingInterval()));
+ setCommonNodeDataGeneratorTypeComboBox(String.valueOf(tcl.getCommonNode
DataGeneratorType()));
+ setCommonNodeDataAverageTextField(String.valueOf(tcl.getCommonNodeDataA
verage()));
+ setCommonNodeDeviationTextField(String.valueOf(tcl.getCommonNodeDataDev
iation()));
+ setCommonNodeMaxDataTextField(String.valueOf(tcl.getCommonNodeMaximumDa
ta()));
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel averageDataLabel;
+ private javax.swing.JComboBox commonNodeApplicationComboBox;
+ private javax.swing.JLabel commonNodeApplicationLabel;
+ private javax.swing.JLabel commonNodeApplicationLabel1;
+ private javax.swing.JLabel commonNodeDissIntervalLabel;
+ private javax.swing.JLabel commonNodeDissIntervalLabel1;
+ private javax.swing.JTextField commonNodeDissIntervalTextField;
+ private javax.swing.JComboBox commonNodeDissTypeComboBox;
+ private javax.swing.JLabel commonNodeDissTypeLabel;
+ private javax.swing.JLabel commonNodeDissTypeLabel1;
+ private javax.swing.JLabel commonNodeEnergyLabel;
+ private javax.swing.JTextField commonNodeEnergyTextField;
+ private javax.swing.JComboBox commonNodeLocationComboBox;
+ private javax.swing.JLabel commonNodeLocationLabel;
+ private javax.swing.JLabel commonNodeNumberLabel;
+ private javax.swing.JTextField commonNodeNumberTextField;
+ private javax.swing.JComboBox commonNodeProcessingTypeComboBox;
+ private javax.swing.JTextField commonNodeSensingIntervalTextField;
+ private javax.swing.JComboBox commonNodeSensingTypeComboBox;
+ private javax.swing.JLabel commonNodeTransmissionRangeLabel;
+ private javax.swing.JTextField commonNodeTransmissionRangeTextField;
+ private javax.swing.JTextField dataAverageTextField;
+ private javax.swing.JComboBox dataGeneratorTypeComboBox;
+ private javax.swing.JLabel dataGeneratorTypeLabel;
+ private javax.swing.JLabel deviationLabel;
+ private javax.swing.JTextField deviationTextField;
+ private javax.swing.JLabel joulesLabel;
+ private javax.swing.JLabel maxDataLabel;
+ private javax.swing.JTextField maxDataTextField;
+ private javax.swing.JLabel metersLabel;
+ private javax.swing.JLabel secondsLabel;
+ private javax.swing.JLabel secondsLabel1;
+ // End of variables declaration//GEN-END:variables
+
+}
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
$1.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/File
JDialog$1.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog$1.clas
s 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og$1.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/FileJDialog$1java/awt/event/WindowAdapterthis$0Lgui/FileJDialog; Synthetic<i
alog;)VCode()V

+
windowClosing
LineNumberTable
(Ljava/awt/event/WindowEvent;)V
LocalVariableTablethis
gui/FileJDialog
Lgui/FileJDialog$1;
access$0
  0(Lgui/FileJDialog;Lj
ava/awt/event/WindowEvent;)V

+evtLjava/awt/event/WindowEvent;
+SourceFileFileJDialog.java
InnerClasses0  
+8
*+µ±
+*—
+E

+
+A *´+¸±
+HG   
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
$2.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/File
JDialog$2.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog$2.clas
s 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og$2.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/FileJDialog$2java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/FileJDialog
c<init>(Lgui/FileJDialog;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/FileJDialog$2;actionPerformed(Ljava/awt/e
onEvent;)Vgui/FileJDialog
access$1
 0(Lgui/FileJDialog;Ljava/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileFileJDialog.java
InnerClasses0  
+
8
+*—*+µ±
+M

+
A *´+¸±
+PO   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJD
ialog.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog.class
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,63 @@
+Êþº¾.gui/FileJDialogjavax/swing/JDialogjfLjavax/swing/JFileChooser;resultIactionPerformedZ
ileReader;brLjava/io/BufferedReader;fwLjava/io/FileWriter;bwLjava/io/BufferedWriter;pwLjava
ConstantValue
rintWriter;OPEN SAVE
 EXPORTSAVE_ASxmlFileNameLjava/lang/String;tclFileNamefileLjava/io/File;
<cli

 '
! )LineNumberTableLocalVariableTable<init>(Ljava/awt/Frame;Z)V
-.
+/initComponents
1%
+2thisLgui/FileJDialog;parentLjava/awt/Frame;modaldisplayFileDialog(I)V
 ;
 =
setXMLFilter(Ljavax/swing/JFileChooser;)V
?@
+Ajavax/swing/JFileChooserCshowOpenDialog(Ljava/awt/Component;)I
EF
+DG
 I
"# K
saveFile (Ljava/io/File;)Z
MN
+OshowSaveDialog
QF
+DRsetCurrentDirectory(Ljava/io/File;)V
TU
+DV
setTCLFilter
X@
+YExport
[
+showDialog)(Ljava/awt/Component;Ljava/lang/String;)I
]^
+D_type
-%
+Dbgui/FileJDialog$1d(Lgui/FileJDialog;)V
-f
+egaddWindowListener"(Ljava/awt/event/WindowListener;)V
ij
+ksetAcceptAllFileFilterUsed(Z)V
mn
java/awt/Font
+Do qArials(Ljava/lang/String;II)V
-u
+rvsetFont(Ljava/awt/Font;)V
xy
+Dzgui/FileJDialog$2|
+}gaddActionListener"(Ljava/awt/event/ActionListener;)V
 
+D getContentPane()Ljava/awt/Container;
 
+ C enter
 java/awt/Container a dd)(Ljava/awt/Component;Ljava/lang/Object;)V
 
+  p ack
 %
+ j fActionPerformed(Ljava/awt/event/ActionEvent;)VgetSelectedFile()Ljava/io/File;
 
+D setFile
 U
+openFile
 
 N
gui/MainFrame
+   s etXMLSaved
 n
+ ¡ 
+exportFile
£N
+¤setActionPerformed
¦n
+§
+setVisible
©n
+ªdispose
¬%
+evtLjava/awt/event/ActionEvent;closeDialog(Ljava/awt/event/WindowEvent;)VLjava/awt/event/
ndowEvent;gui/FileJDialog$XMLFilter´
+µgaddChoosableFileFilter'(Ljavax/swing/filechooser/FileFilter;)V
—¸
+D¹jfcgui/FileJDialog$TCLFilter¼
+½gxml2tcl/Translator¿getTcl()Lgui/TclFields;
ÁÂ
+ Ã (Lgui/TclFields;)V
-Å
+ÀÆopen
ÈU
+ÀÉjava/lang/ExceptionË
+translatorLxml2tcl/Translator;eLjava/lang/Exception;
java/io/FileÑgetAbsolutePath()Ljava/lang/String;
ÓÔ
+ÒÕ.xml×java/lang/StringendsWith
Ù (Ljava/lang/String;)Z
ÛÜ
+ÚÝconcat&(Ljava/lang/String;)Ljava/lang/String;
ßà
+Úásave(Ljava/lang/String;)V
ãä
+Àfilename
å .tclèexport
êä
+ÀëaFile
 
+ îbisActionPerformed()Zaccess$0
 0(Lgui/FileJDialog;Ljava/awt/event/WindowEvent;)V
Synthetic
±²
+access$1
ö 0(Lgui/FileJDialog;Ljava/awt/event/ActionEvent;)V
 
+ú
+SourceFileFileJDialog.java
InnerClasses XMLFilter TCLFilter! 
+ 
       !  
+"$#%&1 ³(³*±+  ,-.&Q*+—0*—3±+
+, 45678
+9>:²&L%¶*Wµ**´
*´ <ª>¦8—B **´
c**´
>*´>—>B¶
**´
SµJ>§
*´*>*´
¶>H—
µZJ**´
§q²>L*´
Æ*²>\L¶
—`Pµ
W§J`±**´
+J $>—
",B#**´
;$>&*´
D'>¶O*SWµ+J§f-Fi²/LÆo0y1 2  3 5  6¬9,451a%& S*»
—w¶{*´>»}Y*—~¶ *¶ *´> ¶ *¶ ±+C"EKL2MASNURV,
S45  &×o*´>¶ ¸ *´J R ²LÆL*´<ª=$5*²L— W§*²L—P ¸¢§*²L—¥W*—¨§*¶«*¶®*—¨±+:[
+]_4a<b?dIeMgPiXm`peqirnu,o45o‾°±²&F
+*¶«*¶®±+yz {,
+45
+‾µ³Y*—
+» ?@&¶E¶º±+
+ 
+»
»4X5,½@Y*—
&E ¾¶º±+
+ 
Í»4Î5,ÏNÐ&MxN»&À£Y¸
-»ÄÀ—ÇY¸
M,+¶
ėÇM+¶
ʧNÖ¬N-
¬ÌØ+¶Þ±³µ¸,*45"#
+-ضâN,-¶æ§N¬¬((Ì+¼"ÀÂà Æ(È)Ê+Í,4-45-"#"ÍÎç )ÏУN&£-»ÀY¸ėÇM+¶ÖN-é¶Þ 
+-é¶âN,-¶ì§N¬¬((Ì+Ñ"Õ×Ø Û(Ý)ß+â,4-45-"#"ÍÎç )ÏÐ  U&3*³L±+
+æç,
í#¦n&>*µï±+
+êë,45ð
+ñò&/*´ï¬+î,
45óôõ&&*+—÷±+xø,ùõ&&*+—û±+X,üýþ"µÿ½e}
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
.form ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDi
alog.form
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog.form
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og.form 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.0" type="org.netbeans.modules.form.forminfo.JDialogFormInfo">
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <Events>
+ <EventHandler event="windowClosing" listener="java.awt.event.WindowListener
" parameters="java.awt.event.WindowEvent" handler="closeDialog"/>
+ </Events>
+ <AuxValues>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean
" value="false"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integ
er" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value
="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" va
lue="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,
115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,6
5,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,
100,116,104,120,112,0,0,1,44,0,0,1,-112"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignBorderLayout"/
>
+ <SubComponents>
+ <Component class="javax.swing.JFileChooser" name="jf">
+ <Properties>
+ <Property name="acceptAllFileFilterUsed" type="boolean" value="false"/>
+ <Property name="font" type="java.awt.Font" editor="org.netbeans.beaninf
o.editors.FontEditor">
+ <Font name="Arial" size="12" style="0"/>
+ </Property>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionLi
stener" parameters="java.awt.event.ActionEvent" handler="jfActionPerformed"/>
+ </Events>
+ <Constraints>
+ <Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.Desi
gnBorderLayout" value="org.netbeans.modules.form.compat2.layouts.DesignBorderLay
out$BorderConstraintsDescription">
+ <BorderConstraints direction="Center"/>
+ </Constraint>
+ </Constraints>
+ </Component>
+ </SubComponents>
+</Form>
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
.java ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDi
alog.java
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog.java
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og.java 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,241 @@
+/*
+ * JDialog_1.java
+ *
+ * Created on 17 de Novembro de 2005, 17:53
+ */
+
+/**
+ *
+ * @author helen
+ */
+
+package gui;
+
+import java.util.*;
+import javax.swing.*;
+
+import xml2tcl.Translator;
+
+import java.io.*;
+
+public class FileJDialog extends javax.swing.JDialog {
+
+ /** Creates new form fileJDialog */
+ public FileJDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ }
+
+ public void displayFileDialog(int type){
+ currentType = type;
+
+ switch(type){
+ case OPEN:
+ setXMLFilter(jf);
+ result = jf.showOpenDialog(jf);
+ break;
+ case SAVE:
+ if(file != null){
+ saveFile(file);
+ }
+ else{
+ setXMLFilter(jf);
+ result = jf.showSaveDialog(jf);
+ }
+ break;
+ case SAVE_AS:
+ if(file != null)
+ jf.setCurrentDirectory(file);
+ setXMLFilter(jf);
+ result = jf.showSaveDialog(jf);
+ break;
+ case EXPORT:
+ setTCLFilter(jf);
+ result = jf.showDialog(jf,"Export");
+ break;
+ }
+ }
+
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ // <editor-fold defaultstate="collapsed" desc=" Generated Code ">//GEN-BEGI
N:initComponents
+ private void initComponents() {
+ jf = new javax.swing.JFileChooser();
+
+ addWindowListener(new java.awt.event.WindowAdapter() {
+ public void windowClosing(java.awt.event.WindowEvent evt) {
+ closeDialog(evt);
+ }
+ });
+
+ jf.setAcceptAllFileFilterUsed(false);
+ jf.setFont(new java.awt.Font("Arial", 0, 12));
+ jf.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ jfActionPerformed(evt);
+ }
+ });
+
+ getContentPane().add(jf, java.awt.BorderLayout.CENTER);
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void jfActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST
:event_jfActionPerformed
+ // Add your handling code here:
+
+ setFile(jf.getSelectedFile());
+
+ if (result == JFileChooser.APPROVE_OPTION && file!=null) {
+
+ switch (currentType){
+ case OPEN:
+ openFile(file);
+ break;
+ case SAVE:
+ if(saveFile(file)){
+ MainFrame.setXMLSaved(true);
+ }
+ break;
+ case EXPORT:
+ exportFile(file);
+ break;
+ }
+
+ setActionPerformed(true);
+
+ } else {
+ setVisible(false);
+ dispose();
+ setActionPerformed(false);
+ }
+
+ }//GEN-LAST:event_jfActionPerformed
+
+ /** Closes the dialog */
+ private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event
_closeDialog
+ setVisible(false);
+ dispose();
+ }//GEN-LAST:event_closeDialog
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JFileChooser jf;
+ // End of variables declaration//GEN-END:variables
+
+ private int result;
+ private boolean actionPerformed;
+ private int currentType;
+ private FileReader fr;
+ private BufferedReader br;
+ private FileWriter fw;
+ private BufferedWriter bw;
+ private PrintWriter pw;
+ public static final int OPEN = 1;
+ public static final int SAVE = 2;
+ public static final int EXPORT = 3;
+ public static final int SAVE_AS = 4;
+ public static String xmlFileName = null;
+ public static String tclFileName = null;
+ private static File file;
+
+ private void setXMLFilter(JFileChooser jfc){
+ jfc.addChoosableFileFilter(new XMLFilter());
+ }
+
+ private void setTCLFilter(JFileChooser jfc){
+ jfc.addChoosableFileFilter(new TCLFilter());
+ }
+ class XMLFilter extends javax.swing.filechooser.FileFilter {
+ public boolean accept(java.io.File file) {
+ String filename = file.getName();
+ return filename.endsWith(".xml");
+ }
+ public String getDescription() {
+ return "*.xml";
+ }
+ }
+
+ class TCLFilter extends javax.swing.filechooser.FileFilter {
+ public boolean accept(java.io.File file) {
+ String filename = file.getName();
+ return filename.endsWith(".tcl");
+ }
+ public String getDescription() {
+ return "*.tcl";
+ }
+ }
+
+ private boolean openFile(File file){
+ Translator translator = new Translator(MainFrame.getTcl());
+
+ try
+ {
+ translator.open(file);
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ private boolean saveFile(File file){
+ Translator translator = new Translator(MainFrame.getTcl());
+
+ try
+ {
+ String filename = file.getAbsolutePath();
+
+ if(!filename.endsWith(".xml")) {
+ filename = filename.concat(".xml");
+ }
+
+ translator.save(filename);
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ private boolean exportFile(File file){
+ Translator translator = new Translator(MainFrame.getTcl());
+
+ try
+ {
+ String filename = file.getAbsolutePath();
+
+ if(!filename.endsWith(".tcl")) {
+ filename = filename.concat(".tcl");
+ }
+
+ translator.export(filename);
+ }
+ catch (Exception e)
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ public static void setFile(File aFile) {
+ file = aFile;
+ }
+
+ private void setActionPerformed(boolean b){
+ actionPerformed = b;
+ }
+
+ public boolean isActionPerformed(){
+ return actionPerformed;
+ }
+
+}
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
$TCLFilter.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/FileJDialog$TCLFilter.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog$TCLFil
ter.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og$TCLFilter.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,12 @@
+Êþº¾.1gui/FileJDialog$TCLFilter"javax/swing/filechooser/FileFilterthis$0Lgui/FileJDialog;
c<init>(Lgui/FileJDialog;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/FileJDialog$TCLFilter;accept(Ljava/io/Fil
java/io/FilegetName()Ljava/lang/String;

+.tcljava/lang/String
endsWith
 (Ljava/lang/String;)Z
 !
+"fileLjava/io/File;
filename
 Ljava/lang/String;getDescription*.tcl)
+SourceFileFileJDialog.java
InnerClassesgui/FileJDialog. TCLFilter  
+4
*+µ±¢
+*—

+
+N
+¶M,¶#¬
+¤¥ 

$%&'(
+-*°¨
+,-
+/0
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog
$XMLFilter.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/
gui/FileJDialog$XMLFilter.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDialog$XMLFil
ter.class 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/FileJDial
og$XMLFilter.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,12 @@
+Êþº¾.1gui/FileJDialog$XMLFilter"javax/swing/filechooser/FileFilterthis$0Lgui/FileJDialog;
c<init>(Lgui/FileJDialog;)VCode()V

+
 LineNumberTableLocalVariableTablethisLgui/FileJDialog$XMLFilter;accept(Ljava/io/Fil
java/io/FilegetName()Ljava/lang/String;

+.xmljava/lang/String
endsWith
 (Ljava/lang/String;)Z
 !
+"fileLjava/io/File;
filename
 Ljava/lang/String;getDescription*.xml)
+SourceFileFileJDialog.java
InnerClassesgui/FileJDialog. XMLFilter  
+4
*+µ± 
+*—

+
+N
+¶M,¶#¬
+   

$%&'(
+-*° 
+,-
+/0
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/acces
sPoint.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ic
ons/accessPoint.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/accessPoint.
png 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/acc
essPoint.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,3 @@
+ PNG
+
+ àw=ø
IHDR  gAMA± üa pHYsÊ&ó?tEXtSoftwareMicrosoft Office í5q?IDATHKclnnn` øÿÿÿﺺºV ÆÆÆÿi *i
ÌA
wIEND®B`
u¥¥¥ }ó.,ÜÑù¸â ±± ¸8@ \d¶ ØlA ,Ãnɗoßþ ùò Ab>¤ÜôàÀLdûÀÓÓóÿùóçÿÏ =#Ó åòòòþ§§§ Ùµµµ ¸
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/acces
sPointSelected.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorToo
l/gui/icons/accessPointSelected.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/accessPointS
elected.png 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/acc
essPointSelected.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,3 @@
+ PNG
+
+ àw=ø
IHDR
Àÿÿ  gAMA± üa pHYsaÛtEXtSoftwareMicrosoft Office í5qIDATHKcüõã 
¿Ù9[@ä^üO }® ¦ÄÄlÙ3jÞ¸Ø ª({ôV-û âÒm áR(
ô ×èF k~ó» QduT±f ÌÊï_ à´`0H`àÌ ëü FdÀ-øQG ÿ ¡ ë ßýG  aÈ  ì  Ï ðÌõèÞÇfrlüøJdà ©!`"le
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/AP24.
gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/AP2
4.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/AP24.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/AP2
4.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,6 @@
+GIF89a
!ùHÿ
,° Á
 )÷\x
ÿáÿAÿÿÀÀÀÿöÿøïÿÑÈâ
0,TCc  ¥ÑÉâÚÖâsj « ¨ ¥ª à ° ¬ ¨ ¬¦ ¾ «ª¡¿ßÕ÷ÓÊéÐÇæÎÅããßìáÝêf^|¤
+<ã ¬$ArÇ Cº0 bzQ Î YºPà@C 0 ÐñÒDÎ 0Z 8Q§
yIÃÄÍ
 £8~2B)7^Xð H§Pñ4yãÆ
215Âòf Y-?°n¬BB $m:tÁ GP
+4sþ\  ¡ b ÜÓf ¸1ÝðaâJG ±R J .\|½±XMB IBeÅ9~ÀjÀ ¥O Gª ¦Ðf "k è´¥È,<Þh§ äO è¤G *-zètÝhCÎ
  È 
+À÷ß!Ì: AeìÀÃ(8 ¼á kÀUÑÀ
hH â ÃoÁµ`Æ!þ9 ,dVYiôß <æ¨ã ; N\âEYyä´bR
0 JxR#]@aCY&HQHA^ \Q \\EQ ÕÐ kæpÆ)ç tdç !þOCopyright 2000 by Sun Microsystems, Inc. All Ri
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Blank
16.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/
Blank16.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Blank16.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Bla
nk16.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1 @@
+GIF89aw1!þSoftware: Microsoft Office!ù, D;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/clust
erHead.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ic
ons/clusterHead.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/clusterHead.
png 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/clu
sterHead.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,3 @@
+ PNG
+
+ àw=ø
IHDR  gAMA± üa pHYsÊ&ó?tEXtSoftwareMicrosoft Office í5q IDATHKcd þÿÿϸgÏ¡/_¾p±°°
ùï ô÷ 'O¾ml
F^¬ Ã3zá 3)0 uuußCCC Q,Y¹r%ç
{ÞÞÞø4oß¾l ÌÄZÕΰeË`î|²`þüù` Á 7s¡29Ø ,0nmm}N ÷ ïßÿÃØ| ± Á r@<ÀgÁôéÓÿ " Ô8HJJZ²  D
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/clust
erHeadSelected.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorToo
l/gui/icons/clusterHeadSelected.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/clusterHeadS
elected.png 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/clu
sterHeadSelected.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,5 @@
+ PNG
+
+ àw=ø
IHDR  gAMA± üa pHYsaÛtEXtSoftwareMicrosoft Office í5q IDATHKcd >¼þÏxà Ð×‾
\Ì,
Bÿÿ3¼gaaø~æìç— Ý|ÿéÇ)¿`Î ¶KÿÇ-_ò¿fñüÿmÝÿw4Ôþ¿Z[õ÷~sÃÿÓý=ÿWå ò\$[Ô¼lñÿÆζÿû*ʾüÇ +Ë¿ýìíúßB %
+——þ §& ²t±â ‾ÝÝ&p1Ӹ̼Ùÿ'À߸1x÷v K", ©!Æ Z÷I®
À°×jmú  æ5+! À|A¬!Á«ÛV.ûïÌ AL 1lx3zð!ó -6zÏ Æ5U¿ cÁ¥³ÿÿÃ06_%ÆYÏ `¹ºêÿðYÐ×ýÿ?(âI ¨]Apµµü?

*Û©aIvæÍ
 öó "ÜÀà©À(U
PQ A£Cii
¢ªOk«r
+,èÞ]Þ,¸&D°}Û@À ~ã³Cè$Àí¿äø
^ hø{`¸7 ÄâD
±Þ ¬Èßw
Å åú((¹
R,É˹Ë÷¹I
ê r Ç6¤§^Ü¤× m r102 X Á#|@úæ ¹üIEND®B`
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/commo
nNode.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ico
ns/commonNode.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/commonNode.p
ng 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/com
monNode.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,6 @@
+ PNG
+
øIHDR
+ ¿ ógAMA
  Çã± üãa ###
pHYs
[Vyll¬®V«
Ê&ó?tEXtSoftware
ÙûÀçóùüt.Microsoft
¼K& ®ÝÝÝï
Office DÂ
í5qJ¥øýýý
üIDATHKUÝkRa
'!QÁð.@5
?®5¨F
²nmm5tÕM
m ]wX,ÖÚÞÞþ
DDÔÝ. u4¢Íf
M8ÙÂÁ¶ßï
‾ Á@Ã?ý@é")t;;;
2 ÌÇÓ$ðz3ûp8\Õh4
¢ gÕÿgwC¡Ð7E
;$(êKµx,%¨V«
~òàÍ 931Ó§Óé®Î"}©T
@ `îKð9 >uv»]# 5 @ð 
+¡Ýn÷ú¾&ý.%'}Vïmll$u:ÝU ×ÑïNR ¬Ì
ÉKÈtÃD£Ñú ocȸR© `òÐ)ªr¹ÜyJw F 9b2 ô ¢itO rO ÎRA¤ô ¥O "²]^^æ9<¬{8¤NB — 8+Ü`ý‾ZX 4IkÀ
+Ñ"õ¢oõz]¼#%0  æ=røIÞ!{{{ êððP± Ì1)A$ù 6 coá# Íf×; ³R¿Ëc¬‾‾Ç@ðB$@£Î Õ¨ ÅÅÅ÷óóó7;ã
+zM øµgÈc+búWIEND®B`
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/commo
nNodeSelected.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool
/gui/icons/commonNodeSelected.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/commonNodeSe
lected.png 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/com
monNodeSelected.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,9 @@
+ PNG
+
+ ¿ ógAMA± üa pHYs'»‾tEXtSoftwareMicrosoft Office í5qIDATHK _HSqÇ ´ Dfa  $QD TD >ö (YÐKô
IHDR
á£\Å
ÉjR ¿ÇÖKDÒCôïAz
s{W!zH´ù½
¥èñ§¿ÎñöÓ»ë®Sçà
2ÆF TË »çÞóý ó;çw~y å'¥Ìëï ¢rç sÙ ûà/¤K`¾¡Á1 ÍwÃ÷$  º¸&ÚczB|
+Vöh(½³Øþ*aØ V×
+@ÓD!ö 
+95¹~iÁ51ó{3 íã‾ ïÚnãQɨ<2èC TèUqåÈQ*AeÛ
j1O ZÖEõð{vMbÖÔ9« ¡ô
8Rþvòíz»
+d !v ê )6Z#µ+ºÚ
+ ò µ}æ-bßòC8Ѩ8OãàçvV+àX% ! ªÿí2ÐÃBò6 k  Y ( ²ósY)> @@ìà 6¨ Íb~‾ &
eâwÿkbäÓ|âyO£7dí*¾ä¥²ú0j_L y è°Í`ÇÊY Eäeà ? § ~ ¶ëwk`* Öfü0 s@Y8ü Þ©QÁ:ù»ñ!@êäÚ¸ÐÄÕ Ü » ¿)úö
+ñvâRéAôÌ^X7¶u]8é>XÈRuc îÚ^<--²ÀíÂ‾[ ð=P{ øý= 6¼> ³õ 1 6»èÔj$îÊ*n&  +T°ï´m @Ôë3×ëñ Ñï©
NaÑÇ'Õg1Î3¦¸
0}ØNøãÕÚûþ¼<ÑIEND®B`
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Confi
guration24.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gu
i/icons/Configuration24.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Configuratio
n24.gif 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Con
figuration24.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,3 @@
+GIF89a¢ÿ !þOCopyright
ÿÿÿÌÌÌff fff2000
ÀÀÀ!ùby
,bXºÜþ0¶A+%D²
Sun Microsystems,
ºÇ ¶pX` ¨Inc.
ÄÙ¦*[
All°`ßÂ
Rights
`Yã6ÝÌ
Reserved.
L HZQ4 Y(K gÚQY5OË C=F% $Ñ
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Confi
gurationSelected24.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGenerato
rTool/gui/icons/ConfigurationSelected24.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Configuratio
nSelected24.gif 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Con
figurationSelected24.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1 @@
+GIF89ap;!ù, `^ÂðëÿÀ¼ÿa^õbXºÜþ0¶@+@² ºÇ ¶pØ0` ¨ ÀÙ¦*[0aßÄ$`Yã6ÝÌ LHZQ Y(K gÚQY5OË C=
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Expor
t16.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons
/Export16.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Export16.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Exp
ort16.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,5 @@
!+GIF89a
ù,PPÈI«
³ÿÿ[Ý1
ÿÿÀÀÀ00a==n
}¸] Q a7RÂÀD;%AÏÂÂòÏÏÿòòòÏÏÏÂÂÂ
jxÂ2 ïÈì Ç B,( § @ÑØ1ªÃ Q,6¸QÉôK¾
+;]c7,ɹ{9 (;wKBX áæy¤ V«O "6Üã¡d
Í 2mI&FãB EdJÅñ°¬Û$W
+ 8$J NJ22!!þOCopyright 2000 by Sun Microsystems, Inc. All Rights Reserved.
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/figur
as.ppt ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/
figuras.ppt
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/figuras.ppt
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/fig
uras.ppt 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,399 @@
+ÐÏࡱá>þÿ 2þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+
 !"#$%&'()*+,-./01þÿÿÿþÿÿÿS56789:;<=>?@ABCDEFGHIJKLMNOPQþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ
+ò/È
0ÒÕL—DArialÀ S¾
0À 0ÒX©X©È0 à ¾
0à Õ¤@ÿÿ¥
.©
+ @ £nÿý?" dÿd@ÿÿïÿÿÿÿÿÿ  @@``  ¬ð¤ð@ { Pð0 A¿ñÅA
Àÿÿÿ
ÿ @ñÿÿÿÿÿÿÿ÷ðó Ð 3º °öÊ ;®
+ù7Ê ;úgþý4dddd¼E ø ¾
0.ÿÿÿ ÿÿÿppû@û<ý4dddd$ ¡k
0X©¤0 ÿ 
p µ
 p8µ
 ð0Àºó__ª_PªPóT1ª0 ª /ð8óóêø¤ ï 
0`ð ÿÿÿ »àã33   Ì`ð ÿÿÿ ûßSÿ fÌ3 f`ð ÿÿÿ  ÌÿÌÌÿ33Ì‾gÿ`ð Þöñ ÿÿÿ Æÿf̨`ð ÿÿÙwwwÿÿ÷3
  @@``  P£R    @  `   `£
p£> £>
ÖðÎð f ð( ð
+ððÒ
+ð
+ ð6
ðT ¨ Click  q  ¿ ÿÀto edit
ð `}ðMaster
à title style¢!ª
+!ð
+ð
ð+Fifth
Second
Third
Fourth
  ð 0¨ R Click
level
level
t level
t ¿ÿÀ¢to! edit
ð `ðÃMaster
 text styles


+Sð¶
+ð
+ ð0
ð>  *¡ø@ð{¸¿ÿÀ ð^ ` ð Ã
+ð
+ ð0
ð@  *ú¡ðl¸ ¿ÿÀ ð^°
 Ð ð Ã  
+ð
+ ð0
ð@  *Ø¡ðDH ¿ÿÀ ð^ ` ð Ã
+ð
 ð0 
0  Þ½h¿ÿ ? ð ÿÿÿ »àã33   Ì 8 0 º___PPT10 ëß.ëÅ@ ºDefault Designð ñ
 ð ð@0 ð( ð
+ððÌ
+ð
+ ð 0  0 D¿ÿÀ ðP ðÃ
+D  *¡
ðT
ùªðÎ
+ð
+ ð0
ðV  *¡ø D¿ÿÀ ð ß ðDÃ
øªðd
+ð
+cð$   ¿ ÿ ? ð°Ð
+ðDÃð,
+ð
+ ð 0  è D¿ÿÀ ð°
+°
ªð´
Quinto
Segundo
Terceiro
Quarto
eð0Ò
Ð
¨dðCDÃlique
 nível
nível
nível
nível
para
¢. editar os estilos do texto mestre
+ð
+ ð6
ðT  *¡¨¨D ¿ ÿ
À ð_P ð Ã D
úªðÔ
+ð
+ ð6
ðV  *¡ ©D ¿ ÿ
À ð_ ß DðÃ
تðH
+ð
 ð0 Þ½h  ¿ÿ ? ð ÿÿÿ »àã33   Ì 8 0 º___PPT10 ëõ.ðÅ`âÂîï 
0
rðjð8zñðêð( ð
+ðð^2
+ð8
+ ð 6  ð¿ÿ
À
XÄ
ð^2
+ð9
+ ð 6  ðÞ¿ÿ
À
ð²^ò2
+ð:
+ ð 6  ðë¿ÿ
À
+ I,ð^2
+ð;
ð+B^ 2ð6   ðF¿ÿ
À
+ð<
+ ð 6  ð¿ÿ
À¾îð^2
+ð=
+ ð 6  ðk¿—ÿ
À÷ð^2
+ð>
ð+Ó^¨2ð6   ðg¿ÿ
À
+ð?
+ ð 6  ðs¿\ÿ
Àµð^2
+ð@
+ ð 6  ð¿ÿ
À
ä#B
ð^2
+ðA
+ ð 6  ׿ðÿ
ÀÝ  
+ð^2
+ðB
+ ð 6  ð¿ÿÀ
ÂÄ
ð^2
+ðC
+ ð 6  ðY¿ÿ À
+R
+ð^2
+ðD
+ ð 6  ðc¿ÿ À
+¤
+ð^2
+ðE
+ ð 6  ðU¿ÿ ÀU   ð ^2
+ðF
+ ð 6  ð¼¿ÿ À
+Áý
+ð^2
+ðG
+ ð 6  Oð=¿ðÿ À^  2
+ðH
ð+/ng| ð6  ð%¿ÿ À
+ðI
+#ðTB²C
+DEÁ FÁB  Á ¿Ä ÀÎ×ÿ((ðÿ`.÷LÌ L .7\ ¾ ý
+þ
+ë <¾ ò Õ ®¸
+=*ÚnC²¬}Én#_}uí]±
+Í° M Å=®Zµ-¼u Gµâ  = Í[8D-îÉ` @              ` ð^ù ¢ðº
+ðN
+£ð<  ! D ðS¿ ÿ À ‾ 
ðN ¨APª¡
+
ðà2
+ðO
+¢£ð<
ðT ¨CH ¡à$D  C
¿ "ÿ
Àñ ð9?ÿ¿
ªðà2
+ðP
+£ð<  È )D  C
¿ "ÿ
Àñ ðÎ?ÿ¿Òµ±
ðT ¨CH¡
ªðà2
+ðQ
+£ð<  < .D  C
¿ "ÿ
Àñ ðF?ÿ¿¢ )
ðT ¨CH¡
ªðà2
+ðR
+£ð<  d 1D  C
¿ "ÿ
Àñ ðS?ÿ¿ g6
ðT
+  ¨CH¡
ªðX2
+ðS
+ ð 0 ðs:¿yÿ
À´ðX2
+ðT
+ ð 0 ð:¿ ÿÀ
3r{
ðX2
+ðU
+XL2ð0  ð¿ ÿ
ðË À
+ðV
+ ð 0 𢿠ÿÀ
+#
c
ã
+ðX2
+ðW
+ ð 0 ðý¿ ÿ
À
\
ð?X2
+ðX
Ø+ ¥ðX ð 02 ðd¿ÿ
À
+ðY
+ ð 0 ð"Ñ¿dÿ
ÀðX2
+ðZ
ðY+XÔ2ð0  ð¿ ÿ
À
+ð[
+ ð 0 ðп Zÿ
ÀðX2
+ð\
+ ð 0 ð¸þ¿=ÿ
À
ùðX2
+ð]
+ g ð 0 ð%¿ ÿ
À`ðX2
+ð^
+ ð 0 ð:¿ ÿ À
Ü
ðX2
+ð_
+ ð 0 ð¿ ÿ
À
+-lR
+ðX2
+ð`
+ ð 0 ð¿ ÿ
À

+ðX2
+ða
+ ð 0 ð¿ ÿÀ
o‾N ðX2
+ðc
+ ð 0 ðô¿ ÿ
À
+*i6ðX2
+ðd
+ ð 0 ðÜ¿ ÿ
À
ð |
I
+ðe
+#ðTB²C
+DEÁ FÁB  Á ¿ÄÀÎ×ÿ((ðÿ`.÷LÌ L .7\ ¾ ý
+þ
+ë <¾ ò Õ ®¸
+=*ÚnC²¬}Én#_}uí]±
+Í° M Å=®Zµ-¼u Gµâ  = Í[8D-îÉ` @              `9Yððº
+ðf
+£ð<  à <D ð ¿ ÿ
À
+ ɬ
¿  ¨APª¡ 
ðN
ðX2
+ðk
+ ð 0 ð*T¿ÿ
Àk  ðX2
+ðl
+ ð 0 ðë¿ ÿÀ
-+`
ðX2
+ðm
+ ð 0 ðÎC¿ÿÀ
ðX2
+ðn
+ ð 0 ð¿ ÿ À
+p‾I
+ðX2
+ðo
+ ð 0 ðøS¿ 9ÿ À ðX2
+ðp
+ ð 0 ðË¿ÿ À
+^ðX2
+ðq
ðÍ+
§X 2ð0  ðf¿ ÿ À
+ðr
+ ð 0 ð¿ ÿ À
t³Å
ðX2
+ðs
+ ð 0 ðsF¿ÿ À´ðX2
+ðt
ð+6ôu 2¨ð0  ðf¿ ÿ
À
+ðx
+³ðB
ð\ ¨CN ª¡ðº èƱ
  ¿S
 "ÿ
¿ Àñ ¿`ðå?ÿ¿wKÈ
+ðy
+ £ð<
ðN ¨AP ª¡H± ðå*¿ÿ
À
ðâ2
+ðz
+£ð<
ðV ¨CH ª¡´ðQ±
H  C¿ "ÿ
Àñ
 ðå?ÿ¿gJÈ
+ð 
 ð0   Þ½h¿ÿ ? ðð ÿÿÿ »àã33   Ì 8 0 º___PPT10 ë ß.ëÅ0J î¢(ï
0
(ð
+(ðL0O
ð¢'ð( ð
+ð
ðº
+ðO

+£ð<  ¤ À  ðî¿ ÿ
À k£
ðN
+  ¨APª¡
ðº
+ð6

+£ð<  ü Å  ðȬ¿ÿ
À
}  ¨APª¡
ðN
ðX2
+ð

+ ð 0 ðøG¿ÿ
À9ðX2
+ð

+ ð 0 ðSà¿ÿ
À ðX2
+ð

+ ð 0 ð`7¿wÿ
À¡ðX2
+ð

+ ð 0 ð»p¿°ÿ
ÀýðX2
+ð

+ ð 0 ð"¿ìÿ
ÀcðX2
+ð

+ ð 0 ðàå¿%ÿ
À"ðX2
+ð
+

+ ð 0 ðÜA¿ðÿ
ÀX 2
+ð

+ ð 0 ðèK¿ÿ
À*ðX2
+ð

+ ð 0 ðvQ¿—ÿ
ÀðX2
+ð

+ ð 0 ðLK¿ÿ
ÀðX2
+ð

+ ð 0 ðøð¿/ÿ
À9ðX2
+ð

+ ð 0 ðÎA¿ÿ
ÀðX2
+ð

+ ð 0 ðØð¿/ÿ
ÀðX2
+ð

+ ð 0 ðÊ¿Ãÿ
À
ðX2
+ð

+ ð 0 ð1ï¿.ÿ
ÀrðX2
+ð

+ ð 0 ð²>}ô¿ðÿ
ÀX 2
+ð

+ ð 0 ð]Ü¿ ðÿ
À| 
+ð

+#ðTB²C
+DEÁ FÁB  Á ¿Ä
ÀÎ×ÿ((ðÿ`.÷LÌ L .7\ ¾ ý
+þ
+ë <¾ ò Õ ®¸
+=*ÚnC²¬}Én#_}uí]±
+Í° M Å=®Zµ-¼u Gµâ  = Í[8D-îÉ` @              ` ðÓ'M ð à
 2
+ð

+£ð<
ðT ¨CH ¡\Ï   C
¿ "ÿ
Àñ ð®?ÿ¿Ð³ 
ªðà2
+ð

+£ð<
ðT ¨CH ¡hÔ   C
¿ "ÿ
Àñ ðC?ÿ¿ã&
ªðà2
+ð

+£ð<
ðT ¨CH ¡$Ó   C
¿ "ÿ
Àñ ð»?ÿ¿Ð³ 
ªðà2
+ð

+£ð<
ðT ¨CH ¡(Ý   C
¿ "ÿ
Àñ ðÈ?ÿ¿² «
ªðX2
+ð

+ ð 0 ðèh¿§ÿ
À)ðx
+ð

+ ð 0    ÂC¿ "ÿÀñðÒ?ÿ¿Ìz Dðº
+ð

+£ð<
ðN ¨AP ª¡àá  ðÈÝ¿Àÿ}
ðX2
+ð

+ ð 0 ðøU¿9ÿ
ÀðX2
+ð

+ ð 0 ðS‾¿ÿ
Àï ðX2
+ð

F¡ðX
+ ð 02 ð`¿ÿ
À
+ð!

ýðX
+ ð 02 ð»?¿ÿ
À
+ð"

+ ð 0 ð"|¿»ÿ
ÀcðX2
+ð#

+ ð 0 ðà´¿ôÿ
À"ðX2
+ð$

+ ð 0 ðÜпðÿ
ÀX 2
+ð%

+ ð 0 ðèY¿*ÿ
ÀðX2
+ð&

+ ð 0 ðvá¿ÿ
À
—ðX2
+ð'

+ ð 0 ðLÚ¿ÿ
ÀðX2
+ð(

+ ð 0 ðø¿¿þÿ
À9ðX2
+ð)

+ ð 0 ðÎO¿ðÿ
ÀX 2
+ð*

+ ð 0 ðØ¿¿þÿ
ÀðX2
+ð+

+ ð 0 ðÊR¿ÿ
À
ðX2
+ð,

+ýrðX
ð 02 ð1¾¿ÿ
À
+ð-

L+ôðX02ð²¿ÿ
À
+ð.

+ ð 0 ð,¿ kÿ
ÀÜð|
+ð/

+#ðTB²C
+DEÁ FÁB  Á ¿Ä
ÀÎ×ÿ((ðÿ`.÷LÌ L .7\ ¾ ý
+þ
+ë <¾ ò Õ ®¸
+=*ÚnC²¬}Én#_}uí]±
+Í° M Å=®Zµ-¼u Gµâ  = Í[8D-îÉ` @              ` ðÓðöX
 2
+ð4

+ ð 0 ðè7¿vÿ
À)ðx
+ð5

+ ð 0    ÂC¿ "ÿÀñð¤?ÿ¿ðmà2
+ð0

+£ð<
ðT ¨CH ¡ì   C
¿ "ÿ
Àñ ð®?ÿ¿  
ªðà2
+ð1

+£ð<
ðT ¨CH ¡,ñ   C
¿ "ÿ
Àñ ðC?ÿ¿Ï²&
ªðà2
+ð2

+£ð<
ðT ¨CH ¡èï   C
¿ "ÿ
Àñ ð»?ÿ¿  
ªðà2
+ð3

+£ð<
ðT ¨CH ¡ìù   C
¿ "ÿ
Àñ ðÈ?ÿ¿ d«
ªð|
+ðH

+#ðTB²C
+DEÁ FÁB  Á ¿Ä
ÀÎ×ÿ((ðÿ`.÷LÌ L .7\ ¾ ý
+þ
+ë <¾ ò Õ ®¸
+=*ÚnC²¬}Én#_}uí]±
+Í° M Å=®Zµ-¼u Gµâ  = Í[8D-îÉ` @              ` ðùÒø=ðà2
+ðI

+{£ð<  D  ^C¿"ÿÀñðÔ?ÿ¿
ðT
+— ¨CH¡
ªðà2
+ðJ

+£ð<  Ä D  C¿ "ÿ
Àñ
 ði?ÿ¿
«
LðT ¨CH¡
ªðà2
+ðK

+£ð<  X D  C
¿ "ÿ
Àñ ðá?ÿ¿{ ^

ðT ¨CH¡
ªðà2
+ðL

+£ð<  ` þ   C
¿ "ÿ
Àñ ðî?ÿ¿ ]
+@Ñ
ðT
+  ¨CH¡
ªðx
+ðN

+ ð 0    ÂC¿ "ÿÀñðøw?ÿ¿%jðX2
+ð7

ðò+
1X 2ð0  ð¿ ÿ
À_
+ð8

+ ð 0 ðy¿ ÿ
À

ðX2
+º
+ð9

+ ð 0 ðâ¿ "Çÿ
ÀðX2
+ð:

[#ð+X 2ð0  ðá¿ ÿ
À
+ð;

+ ð 0 ðHX¿ ÿ
À ðX2
+ð<

+ ð 0 ðп Hÿ
ÀðX2
+ð=

+ ð 0 𬿠ÿ
À
ì
CðX2
+ð>

+ ð 0 ð¿ ÿ
À
ö5
P
ðX2
+ð?

+ ð 0 ð¿ ÿ
À
½üÝ
ðX2
+ð@

+ ð 0 ðr¿ ÿ
À
+¶ ö ´
+ðX2
+ðA

ð+XÚ2_ð0  ð¿ ÿ
À
+ðB

+ ð 0 ðô¿ ÿ
À

+6ðX2
+ðC

+ ð 0 ðþ¿ ÿ
À
+ Ú ?ðX2
+ðD

+ ð 0 ð¿ ÿ
À.
n
2
+ðX2
+ðE

+ ð 0 ðWÙ¿ðÿ
ÀX
 2
+ðF

+( ð 0 ðØé¿ÿ
À
ðX2
+ðG

G+ðX
ð 02 ðÀ¿ ÿ
À
+ðM

+ ð 0 ð¿ ÿ
À
RO
ðH
+ð

 ð0 
0  Þ½h¿ÿ ? ð ÿÿÿ »àã33   Ì 8 0 º___PPT10 ëå.ëÅP;ëêðñ
 ð ðP ð( ð
+ððX
+ð Cð ¿ ÿð°Ð
+ðDÃð 
+ð Sð  ø ³D¿ÿð°
+°0ÐðÃ
Dð"  ªðH
+ð
 ð0 Þ½h 
0 ¿ÿ ? ð ÿÿÿ »àã33   Ì 8 0 º___PPT10 ëõ.ðÅ`âÂðñ
 ð ð` ð( ð
+ððX
+ð Cð ¿ ÿð°Ð
+ðDÃð 
+ð Sð  $ »D¿ÿð°
+°0ÐðÃ
Dð"  ªðH
+ð
 ð0 Þ½h  ¿ÿ ? ð ÿÿÿ »àã33   Ì 8 0 º___PPT10 ëõ.ðÅ` äÂr pwKU1#ÿY\õÙ/^þÿÿÿ þÿÿÿÿÿÿÿÿÿÿ
+äìôü

QäApresentação na tela{A^ rial
 Default DesignSlide S1lide 2
Fontes usadasModelo de designTítulos de slidesþÿà òùOh«+'³Ù0:`hx   ¬
+Ð
èÜôüSälide
 1helenHelen Peters3Microsoft Office PowerPoint@ËÍ@Àía¶àëÅ@Pâ öðÅG
9ÿÿÿÿ g
 }f
VUyW¡VüVÿÿÿ
UU-ú-úÿÿÿ
ð-'-ÿ%-$ÿ-ÿÿÿÿÿÿx
-$ FUFFG GxG FÿFÿÿÿÿÿ
F-ú--ú-%-'ÿÿ
FFüF»Gàã
GG-F-F$F--ð'ÿÿ--Y$YYZZZYY)YY-)ú-Y-)üY-)%Z)YZY*YZ*ZYZ*YY)YY--ú-ð-'-ÿ%ÿ-)-Y$)Y)Y)Z)"Z[*!
+`
+a
+a a a  _` _^^\\ZZZZZ
dcghiiiih
eddc
c
c
cklkllmmmnnnnnnmmlllkkkkkn!n%m%m%m%n%n%n%n!ooonnnn)l)l.k/j0j0j0k0k/l*m)m)m(m(m)l)l3i3i7g9f:
i3i<c>b=b?`?`?^?^?^?]@]@]@^@^@^@`@`>b>c=d=d<d<d<c<c?Z?X?U>S?R?R?R?S@U@X@Z@Z@Z?Z?
Z?Z>O>O>O=L=M;J;K:J:I:I:I;I<J<J>L>L?N?N?O?O?O>O>O>O7G6G3E3D2B2B2B2A3B4D4D6F7F8G7
G7G7G0?/>/>.=.=-<-<+<*<*<*<*;+;-<-<.</<0=0=1>1?1?0?0?0?&="=>>==="<&<'<'<'<&=&=>??????>>>=>>
@
@
+B
+B A A 
+A
@
??????@@@ LHE LDEH D E  WVPE WWWWVPPO --ð'ÿÿ--$
B
GGB
B-ú---
$
B
GGB--ð'ÿÿûýÿ¼@Arial-. ÿ ÿÿ
+2
A+F
P.û¼"System8ä-ððü --&$^^_`abcdddcb a`_^^--'ÿÿûýÿ @Arial-. ÿÿÿ
+2
+bCH.-ð--&$3T2T1T0U0W0X1Y2Z3Z4Z5Y6X6W6U5T4T3T--'ÿÿûýÿ @ Arial-. ÿÿÿ
+2
+X2CH.-ð--&$PPQRSTUVVVUT SRQPP--'ÿÿûýÿ @ Arial-. ÿÿÿ
+2
+TCH.-ð--&$#B"B!C D E F!G"H#H$H%G&F&E&D%C$B#B--'ÿÿûýÿ @ Arial-. ÿÿÿ
+2
+F!CH.-ððü»àã--$ &Q%Q%R%S&S&S&R&Q&Q-ú---% &Q%Q%R%S&S&S&R&Q&Q--ð'ÿÿ--$ ^W^W]W^X^X_
`A--ð'ÿÿ--$ qWqWpWqXqXrXrWrWqW-ú---% qWqWpWqXqXrXrWrWqW--ð'ÿÿ--$ {GzGzHzI{I{I{H{G{G-
lmlimfmemelelflflqjqjviwhxhxhxiwiviqkqkpkpkqjqj{g{g}f e  d d  d d  d f }g{h{h{h{g{g{g{g a `  ` ^
?z?z@|B|B~D D E  E E  E E x=w<w<v;v;t:t:r:r:r:r:r9r9r9u9u9v:v:x;x;x<y<x=x=x=x=n;j;g<g<g;g;g;j:
:n:o:n:n;n;c<a=_=\=\=\=\=\<^<a<c;c;d<d<c<c<X>W>T>T>R@R@Q?Q?Q?S=T=W=X=Y=Y>X>X>QCP
FPJPJPJOJOJOFPCPBPBQBQCQCPNPNOTOUOUOUNUNTONONOMPMPMPNPN--ð'ÿÿ--$S@SEZEZ@S@-ú---
$S@SEZEZ@--ð'ÿÿûýÿ¼@Arial-. ÿÿÿ
+2
+DUAP.-ððü»àã--$ mOmOmPmQmQnQnPnOmO-ú---% mOmOmPmQmQnQnPnOmO--ð'ÿÿ--$ `M_M_N_O`O`
3$3#2#0"--'ÿÿûüÿ¼@Arial-. ÿ ÿÿ
+2
+'.CN.-ððü--$"'#'#""-ú---
$"'#'#"--ð'ÿÿûüÿ¼@Arial-. ÿ ÿÿ
+2
+&AP.-ððü - -&$)"(#'#&$&&&''((())*(+(,',&,$+#*#)"--'ÿÿûüÿ¼@Arial-. ÿÿÿ
+2
+''CH.-ðCurrent Userÿÿÿÿÿÿÿÿÿÿÿÿ D ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿö$_À ãW^
ôHelen PetersHelen Peters
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/hiera
rquica.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/ic
ons/hierarquica.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/hierarquica.
png 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/hie
rarquica.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,34 @@
+ PNG
+
+ ®û» ðgAMA± ü a
IHDR pHYsaÛtEXtSoftwareMicrosoft Office í5qøIDATx^í]|Uö @- 
+¸4!t &6DÑ¿è²Âîß.MÙ¥I/JG@A JUQWX:RB1*@) ÍÒBÑp÷ûÆ7ÙIãMooîïw~ ¼w˹g¾wç̹ç sÕUA $H
Ê~6
+*
¨»M¼x}
*b[Öågl
´öà Ø$
ô >Ùk>÷ú$
@h×¼
H ä¿
Äz §Zsêh½®3 ö@Í@ü®d
»AÇCô®àÚ
=BÔT?T÷\oU5 6WÖ½ 4 d ×A§¾ @þЪw-®w × ×Ö ® £Aw ¸JZ]ö ] Îê
ÆãZ
D<WÑ`§HÿÝãNÛ
T
+ýÍý× ÀâËw UÑN½j%h, f%ê[AqN]047K"¶¼ ñm +!uIyÏ=b â ó w»ø4 ÅÿC ‾ ®1½ç Ã@&K Fø¡ Õä® î  |
+³£ZàåÝ#_ß ëíç è!L®§NÁÍÜ-ª|µÜÍ¢>îü¼ªO"þkE ¤‾Jf³4 Ñ Ê )3 æ3_Øeè´'m´z ìL¤§ëÚt»G#ð 0 Ñ}<W
:0TzРAç@§y
1BÈ]Ç kx¥y½8xðàa6NèÁ¿TvªÏÄIé11
@ñ ü«»ØðëI±&å®'D½ÛnOÓ~Ÿ
,¾ÇD5 =Xc}×Vo
ÓyD«)WØ\
ÎþqÇçôJ³ªôüøÛïÅ
î Z ß Àíß¿ÿ }
Q£Fÿ¤ý)bä{
!C5 pA¨q@:É{Ú. +&Nç Xàb ݤ
+ ¨ó¢É À] à 1 Àý FàR?‾ ± «ªwÖÜ|ùò óçÏ éÓ§gê¾ PÿWEÅ ³ ëÆ Q ÏN£
+ ¸¬?|øp gÓL/÷—k'V<$V >ÿi ¨^‾Þ á ibO7\ɱⶠðä' ³jÕªÒG 
ªUGv
Wr +k¡B
ç«h¿Ä+‾¼"Î ; ÜË / ´´4 ø¹ü
f\=\q½rµ}ç wÄÅ Å )SĤI Ä D§N Ä ü!zöì) ?ÔS§N ~ýú) ûa8áºä{±B'—dz   ¦dn«V$ +ÒÚµk¥ X¥J LUaüøñb
p¡¦dî®]»Ä ~ J ¸C xY¢¢¢®´Yá à¾þúë «& $V¹
Ibà;ï
+÷îÝ[úÑØÂ
¼ÒõèÑ£Y
èc¶pËBöX
  §¨° êð´Ê¬Ë
ñ ++GT2
-ë֍cÆ ¬%ÔÝ;wî,´J
ÜråÊI7¨iÓ¦
7»ªuÊë>°<¨êªÂ]
à|æ gDJJ X(_¾¼
TS<Üjuê
èèh7÷&Ì5^å|‾
úURÅ¢@_*WÜM
ói0(ܤ
6¸Û^zI
V¾.p
+j÷— ã ±»lóÇ-U¶lÇoO[O§ -§Î {Ú<rã«>.ð~ ÔuÕ¬À!c> kÛ<mDS<Ægãx9 bàa~ Nòkdì:h
+bÌÍáBÀ jÁËz¨ÿ f =Òö
ø4²Õ¬{
WAwëk ¬G Ê
Åà+AøC}àçP+
RÐüíIG`EnïÓ
£MÛüÛ
òµçéÛÞ[Lâ9è&
6û
Lç=tTÜ
1/ fµ½p`§ÿÀU×AÓíØ>i£
Uµ/gvñ
 ãm |ö-÷2 ëm å §ôÅìÂH ª p;eúû«]0.îÙkJ ~]4×ß º 5ë7øêýM[
+ÐYz¢¢¢£
` }7è
Ïxß]±JÜv
T®b¥Ó Ç®_
ïÑ«j_
U1k @U0K ú y|Î%U p>ºãK üÊ@ a V¨Zm×Æ´ bçÅ?D³Öÿ(V¬ómX]Ú`n÷.p
²Ó
+p bÆ»ßÏRÓ¸F%hnû
<(þ
+¡Ç)S²ú¹T6:9
SÔ ý «Ü¢*ôXøå×R8¡
Ï(n´ÛÓpÍ¥´0Åo?{^Üq
ßxӣ㠗KtKFgÉS þ'ãó÷\.^¢
¿%Àxr_n;M3u
L pK] ý줧2Í3|³î1r
óð¸ÂEÄú£Ç3
ÅÿøDύ.uTtâ4WÜ]
¬ÐRfmÃ*+Û
;: W"tf PÏU 1Ç4'
q Ó2vP×y
"E $üµc§óhvïþY|²ëGÑü
l ‾7 ïø2åÊ ¿#]ôÕNñÞÆ-¢D©Ò´CªÕ_ò7º«ÙÙ¿J
OÓFÊ] ýð —yu\ j è
+æiL´£ 4ÖE ÖL¹Igè Ð* ÇÕ6( Mj;êE¤x`rH — êè ã X—Åq|¼
+×UfÜa® h3 ñY9&Ý H <éÒeËÞ HA[á¤Þ©ß¦OPPQæd¨Z ´ «Ôöéºzê¿AG X ¡ x _B à \Ǹ— Î|kJçô*
ÇþÜÜY
+ж
q7`/«Is©Ù°áò
rX¼øÚH®d
P'×!ÀA Ä+ÐÌ\Î
s Ó W ´ <ºtÏ/YVܪuêè
ddSë»p<<® ¿î/jfãHÜ'5
µ !—¦Ì Ã|l2X
  à Ð hD
Êu Da ò;
ÿ+UíW÷];ño
ió/Ù{ü:_nÛ±
_ÿô/ó%lt7Ðgµ
ƵIó{'êè3jð;Ó¥C
kÖ ÛîùÄCO> r_[O
EWZmn%
'Öw`|B¹ 2Ó#_¼ ÂéÒ¥KbìرRöÇï¾ûNú u ÛaÇ r âhé3ô³É p =ýJïTÆGølNîÖmÜ ¡èµ ¨¾'eîeG' ïÇrm¸I}® ¿ Çj;D
ó»b
+l~ñõQß×lÔ
?d ÉñÛÃÆÂ,%pSSS¥üºÊU¸W‾^"99Y¼õÖ[
O?Gؼ ºÀ
ۗoÏ\¦tuáÛÒ. /wsóLï@0Ç ï
7MíAO—ÝÛ\ùyùå
+T
wcrûW 7Ùf3ßå~Ãù
PoÕªU y‾/gL¢G5aþüùaU
 >@÷=
|øoÊ
§k8yÐêâ
iP9V¼À5+6W|õz7_
¸ y¹¸g`k
¦Þ/ RÌÔq
û ¾_׬î2ð>ÛA
‾ «¹á
~ó±j¬
¼ù×ÅË<P¾ÇT)¸¤3¨
><îm¦û¢Ú
«+Æ\U
u ooú‾Èá
ý ù ±Ò®Ò²ÒfS
âp:.úñz6È<ï
(¿¥6Ná À] Z
+¸ JO'þ?oÞ¼ÌY~ vsmµ <Ír¦—iËVY »#ý ËÌè®,<¢Ó¶mÛü|»æ vL0êkÇqîå wYXþxÏ ?/m 8 p@2¤ú±cǤÏå}¬§Ì ¾±¦
+Ü 7brYqwØhÓÍ5q  йÍþ &^¸ ÉV /et. >}ºäwøðaé¥,%%% eÅE[Õ1L b Üú`  D ¸2ô~S:M 8QL <Y"ÔãÆ
Ôwò$x w±7L ¶} ôýd×YvèF$Î&p«ÛÇ µ#å ޗíÌÿ —0 õ-°äLaå±êâ]l ´C¦Tø?—ÁñÙPî°vÖa{/ ½ × {ó¨9XqS
+ > Ô®R½æä9x÷ÃsÈñ¡‾Û U. ªTLù9 E  —nóãÚCǤX`Ìé cK ¼ùë`Í Mr¼$2f)¨ ¢MåiO^¡ øé÷?¸ÿÒÖMP[¥[
+Z` =½Ó«¨Rå+!Öé kðj»,Üâ‾ÇQ?Z µ‾ >¦ô
+ù îÂÉVþ Ô ðèÿöÔ
eÎ õG 5¸ À£5v
ÍËå Ý i«ªÀ>Ú
Ùðë Wkþ8
LõùÌñö?õtj/8Å
k:× l¡òÕjÐðì
\GhdÞPuÆO
<2d?Ú _îä
@ ÏÁ
tåAÐÁg>
WrçC´)0Qÿ) ¬C m\ZSÇÜ n2óß? ï > 3 ÷ý> Lõ¸ÒS
Agõ
+Õ~ß1.ç ¾Öv½ åE¾¨¨ä%ßîkágºóR ¨ Pý jYí °ßµ̍® Ñ -ÅP¥ É1]Nî—t÷Ï|¾°tPã «>^Öcu4>^®=ô gÓÉpgDDË
÷bs°4Qn<P] @©³ ô ÑÎ+× wÍaãY‾»Í¬Gúp)f
+À9#° Y ôì ÉÀ ºq * o"å¥]M- õÔÜ[½i`ª ¤¹½4ï ¸!ß ù¦2tv% Ün¥x¸Ï]ËÊÌî |\ ¸CíN
Æ $ð r  ×rï.«&pN Ê°MA_¼ ßæ¶J^õË5 lìÜ ý-Ñ¢{t M\øx±'7£—Øu !¸ûþ Àý ÆGn Jk70ðà 8¢ä%Úà<ë ã
+f Jz i%‾ðÏc^eÞ ¾ %sÐFDz CÄ¹°¡ïÎb ¸x'øÑ8æm¡úV´ÕÈ ±ê kZÏX ÓâFȱ'x qåþ1dú
— ï5 =á; ÒäÈ á Þ;"q®H:yJ¬N="¶ :'ªß\ 'zu4HàfÅ s‾ µË;°Ó 7¦iÓ¦±EÊ aøuW»UÜ£6u Ü ÑgÒ 
+ÄÆ
g TQßÎ*²ã][Ýúc2UÜ ~DÅÝêR¥Eûö&}ü© øÑÑ®Ëû1 ß^+¹Æ uhìPSèþÝ! a,
+ oØy1#3FCÝX§ÎGgíÝÁ^þÑG¼ g?ïcÁçzõùA /9 >×a cúµë11:Ãè }ïW H6Þ{ ] ò7¬N:y:sÅÝtü7Q£
J+kdËh
I 7ü.OtxaáUWôCkXóG‾ÔC
Än9 * óÕ)ôÝX\» g ð.(Æ$ÀM
 EÐ} * ,\<Í SMkªt ]5ÑXçqÔo"péZjyÔw üEDuF¢\#Ãß겨ò4èK³ Åa ðEb
+¦ªBL:Ç<m÷ hV#@h+ÎE C¿MC@ä é鹪þú4Ä A $ ZÜ g@
ß+ü zæ<
å @ ú4;í
@ ¸3+ÔË
µ= +Óº²ÈcÐ
\{ ß³ J ØùS}{ " DÿÑs x ^ÍIEND®B`
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Manna
.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Ma
nna.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Manna.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Man
na.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1 @@
+GIF89aXp!ù,X ÿ ÿÿþþþ ©Ëí£ ´Ú ³Þ¼û âH æ ¦êʶî«r`Ìrm+v ðü1û¡#WÅ3 Þ ½æíhÍҤРv«¤r§ËÅ×:®^ Y5
+(§«&(VLzùÙ<Él| ØÁ=âP;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/New16
.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Ne
w16.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/New16.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/New
16.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,4 @@
+GIF89a
!ù,t@ pH,
ÕÿÿGÿÿÀÀÀÚ×üÛØüÊÈìÎÌðÍËïÌÊîÛÙýÙ×ûËÉîÖÔù×Õú»ºáÅÄìÇÆíÁÀ濾侽ãÄÃéÃÂçÏÎôÔÓøÒÑöÚÙýÏÏÿ®®Ö²
LÉ ½\FX+0 /ãUÅ  k´E 6eKX P E] ¦: I¨@‾HRCl 
   0 - CR
+jRK MB ¡CT² ´ HBbA!þOCopyright 2000 by Sun Microsystems, Inc. All Rights Reserved.
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Open1
6.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/O
pen16.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Open16.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Ope
n16.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,4 @@
,+GIF89a
@>°ÉI«d ³ÿkÍ
ÿÿÿÿæÌôÝÆóÜÅ̽®Ì´ ̳ ¬ « « {f33ÀÀÀ!ù
+¶Ô" c 讶 à¦q I³À  Ú¨R) ª !Ür;_&Û  ¥äÅR"!þOCopyright 2000 by Sun Microsystems, Inc. A
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/plana
.png ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/pl
ana.png
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/plana.png
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/pla
na.png 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,23 @@
+ PNG
+
+ ®û» ðgAMA± ü a
IHDR pHYsaÛtEXtSoftwareMicrosoft Office í5qîIDATx^í]xTÅ À @
+AB@H J Hè¡@@bDAEñÑ ' <QÁ*Eª´§XAZhCCoJ/R$teÞù Ý %eï½;—íÎ|ßù¢ìÌ9gþ{vvîÌ)
«+ç"D¹
ªÚí
wB 0MÖ
& 0:¬ heÕEmY
eÈÿ]
` ¨¬ ¿ðo
D¬V0JÐ_
çO §X¢RÖL:_!:DÔǺ
C?4ô-iëN¸ ¹j @"É J a ùý} ¨Qm"O«—¦¿m êZ?C÷0¢ÊDQDõ ¼<Ð7 hÑ.
+â'=ƪg
ÅE
[¸ãæ
¼GÅÊ hV;Ãmßµ
p»ó"QS"Ü
÷‾ϼ
"á#Ã m¸
°"
Å>7
U$öþ
æf
Ñ-$ZMô
£^
àçøa¢âDÏ
—³êG
#']Ó¶\ÉÊæ½úÄ)Öµo
qÙµ%úËp=<<ØÍ
í(©´@MW
è5+ÅL7Ù¸qã²÷¾QQQ,g
FGtÛí
éð½±Û®+½è%¼
¬9Àg×0a
µ5Ã
àp]
{¾k5Rì%
poìÌ
îÝ[ÐÔn
gëiµY÷ç
÷ -ô²cÛ;bµéÖ
]$
<ôRHÈ
Ed3Nl
vò4Ì«@,õzDRO
üðÿrÝGæ>3+o
VMîj#¦9È<
 ëccê×ß
&ã[¶kÏÖüq
'êÑ
ëJü|Ö<ùI
 F÷ñó+ª¡
¤áÖ
¥ÂO{÷³èº
U+êÂ0Lsá
B>yÊIFà]
°.w(2& >ú(" q Á~¡ð¦k ÑwÔr.VÓÔÔTvæÌ hg¸6C1boÃ-Ô¶KWÚ& gég3-[ 𨨠 ;DN8ò4U«!AÛ\ ÖËË 5
—cÇ -ÂÈ #Yzzºe‾ ½Uxÿý÷ÙرcYRRR^g¿ÎìqNHtp $§9hÀ` Dv » ÿ~öÍ7ßd% 8%%%Ûpm[ |þ
+úNÝ \Äðº] ¨]¶ábeEÃË Í0ûõëÇ>ÌBCCí^Ö áJD×xÝë÷ ñÔº‾aHi 9Ç ¢¬èÃ[I®L e&õ[%
×Y¤Í;þURýc³ª/
G׬O
XRO3$ª'ºi
ÞH¦÷<" uoH ÖX¢<
lé¬4
ï@èM/¿(QA¢
/lgôH.Ü
E¼Q½@|
~½]1KTKtÓ
r BÆ«ËÊ
ømÛÒ
lÚ® è þ^Â
fÓ©§"KFAÈfäRá@ g/:  Z¤ý<fÐ  h%ÌDrà *B¸ =0xêù**} 0Ü°*éç ôÇ]{o~ü
y:p
+¹2FDÕlØh/ÏÕ©
ZPÌa¶
M‾Ø GÆÆõFÒg(«¥e
SK oOÏSé LÂ >ÞÿÂ
 «å#+X
Ô?°ªãØ*¦»º
áHvó\{úOöHx¸ZòäÜÎJ
£ä3 Z¬¸öPõ ²x eÕ[FyÆÎûSõX,2\ sĪïWº´Z  Cè
+l {¡C DX®OÁR   (¦¨  "ØÄ N4"> ÃåôÅ(*Ù  á½Í] >+~zn>P¶km, hÅ|ýÎÝ a¹ã
²<N|êÓ¼J&'p]
ø-gnÜÊxy{ÃxE8B=XD%—hêÉÅ
× lÙv ÿÆ¿IÖDttwdÙ
+—=®—
Õ©jLì&iC³{M
ѪzK¼n³fwÖ
ݗ_Î6\ü—0\w—EYóoH½%_¼p3\
ÚÁlfk‾/þí`
»h©¼#.R¤
ïýÓ,¶^
äM½$w_qqÑÓ¶lÅ
&ëZê%ò6pX¼ÿ
Õ´m»ËK~?ÄR
ëÓßp=
җÿߤ>‾
ch-áÂSpÿ-.7d=;ÑY*
/o¾tÕî 0¢FHâô½ñÂàRªj6\ âKB  hæGÏT²¼Þ IÁ®\¥ü¦¿
+ r ¸ ³ ×Êc'XT :irXû 2æ)
®ØÞD{Ì
È'!c(t
÷ë6öí/
4Dj -ܱ/5ÊEÔ
I©O,I&!á
ÞPÒ5mu
?¨T¼jÚ³
É@Å
Gò³$î
wÔA|î
6÷ý|6yÑ
L~¥×Ýgz½
mÐàB
ú,°-sÔA|î
õ»BÂ

rÔгH
§Ù~M¤ùiÄ
 r1Õ
+ÂRz£uäl´
h—þu(íÌȱ
~O/uïÕ
('÷:Î-
_ö í
´ k-ßlÕ
ë~
¢;Mò!
¸ñ¾¥´)
~¹×/—ÝXâïðÉS
ÆSVd¤ZÒ?aK3wËVV´xñwuÆ`pA_
© òÈ)$8ÞÅ
'I9ôhxÙWb°6]³
`  )d3PS
Ï ÿ£hn
Í SÖ
r 4~^nÚÒåY
@I_ßk9
ÖsØpX¶ìT ` . Àuq¾å:Ó Nç<h ´`%¥ _uü Åÿ× Äw¥ K
é
LDÓ
rAL×H¶
 ém£ ¿xè׬C²
ÉkHÃ zþ½
sÇ/W²`¸»yðÖ
¼ 6\¸ÌZ?Ó
Ç#aáÛ'üø
k Âv =<[°gçôÚ
kÓ¹wô ÇúWoC
Z qznFf
—lcó-Õu
—V nm:?{,§WÒ +×ñà÷ðà T Øæ _
+î'A Ì Gá'û"§Y×þÖk /yÞÞ!²÷iÚ=* _^¸{?K§@¿ æ-°ÚVØè @ qF‾»jÆR¾Éoé} i,TôÓ&Ï0õõÓGH(GàåCÅH
jÍúp
Äçi;é
K¸Å  Ñ}G½Ç
ÿy ÅY Æì Qn
ÞÇÌ|Ñ×ß?S'
0 =Z³æm5P]1 X¸7Ú5³
GÓöOnºt9
¡b^^)Ã(
µf-]îv<{ $¢®;—\9àån¦æÑ¥w_ 3{Ðè \ê¬ J¢nOÏQ[NÝ*¡6ÃóÏu e6
ró¼
‾^}hT
+ó9û¿¨,>Ç(èrÒÃ
²_Hvýt
íe5nbôÜÛáXÐn»ð
J Úzã6Ûó7cA
Û>1ñ¨*ݤɬô³
)ÊÕºsëIÌV‾n}æE
—{7kä®E^n
Àß×ÌÉ.l»#AX²
â«ÔAïÜM¬>C
F  ¦íÚÛ
L¤g Þº$¸±Lp9½
Ùm¢#ôÄçn
r !ý¤ð@  fí;l´åÙÅ Çnz
+ÕQ)!Ú=PRëÌ L ½C+÷ÀNÌRè6ðò)É
+
*wgZÿ¢%JÔ(
øF%+7.
ÉwqEuÕr9öã`W
G)oVºlÙK>>>â<<÷×Ô£u§Î
ó_VFÖ_Ù
²Bz@ (dj @ z-[nC2k\Óo¡
S©Ê —¬&O—OtëõU¼\ûU
þÜ^ÐZ!è6Ï W6G¨à[ o +ûÑ:ÂÀ >/> ò åL[`=+ 8ê_2‾1¸ï'
+ 0 ó wî¹³ê\õî&CåK?QI êl _èqçç3ç,NíØ¿EÄèz ‾ú| P>42reµZµY êÕ
+x9,e¶VS)CJõ2ô‾uçÎg&þq×V%6º Áì?gýF»½òÊ "Gÿ UF*Kµ^ fÏX FÉ6γ ¬ ,±]{È0« ©÷øùìò }I LóÁÕ¤h|Ø!
+Ìu
Bק-[0ðÉGÜ
ù9<çä+µ7¦.Me
Êü0.)kú¤EK)X4`ó3Oee
+MÎ:f_:(
Ø "Ý¿!NÊvÉ
#¤Â1t+,0
<~ño11ÿ8ÍØ8
³ßö—\½Î(a³ ±R¼ñò:nBv8
3ö´
>D<FÍþÜîü
ÓÐÛ¹y
 Ã<‾ͼ´D~ñ
¼a´Ñn
§a
¤Þ$ã¨è´&
~¾©Ü°9«qÛvÈ
 aNsÉÁÀðg®AÁÁÝñ
H-Ntiþ$u£. P^
jà § ZßÀ!ÎñM^
ð# á þGy PÂ
 3/ ®|f®%¡dÎb
Þï¼k)¢ /'nìÞ
s¼NÃ jñû V¨WX½ Iý:¾ÒkUÅJ rVòa
+ZK&: ì ¡qîßÑèÚ~at9ê Sø Dqäéj¬pm Ó' i«úc ê_¦ÌLÊfȶS !ã?e^>¾¼^Pk Uz=¼Z
ÄO«S~©: È Du ï ØX§Fðr/\}âÔ=g
wâÂÅ×
n¸ØÊ\
+QOîÑ nÇá}Ê
æéù¶yT
« Ør®)eè^ýÁ
W /¢}À3Ï"Ì
_²-×nX|b)
u +ð%ÎU)ÇÀ:Û©Ö
Óé£óíùØ _}Ã6]ºJ>
þÏU \—ç—u
,¼ËW] óïÌ{õÖpß®¸
Q]3±-àêôÍEU
Cî,Û ×°
Iì+W
.Xt ÏV}û
ú*fªÝ@
÷õõEJ)5cÎ*
ÿ¬ì1íTÿÉD<
. °»
ÌžÖi £Åg±j>
׳vãÆÇ&/ZÂ&/^Æ^
*1_ qýfvÞu d‾~R+QúÕ1ØHü
2ô*É 7Ò É3¦´¡Ü{Á
Cõ"츻ûöÀy
kÑP¢öܹ
Sç ùAWá;¤ce
×òV¾ õ\—ãößÙ/8x; kÔd¼Ê2] = µÊY—*n +Ú\ͧÜ2å
Ø‾ti
A ¸rüoÆ.«*|
S¡ hù#° Ót"?
>BúìeE¦ÓÀ¦
Àê {*=ð5
6Þ ¤ c\Ì%:B¤æ1¡¦«
+Ó´åV ðr ól\÷"Ò+üÜ¥A¿@³sûcOµë" lzªõ [Á"?ðs (Ñ ! ëW8n#]V"±ýR £S£pê`Z×8§f.o0
ôëê*Úåa§Joø6Ì'2T` *3 Ï^w6o4ì]Íèl. Ö&ñéÛÚd:óV× Á°31Æ© ¨îÃaùáp\qfBõR 5 «Á× §÷ Zú
+¾ eH&1 HV! Ú t\LÔɪkú Ñ\ V4‾"³YÁ[?<® 3NQ "
+vÑç#¦ H óߺo0 J8 ~ÙªWýEÖ¼\!× Y¾l Õ5UZ@Óú ¨ Õ¨ g j` %¾Í¬ré‾-° ¡ Ľ«& vMë1À¬p gh¼è`åþñ¢,
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Save1
6.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/S
ave16.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Save16.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Sav
e16.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,3 @@
+GIF89a¢ÿÿÿÿÌÌÌfffÀÀÀ!ù,@HºÜþoÈIÛè¹ÙA8 ,_H & ©\« ZÉÄ'ì<x¹Ûë7ÃT á© A* Â' B]2¢5 V ! þOCopyri
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/SaveA
s16.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons
/SaveAs16.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/SaveAs16.gif
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Sav
eAs16.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,3 @@
!+GIF89a
ù,YPÈIë
³ÿÿÿÿÀÀÀ00a==nòòòÏÏÏÌÌÌ¿¿¿nnnaaa
ë*KPdL|T© ÐHI} c Å æfË b1ê&ªÑfS ÐN At $Kߨ)x~ DøÔ H#±x; n S5µD[´ñ²e/ ! þOCopyright 2000 by Sun
+JLF GR Ver 1.0
+;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Warni
ng24.gif ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icon
s/Warning24.gif
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/Warning24.gi
f 1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/icons/War
ning24.gif 2006-05-26 11:22:48.000000000 -0300
@@ -0,0 +1,4 @@
+.lÈÑ¡F
+GIF89ap!ùüH0@
‾,  ?¡ G° T—§W¨ L© N© M´¤Zª P¬ Q¥ J¦ L ? D¥ K±¡V—§Z¢ A¢ L zC L I« Kº¨WÇ‾_¡ L
+¦  ¤À eÊQ  %É Ê Rf Và%
+LH?r,C <3¢j
I!ÀÎ/H¥B4)H¤G£Î0b c (30 òFìC ?£p 5jÛkæ `î /+fÜ}£ ãOLyb~ù*ÖmÁ PN@
+eÒÁQ1dé3-¦7 ¢ä9!Xìa {SæÀú+&Ï =þ ,Ö ÜFoz^IûÊD ?Ó ½¢vNâ× ù ì=¹ñ <¬¡bêÝaóÆ ¿-Ù÷Á ‾;
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$1
0.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainF
rame$10.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$10.class
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame
$10.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/MainFrame$10java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/MainFrame;
c<init>(Lgui/MainFrame;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/MainFrame$10;actionPerformed(Ljava/awt/ev
gui/MainFrame
nEvent;)V access$9
 .(Lgui/MainFrame;Ljava/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileMainFrame.java
InnerClasses0  
+
8
+*—*+µ±
+Á

+
A *´+¸±
+ÄÃ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$1
1.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainF
rame$11.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$11.class
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame
$11.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/MainFrame$11java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/MainFrame;
c<init>(Lgui/MainFrame;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/MainFrame$11;actionPerformed(Ljava/awt/ev
gui/MainFrame
nEvent;)V  access$10.(Lgui/MainFrame;Ljava/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileMainFrame.java
InnerClasses0  
+
8
+*—*+µ±
+Î

+
A *´+¸±
+ÑÐ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$1
2.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainF
rame$12.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$12.class
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame
$12.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.#gui/MainFrame$12java/lang/Objectjava/awt/event/ActionListenerthis$0Lgui/MainFrame;
c<init>(Lgui/MainFrame;)VCode()V

+
+
 LineNumberTableLocalVariableTablethisLgui/MainFrame$12;actionPerformed(Ljava/awt/ev
gui/MainFrame
nEvent;)V  access$11.(Lgui/MainFrame;Ljava/awt/event/ActionEvent;)V

+evtLjava/awt/event/ActionEvent;
+SourceFileMainFrame.java
InnerClasses0  
+
8
+*—*+µ±
+Ü

+
A *´+¸±
+ßÞ   !"
+
\ Falta o caracter nova linha no final do arquivo
diff -Naur ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$1
.class ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFr
ame$1.class
--- ns-allinone-2.29/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame$1.class
1969-12-31 21:00:00.000000000 -0300
+++ ns-allinone-2.29-mannasim/ns-2.29/mannasim/scriptGeneratorTool/gui/MainFrame
$1.class 2006-05-26 11:25:52.000000000 -0300
@@ -0,0 +1,11 @@
+Êþº¾.!gui/MainFrame$1java/awt/event/WindowAdapterthis$0Lgui/MainFrame; Synthetic<init>(Lgu
me;)VCode()V

+
 windowClosing
gui/MainFrame
LineNumberTable
access$0
(Ljava/awt/event/WindowEvent;)V
.(Lgui/MainFrame;Ljava/awt/event/WindowEvent;)V
LocalVariableTablethis
 Lgui/Mai