NetSim Source Code Help v14.4
All 13 Components
 
Loading...
Searching...
No Matches
LTENR_AntennaModel.h
1#pragma once
2/************************************************************************************
3* Copyright (C) 2023 *
4* TETCOS, Bangalore. India *
5* *
6* Tetcos owns the intellectual property rights in the Product and its content. *
7* The copying, redistribution, reselling or publication of any or all of the *
8* Product or its content without express prior written consent of Tetcos is *
9* prohibited. Ownership and / or any other right relating to the software and all *
10* intellectual property rights therein shall remain at all times with Tetcos. *
11* *
12* This source code is licensed per the NetSim license agreement. *
13* *
14* No portion of this source code may be used as the basis for a derivative work, *
15* or used, for any purpose other than its intended use per the NetSim license *
16* agreement. *
17* *
18* This source code and the algorithms contained within it are confidential trade *
19* secrets of TETCOS and may not be used as the basis for any other software, *
20* hardware, product or service. *
21* *
22* Author: Shashi Kant Suman *
23* *
24* ----------------------------------------------------------------------------------*/
25#ifndef _NETSIM_LTENR_ANTENNAMODEL_H_
26#define _NETSIM_LTENR_ANTENNAMODEL_H_
27#ifdef __cplusplus
28extern "C" {
29#endif
30
31 typedef enum
32 {
33 LTENR_OMNIDIRECTIONAL,
34 LTENR_SECTOR,
35 }LTENR_ANTENNA_TYPE;
36 static const char* strLTENR_ANTENNA_TYPE[] =
37 { "Omnidirectional Antenna", "Sector Antenna", };
38
39 typedef enum
40 {
41 LTENR_2D_PASSIVE_ANTENNA,
42 }LTENR_ANTENNA_MODEL;
43 static const char* strLTENR_ANTENNA_MODEL[] =
44 { "2D_Passive_Antenna_(per_3GPP_TR_37.840)", };
45
46 typedef struct LTENR_ANTENNA
47 {
48 //Config parameter
49 UINT txAntennaCount;
50 UINT rxAntennaCount;
51 LTENR_ANTENNA_TYPE antennaType;
52 LTENR_ANTENNA_MODEL antennaModel;
53 //Sector Antenna
54 double boresightAngle;
55 double elementGain;
56 double beamwidth;
57 double frontToBackRatio;
58 //Only in UE
59 UINT uplinkLayerCount;
60 UINT downlinkLayerCount;
61
62 }LTENR_ANTENNA, * ptrLTENR_ANTENNA;
63
64 //Function prototype
65 void LTENR_CONFIGURE_ANTENNA(NETSIM_ID d, NETSIM_ID in, ptrLTENR_ANTENNA antenna, void* xmlNetSimNode);
66 void LTENR_ANTENNA_SET_LAYER_COUNT(ptrLTENR_ANTENNA gnbAntenna, ptrLTENR_ANTENNA ueAntenna);
67 UINT LTENR_ANTENNA_GET_LAYER_COUNT(ptrLTENR_ANTENNA ueAntenna, bool isUplink);
68 UINT LTENR_ANTENNA_GET_LAYER_COUNT_FOR_NONASSOCIATED_UE(ptrLTENR_ANTENNA gnBAntenna, ptrLTENR_ANTENNA ueAntenna, bool isUplink);
69
70#define LTENR_PHY_GET_LAYER_COUNT(uePhy,isUplink) LTENR_ANTENNA_GET_LAYER_COUNT(uePhy->antenna,isUplink)
71#define LTENR_PHY_GET_DLLAYER_COUNT(uePhy) LTENR_PHY_GET_LAYER_COUNT(uePhy,false)
72#define LTENR_PHY_GET_ULLAYER_COUNT(uePhy) LTENR_PHY_GET_LAYER_COUNT(uePhy,true)
73#define LTENR_PHY_GET_LAYER_COUNT_FOR_NONASSOCIATED(gnbPhy,uePhy,isUplink) LTENR_ANTENNA_GET_LAYER_COUNT_FOR_NONASSOCIATED_UE(gnbPhy->antenna,uePhy->antenna,isUplink)
74#define LTENR_PHY_GET_DLLAYER_COUNT_FOR_NONASSOCIATED(gnbPhy,uePhy) LTENR_PHY_GET_LAYER_COUNT_FOR_NONASSOCIATED(gnbPhy,uePhy,false)
75#define LTENR_PHY_GET_ULLAYER_COUNT_FOR_NONASSOCIATED(gnbPhy,uePhy) LTENR_PHY_GET_LAYER_COUNT_FOR_NONASSOCIATED(gnbPhy,uePhy,true)
76
77#ifdef __cplusplus
78}
79#endif
80#endif //_NETSIM_LTENR_ANTENNAMODEL_H_