📄 prov.c
字号:
/* * This piece of code is totally free. If any pitfalls found, * please feel free to contact me at jetmotor@21cn.com * THANKS A LOT! */#include <string.h>#include "prov.h"PROVISION prov;const static UINT16 frame_duration_code[] ={ 0, /* N/A */ 20, 25, 40, 50, 80, 100, 125, 200,};static void update_prov(PROVISION* prov){ prov->frm_dur = frame_duration_code[prov->frm_dur_code]; if (prov->phy_usc == PHY_PUSC) { if (prov->nsubcr == 2048) { prov->nsubchan = 60; prov->ncr_per_sc = 24; } else if (prov->nsubcr == 1024) { prov->nsubchan = 30; prov->ncr_per_sc = 24; } else if (prov->nsubcr == 512) { prov->nsubchan = 15; prov->ncr_per_sc = 24; } else if (prov->nsubcr == 128) { prov->nsubchan = 3; prov->ncr_per_sc = 24; } } else if (prov->phy_usc == PHY_FUSC) { if (prov->nsubcr == 2048) { prov->nsubchan = 32; prov->ncr_per_sc = 48; } else if (prov->nsubcr == 1024) { prov->nsubchan = 16; prov->ncr_per_sc = 48; } else if (prov->nsubcr == 512) { prov->nsubchan = 8; prov->ncr_per_sc = 48; } else if (prov->nsubcr == 128) { prov->nsubchan = 2; prov->ncr_per_sc = 48; } } prov->ncr_all = prov->nsubchan * prov->ncr_per_sc; prov->nhz_per_cr = prov->bandwidth * 1000 / prov->nsubcr; prov->nhz_per_sc = prov->nhz_per_cr * prov->ncr_per_sc; prov->nhz_per_sec = prov->nhz_per_sc * prov->nsubchan; prov->nhz_per_frm = ((prov->nhz_per_sec * prov->frm_dur) / FRM_DUR_BASE) / 1000; prov->nsym_per_cr = ((prov->nhz_per_cr * prov->frm_dur) / FRM_DUR_BASE) / 1000; if (prov->phy_mode == PHY_MODE_TDD) { prov->ul_nsym_per_cr = prov->nsym_per_cr >> 1; prov->dl_nsym_per_cr = prov->nsym_per_cr - prov->ul_nsym_per_cr; } else if (prov->phy_mode == PHY_MODE_FDD) { prov->ul_nsym_per_cr = prov->dl_nsym_per_cr = prov->nsym_per_cr; } prov->dl_nsym_per_sc = prov->dl_nsym_per_cr * prov->ncr_per_sc; prov->ul_nsym_per_sc = prov->ul_nsym_per_cr * prov->ncr_per_sc; prov->dl_nsym = prov->dl_nsym_per_sc * prov->nsubchan; prov->ul_nsym = prov->ul_nsym_per_sc * prov->nsubchan;}void init_prov(){ strcpy(prov.tx_dev, "eth0"); strcpy(prov.rx_dev, "eth0"); prov.tick_unit = 200; prov.bs_code = 0xa0a0; prov.ms_code = 0xa0b0; prov.phy_mode = PHY_MODE_TDD; prov.phy_type = PHY_TYPE_OFDMA; prov.bandwidth = 3500; /* 3.5MHz */ prov.nsubcr = 512; prov.frm_dur_code = 4; /* 5ms */ prov.phy_usc = PHY_FUSC; update_prov(&prov);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -