14#ifndef _NETSIM_ALOHA_H_
15#define _NETSIM_ALOHA_H_
21#pragma comment(lib,"Metrics.lib")
22#pragma comment(lib,"NetworkStack.lib")
23#pragma comment(lib,"Mobility.lib")
24#pragma comment(lib,"PropagationModel.lib")
25#include "ErrorModel.h"
28#define BATTERY_RECHARGING_CURRENT_MA_DEFAULT 0
29#define BATTERY_VOLTAGE_V_DEFAULT 0
30#define BATTERY_INITIAL_ENERGY_DEFAULT 0
31#define BATTERY_TRANSMITTING_CURRENT_MA_DEFAULT 0
32#define BATTERY_RECEIVING_CURRENT_MA_DEFAULT 0
33#define BATTERY_IDLEMODE_CURRENT_MA_DEFAULT 0
35#define ALOHA_SLOT_LENGTH_DEFAULT 0
36#define ALOHA_RETRY_LIMIT_DEFAULT 0
37#define ALOHA_IS_MAC_BUFFER_DEFAULT false
38#define ALOHA_FREQUENCY_DEFAULT 900
39#define ALOHA_BANDWIDTH_DEFAULT 5
40#define ALOHA_TX_POWER_DEFAULT 100
41#define ALOHA_RECEIVER_SENSITIVITY_DBM_DEFAULT -85
42#define ALOHA_MODULATION_DEFAULT _strdup("QPSK");
43#define ALOHA_DATA_RATE_DEFAULT 10
45#define ALOHA_MAC_OVERHEAD 0
46#define ALOHA_PHY_OVERHEAD 0
60 NetSim_PACKET* currPacket;
61 }ALOHA_MAC_VAR,*PALOHA_MAC_VAR;
62#define ALOHA_MAC(devid,ifid) ((PALOHA_MAC_VAR)DEVICE_MACVAR(devid,ifid))
63#define ALOHA_CURR_MAC (ALOHA_MAC(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId))
67 PHY_MODULATION modulation;
71 double rx_sensitivity;
73 double dAntennaHeight;
76 PHY_TX_STATUS transmitter_status;
77 double dInterferencePower;
79 PPROPAGATION_INFO PropagationInfo;
80 }ALOHA_PHY_VAR,*PALOHA_PHY_VAR;
81#define ALOHA_PHY(devid,ifid) ((PALOHA_PHY_VAR)DEVICE_PHYVAR(devid,ifid))
82#define ALOHA_CURR_PHY (ALOHA_PHY(pstruEventDetails->nDeviceId,pstruEventDetails->nInterfaceId))
84#define get_slot_length(phy) ((1500*8)/(phy->data_rate))
87 PPROPAGATION_INFO get_aloha_propagation_info(NETSIM_ID TX, NETSIM_ID RX);
88 double get_received_power(NETSIM_ID TX,NETSIM_ID RX,
double time);
89 int fn_NetSim_Aloha_CalulateReceivedPower();
91 int fn_NetSim_Aloha_Handle_MacOut();
93 int fn_NetSim_Aloha_PhyOut();
94 void fn_NetSim_Aloha_PhyIn();
95 int fn_NetSim_Aloha_handleMobility(NETSIM_ID d);
96 int fn_NetSim_Aloha_FreePropagationInfo();
98 int fn_NetSim_Configure_UWAN_POWER(xmlNetSimNode, nDeviceId, nInterfaceId);
99 bool set_radio_state(NETSIM_ID DeviceId, NETSIM_ID InterfaceId, PHY_TX_STATUS state);