17#include "../UWAN/UWAN.h"
115 double dTxTime= size*8.0/dDataRate;
126 return dPropagationDelay;
138 if(power < phy->rx_sensitivity)
165 double dPropagationDelay;
210 memset(&pevent, 0,
sizeof pevent);
217 pevent.
nSubEventType = isError ? ALOHA_PACKET_ERROR : ALOHA_PACKET_SUCCESS;
231 if ((tx == 1 && rx == 2) ||
PPROPAGATION_INFO get_aloha_propagation_info(NETSIM_ID TX, NETSIM_ID RX)
double get_received_power(NETSIM_ID TX, NETSIM_ID RX, double time)
#define ALOHA_PHY_OVERHEAD
#define ALOHA_PHY(devid, ifid)
static void update_interference_power(NETSIM_ID tx, NETSIM_ID rx, double time, bool isAdd)
int fn_NetSim_Aloha_PhyOut()
static void transmit_packet(NetSim_PACKET *packet, bool *flag)
static double calculate_propagation_delay(NetSim_PACKET *packet)
struct stru_packetList PACKETLIST
static void add_packet_to_txList(NetSim_PACKET *packet)
struct stru_packetList * ptrPACKETLIST
static void remove_packet_from_txList(NetSim_PACKET *packet)
static void notify_src(NETSIM_ID tx, bool isError)
static double calulate_transmission_time(NetSim_PACKET *packet)
void fn_NetSim_Aloha_PhyIn()
static void mark_packet_for_collision()
double add_power_in_dbm(double p1_dbm, double p2_dbm)
double substract_power_in_dbm(double p1_dbm, double p2_dbm)
double fnGetPacketSize(NetSim_PACKET *pstruData)
bool isBroadcastPacket(NetSim_PACKET *packet)
PACKET_STATUS fn_NetSim_Packet_DecideError(double dBER, long double dPacketSize)
#define DEVICE_TYPE(DeviceId)
EXPORTED struct stru_NetSim_Network * NETWORK
EXPORTED struct stru_NetSim_EventDetails * pstruEventDetails
#define fn_NetSim_Metrics_Add(packet)
double UWAN_Calculate_ber(NETSIM_ID tx, NETSIM_ID rx, PPROPAGATION_INFO info, double rxPower, PHY_MODULATION modulation, double dataRate, double bandwidth)
double UWAN_calculate_propagation_delay(NETSIM_ID tx, NETSIM_ID txi, NETSIM_ID rx, NETSIM_ID rxi, PPROPAGATION_INFO info)
#define fn_NetSim_Packet_CopyPacket(pstruPacket)
#define fn_NetSim_Packet_FreePacket(pstruPacket)
#define fn_NetSim_WritePacketTrace(pstruPacket)
#define fnpAddEvent(pstruEvent)
struct stru_NetSim_Packet * pPacket
netsimDEVICE_TYPE nDeviceType
PACKET_STATUS nPacketStatus
struct stru_NetSim_Packet_PhyLayer * pstruPhyData
struct stru_NetSim_Packet * pstruNextPacket
struct stru_NetSim_Packet_MACLayer * pstruMacData
double dInterferencePower
PHY_MODULATION modulation
PHY_TX_STATUS transmitter_status