source: proiecte/ptvs/src/vnsim/map/object/Globals.java @ 31

Last change on this file since 31 was 31, checked in by (none), 14 years ago
File size: 11.3 KB
Line 
1/************************************************************************************
2 * Copyright (C) 2008 by Politehnica University of Bucharest and Rutgers University
3 * All rights reserved.
4 * Refer to LICENSE for terms and conditions of use.
5 ***********************************************************************************/
6package vnsim.map.object;
7
8/**
9 * @author Victor-Radu
10 *
11 */
12
13
14import java.io.File;
15import java.io.PrintWriter;
16import java.util.ArrayList;
17
18import vnsim.applications.adaptiveTL.WirelessTrafficLight;
19import vnsim.applications.trafficview.SimulatedCarInfo;
20import vnsim.core.*;
21import vnsim.gui.Display;
22import vnsim.vehicular.routePlan.RoutingConstants;
23import vnsim.vehicular.routePlan.cityRouting.WeekCongestion;
24
25
26
27
28public class Globals {
29        public static int MAXCROSS = 8;
30
31        public static int RT1_length = 230; //Tiger Record Type 1 length = 228 + 2 (crlf)
32        public static int RT2_length = 210; //Tiger Record Type 2 length = 208 + 2 (crlf)
33        public static int LOG_LINE_LEN = 55;  //GARMIN Text Output Protocol
34
35        public static double MAXSEGLEN=0.006; //maximum distance between consecutive points on a road
36       
37        public static Map map;
38       
39        // last week congestions
40        // first is the crossroad index then the road segment index
41        public static ArrayList<ArrayList<WeekCongestion>> lastWeekCongestions;
42       
43        public static String scenarioName;
44
45        public static Point minPoint, maxPoint;
46
47        // Given the peano key of your gps location and the position in the sorted PeanoKey
48        // vector where it would fit, for finding the closest point on a road
49        // you need to find the minimum distance to a point (PeanoKey) in a certain range
50        // from that position.
51        public static int PEANOKEY_SEARCH_RANGE = 10000; 
52
53        //If the minimum distance to a point on a roads is greater than a certain
54        //constant, the gps location should be considered out of the map
55        public static double CLOSEST_PEANOKEY_MAXDIST = 0.06; 
56       
57        public static int FPS = 10; //iterations per second (mobility simulator)
58       
59        public static int executionFPS = 100; //iterations per second (simulation)
60       
61        public final static int SECOND = executionFPS;
62        public final static int MINUTE = 60 * SECOND;
63        public final static int HOUR = 60 * MINUTE;
64
65        public static long NEIGHBOR_EXPIRES = 2 * SECOND;
66        public static long PROMISCUOUS_NEIGHBOR_EXPIRES = 1 * MINUTE;
67        public static long TRAFFICLIGHT_NEIGHBOR_EXPIRES //= 30 * SECOND;       
68                                                = 10 * Globals.MINUTE;
69
70        //public static String inFile = System.getProperty("user.home")+File.separatorChar+"traces.dat";
71        public static String inFile="traces.dat";
72        public static Display demo;
73        public static Engine engine;
74
75        public static Integer mutex = new Integer(0);
76        public static int flag = 1;
77
78
79        // Protocol codes (message types)
80        public final static byte PROT_NEIGHBOR_DISCOVERY = 0;
81        public final static byte PROT_SIMPLE_TEXT = 2;
82        public final static byte PROT_SETOFCARS = 1;
83        public final static byte PROT_TL_FEEDBACK = 3;
84        public final static byte PROT_TL_LSA = 4;
85        public final static byte VITP_PROT = 5;
86        public final static byte ROAD_PLANNING_PROT = 6;
87        public final static byte ROAD_METRICS_PROT = 11;
88       
89        //ezcab
90        public final static byte PROT_EZCAB             = 13;
91        public final static int  TYPE_EZCAB             = -10; //nush ce sa pun
92       
93        public static boolean probabilisticModel = true;
94        public static final int NONAGG_RECORD_SIZE = 27;
95        public static final int TL_FEEDBACK_SIZE = 400;
96         
97
98        public final static int WIRELESS_TRANSMISSION_TIME = 8; // ms
99        public static int WIRELESS_TRANSMISSION_FRAMES; // ms
100
101        public final static int MTU_SIZE = 2300;
102
103        public static int PERCENT_EQUIPPED_VEHICLES=60;
104        public final static int MESSAGE_PROCESSING_TIME=4;  //ms
105       
106       
107        //Traffic engineering parameters
108        public final static double LANE_WIDTH = 2.5;    // meters
109        public final static double PEDESTRIAN_SPEED = 1;        // m/sec
110        public final static int MIN_WALK_LIGHT_TIME = 4 * SECOND;       
111        public final static int PEDESTRIAN_STARTUP_TIME = 4 * SECOND;   
112
113        public final static int ANALYSIS_PERIOD = 3 * MINUTE;   // m/sec
114       
115        public final static int MAXIMUM_CYCLE_LENGTH = 120; //s
116        public final static double VEHICLE_LENGTH = 6;          // meters       
117        public final static int SATURATION_FLOW = 1500; // veh/sec/lane
118       
119        public static int SOCIALNETWORK = 0;
120       
121        public final static int DEFAULT_YELLOW_TIME = 3; //s   
122        public final static int DEFAULT_ALL_RED = 2;    //s
123
124        // the operational flow. Xc = 1 => intersection works at full capacity
125        public static double Xc = 1.0 / 0.95;   
126       
127        public static final int RED = 1;
128        public static final int YELLOW = 2;
129        public static final int GREEN = 3;
130       
131        public static final double QUEUEDISCHARGEFLOW = 0.45;
132        public static final double CARSPERKM = 1.0 / 0.010 ;
133        public static double DEMAND_DISTANCE_ON_FREE_FLOW = 0.1;
134       
135        public static WirelessTrafficLight monitorWTL = null;
136        public static ArrayList<SimulatedCarInfo> monitoredCars = new ArrayList<SimulatedCarInfo>();
137        public static long volume = 0;
138        public static long demand = 0;
139       
140       
141       
142        static String pwname = "Adaptive5Var"+System.currentTimeMillis()+".txt";
143        //public static String variationsFile = "variations5.txt";
144        public static String variationsFile = ".//variations//variations5.txt";
145        public static PrintWriter pw = null;
146        public static PrintWriter pwxc = null;
147        static{
148                try{
149                        pw = new PrintWriter(System.out);
150                        pwxc = new PrintWriter(System.out);
151//                      pw = new PrintWriter(new FileWriter(pwname));
152//                      pwxc = new PrintWriter(new FileWriter("X"+pwname));
153//                      pwxc.println("Ciurel Xc = 0.95; cycle 120; carry- Colisiuni");
154                }catch(Exception e){
155                }
156        }
157       
158       
159        public static boolean comView = false;
160
161        public static RoutingConstants routePlanConstants = new RoutingConstants();
162
163        public static long packets = 0;
164        public static long collided = 0;
165        public static long lost = 0;
166        public static long interfered = 0;
167        public static double maxRange = 10000;
168
169        //Petroaca - emergency vehicle protocol code
170        public final static byte PROT_EMERGENCY=7;
171       
172        //Serban - SCFT protocol
173        public final static int PROT_SCFT = 9;
174       
175        //      the 2 types of protocol simulation
176        public static int PROTOCOL_80211=100;
177        public static int PROTOCOL_DSRC=101;
178       
179        //the 2 types of propagation model
180        public static final int TWO_RAY_GROUND=200;
181        public static final int SHADOWING=201;
182        public static final int RICEAN=202;
183       
184        //Petroaca - the SINRThreshold for BPSK modulation ( in dBs)
185        public static double SINRThresholdBPSK_80211=0.01;
186
187        public static double SINRThresholdBPSK_DSRC=0.016;
188       
189        //Petroaca - the thermalNoise that every station receives (in dBms)
190        public static double ThermalNoise=-92;
191       
192        //Petroaca - the limit of power received a frame must have to not be ignored by the NoiseMonitor -in W
193        public static double CS_THRESHOLD_TRG=5.011872*Math.pow(10,-16);
194       
195        //the collision threshold
196        public static double CP_THRESHOLD=4.0;
197       
198        //the received power threshold in W for tworayforund prop
199        public static double RX_THRESHOLD_TRG=5.82587*Math.pow(10,-14);
200       
201        public static double CS_THRESHOLD_S=3.1622777*Math.pow(10,-15);
202       
203        public static double RX_THRESHOLD_S=3.1622777*Math.pow(10,-14);
204       
205        //variables for Ricean fading
206        public static double RICEAN_K=20; //in dB
207        public static double RICEAN_MAX_VELOCITY_FREE=27.77; //in m/s
208        public static double RICEAN_MAX_VELOCITY_URBAN=11.11; //in m/s
209        public static String RICEAN_FILE_NAME="rice_table.txt";
210       
211        //Petroaca - the system loss for the propagation classes
212        public static double SYSTEM_LOSS=1.0;
213       
214        public static final long LIGHT_SPEED = 299792458;
215       
216        public static final long DSRC_FREQUENCY = 5900000000L;
217       
218        //Petroaca - the wavelength of the signal for the propagation modules
219        public static double DSRC_LAMBDA=(double)LIGHT_SPEED/DSRC_FREQUENCY; // L= speed_of_light * 1/frequency
220       
221        //Petroaca - the gain of the antenna used on the station
222        public static double ANTENNA_GAIN=1.0; //in dB
223       
224        // height of the antenna in metres
225        public static double AH=1.5;
226       
227        //the power of the signal at the transmitter 0.031622777
228        public static double TRANSMITTER_POWER_80211=0.031622777;
229       
230        public static double TRANSMITTER_POWER_DSRC=3.1622777;
231       
232        //signal spread = half-width of the signal ( in Hz)
233        public static double DSRC_SIGNAL_SPREAD=5.0*Math.pow(10,6);
234       
235        //data rate ( Mbps )
236        public static double DSRC_DATA_RATE=6000000;
237       
238        //pclp transmission rate in Mbps
239        public static double DSRC_PCLP_RATE=1000000;
240        //packet error rate threshold
241        public static double DSRC_PER_THRESHOLD=Math.pow(10,-15);
242       
243        public static int DSRC_PREAMBLE_LENGTH=12; //in bytes
244       
245        public static int DSRC_PHYHEADER_LENGHT=3; //in bytes
246       
247        public static int DSRC_MACHEADER_LENGHT=32; //in bytes
248       
249        //Petroaca - variables used in the shadowing propagation model to calculate the received power of a frame
250        public static double PATH_LOSS_EXPONENT_FREE=2.0; //with no to little obstruction
251        public static double PATH_LOSS_EXPONENT_URBAN=2.3; //with considerable obstruction
252        public static double SHADOWING_DEVIATION=4.0; // in dB
253        public static double REFERENCE_DISTANCE=1.0; //in metres
254        public static long RANDOM_SEED=0;
255       
256        //      the 3 states in which the state machine of the physical layer can be at any one time
257        public static final int IDLE=0;
258        public static final int TXing=1;
259        public static final int RXing=2;
260        //the 2 states of the carrier sense status of the mac layer
261        public static final int CCA_BUSY=300;
262        public static final int CCA_IDLE=301;
263       
264        //Petroaca - the RX ,TX  states of the MAC layer
265        public static final int RX_RECV=5;
266        public static final int RX_IDLE=6;
267        public static final int TX_RECV=7;
268        public static final int TX_IDLE=8;
269       
270        public static long DSRC_PACKETS_LOST_WEAK=0;
271        public static long DSRC_PACKETS_LOST_CORRUPTED=0;
272        public static long DSRC_PACKETS_LOST_COLLISION=0;
273        public static long DSRC_PACKETS_LOST_TX=0;
274        public static long DSRC_PACKETS_LOST_RX=0;
275        public static long DSRC_PACKETS_LOST_PER=0;
276        public static long DSRC_PACKETS_RECEIVED_OK=0;
277        public static long DSRC_PACKETS_TOTAL=0;
278        public static long DSRC_PACKETS_SEND_FALIURE_RX=0;
279        public static long DSRC_PACKETS_SEND_FALIURE_NOISE=0;
280        public static long DSRC_SEND=0;
281        public static long p80211_SEND=0;
282       
283        public static double TEST_DIST=200; //in m
284       
285        public static double RECEPTION_RATE_THRESHOLD=50;
286       
287        //Petroaca - FCW crash speed thresholds
288        public static double SPEED_DIFFERENCE=40; //in km/h
289       
290        //Petroaca Cooperative Colision Warning application information refresh time
291        public static double CCW_REFRESH_TIME=10;
292       
293        //Petroaca - CCW application statistical parameters
294        public static long CUMMULATIVE_PACKETS_FV=0;
295        public static long CUMMULATIVE_PACKETS_NFV=0;
296        public static long CUMMULATIVE_PACKETS_LAV=0;
297        public static long CUMMULATIVE_PACKETS_RAV=0;
298       
299        public static double IRT_FV=0;
300        public static double IRT_NFV=0;
301        public static double IRT_LAV=0;
302        public static double IRT_RAV=0;
303       
304        public static double PSP_FV=0;
305        public static double PSP_NFV=0;
306        public static double PSP_LAV=0;
307        public static double PSP_RAV=0;
308       
309        public static long EMERGENCY_RECEIVED=0;
310        public static long EMERGENCY_SENT=0;
311       
312        public static double TRANSMITTER_POWER=TRANSMITTER_POWER_DSRC;
313        public static double SINRThresholdBPSK=SINRThresholdBPSK_DSRC;
314        public static boolean DIFFERENTIAL_CW=true;
315        public static boolean MULTI_CHANNEL=true;
316}
Note: See TracBrowser for help on using the repository browser.