source: proiecte/ptvs/src/vnsim/network/dsrc/CarRunningDSRC.java @ 31

Last change on this file since 31 was 31, checked in by (none), 14 years ago
File size: 2.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.network.dsrc;
7
8
9import java.io.ByteArrayOutputStream;
10import java.io.IOException;
11import java.io.Serializable;
12
13import vnsim.applications.vitp.CarRunningVITP;
14import vnsim.core.*;
15import vnsim.map.object.Globals;
16import vnsim.network.scft.MesageSCFT;
17
18
19
20
21
22public class CarRunningDSRC extends CarRunningVITP
23{
24        private WirelessPhy physicalLayer;
25       
26        private MAC80211 macLayer;
27       
28        private Application appLayer;
29       
30        public CarRunningDSRC(int vehicleId, byte lane, double speed,
31                        short roadIdx, short pointIdx, byte direction, double offset) 
32        {
33                super(vehicleId, lane, speed, roadIdx, pointIdx, direction, offset);
34       
35                this.physicalLayer=new WirelessPhy(0);
36               
37                this.macLayer=new MAC80211(0);
38               
39                this.appLayer=new Application();
40        }       
41       
42       
43        public void onReceive(byte[] bytesReceived, Serializable m, Communicator sender)
44        {
45                if (!isEquipped || bytesReceived == null)
46                        return;
47                //System.out.println("on receive:"+bytesReceived[0]);
48                byte header = bytesReceived[0];
49                byte[] message = null;
50               
51                switch(header)
52                {
53                        case Globals.PROT_EMERGENCY:
54                                this.appLayer.EmergencyVehicleWarning(bytesReceived,((CarInfo)this));
55                                break;
56                       
57                        default:super.onReceive(bytesReceived, m, sender);
58                }
59        }
60       
61        public byte[] prepareMessage(int messageType)
62        {
63                if (!isEquipped)
64                        return null;
65                byte[] bytesToSend=null;
66                //System.out.println("prepare:"+messageType);
67                if(messageType==-1)
68                {
69                        byte[] localinfo = toBytes();
70                        ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
71                        outBytes.write(Globals.PROT_EMERGENCY);
72                        outBytes.write(CRTDIR);
73                        try{
74                                outBytes.write(localinfo);
75                        }catch(IOException e){
76                        }
77                        bytesToSend = outBytes.toByteArray();
78                       
79                        return bytesToSend;
80                }
81                else
82                {
83                        return super.prepareMessage(messageType);
84                }
85        }
86       
87        public WirelessPhy getPhysical()
88        {
89                return this.physicalLayer;
90        }
91       
92        public MAC80211 getMac()
93        {
94                return this.macLayer;
95        }
96       
97        public Application getAppLayer()
98        {
99                return this.appLayer;
100        }
101}
Note: See TracBrowser for help on using the repository browser.