atten_ctrl(4591).c 85 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "main.h"
  4. #include "stm32f2xx_hal.h"
  5. #include <string.h>
  6. void Atten_Operate(uint8_t* data);
  7. void Atten_Table_Read(uint16_t Address,Atten_Table_Value_t TableName,uint8_t* data);
  8. void Uart_Data_Send(uint8_t* data,uint8_t size);
  9. #define DEBUG_PRINT 0
  10. Atten_AB_Val_t Atten_Setting;
  11. Atten_Table_Value_t ATT_A_EN_150M_Table;
  12. Atten_Table_Value_t ATT_A_EN_WIFI1_2_4Ghz_Table;
  13. Atten_Table_Value_t ATT_A_EN_WIFI2_2_4Ghz_Table;
  14. Atten_Table_Value_t ATT_A_EN_WIFI3_2_4Ghz_Table;
  15. Atten_Table_Value_t ATT_A_EN_WIFI4_2_4Ghz_Table;
  16. Atten_Table_Value_t ATT_A_EN_WIFI1_5_8Ghz_Table;
  17. Atten_Table_Value_t ATT_A_EN_WIFI2_5_8Ghz_Table;
  18. Atten_Table_Value_t ATT_A_EN_WIFI3_5_8Ghz_Table;
  19. Atten_Table_Value_t ATT_A_EN_WIFI4_5_8Ghz_Table;
  20. Atten_Table_Value_t ATT_A_EN_30G1_28_28_5Ghz_Table;
  21. Atten_Table_Value_t ATT_A_EN_30G2_28_28_5Ghz_Table;
  22. Atten_Table_Value_t ATT_A_EN_30G3_28_28_5Ghz_Table;
  23. Atten_Table_Value_t ATT_A_EN_30G1_28_5_29Ghz_Table;
  24. Atten_Table_Value_t ATT_A_EN_30G2_28_5_29Ghz_Table;
  25. Atten_Table_Value_t ATT_A_EN_30G3_28_5_29Ghz_Table;
  26. Atten_Table_Value_t ATT_A_EN_30G1_29_29_5Ghz_Table;
  27. Atten_Table_Value_t ATT_A_EN_30G2_29_29_5Ghz_Table;
  28. Atten_Table_Value_t ATT_A_EN_30G3_29_29_5Ghz_Table;
  29. Atten_Table_Value_t ATT_A_EN_30G1_29_5_30Ghz_Table;
  30. Atten_Table_Value_t ATT_A_EN_30G2_29_5_30Ghz_Table;
  31. Atten_Table_Value_t ATT_A_EN_30G3_29_5_30Ghz_Table;
  32. Atten_Table_Value_t ATT_B_EN_150M_Table;
  33. Atten_Table_Value_t ATT_B_EN_WIFI1_2_4Ghz_Table;
  34. Atten_Table_Value_t ATT_B_EN_WIFI2_2_4Ghz_Table;
  35. Atten_Table_Value_t ATT_B_EN_WIFI3_2_4Ghz_Table;
  36. Atten_Table_Value_t ATT_B_EN_WIFI4_2_4Ghz_Table;
  37. Atten_Table_Value_t ATT_B_EN_WIFI1_5_8Ghz_Table;
  38. Atten_Table_Value_t ATT_B_EN_WIFI2_5_8Ghz_Table;
  39. Atten_Table_Value_t ATT_B_EN_WIFI3_5_8Ghz_Table;
  40. Atten_Table_Value_t ATT_B_EN_WIFI4_5_8Ghz_Table;
  41. Atten_Table_Value_t ATT_B_EN_30G1_28_28_5Ghz_Table;
  42. Atten_Table_Value_t ATT_B_EN_30G2_28_28_5Ghz_Table;
  43. Atten_Table_Value_t ATT_B_EN_30G3_28_28_5Ghz_Table;
  44. Atten_Table_Value_t ATT_B_EN_30G1_28_5_29Ghz_Table;
  45. Atten_Table_Value_t ATT_B_EN_30G2_28_5_29Ghz_Table;
  46. Atten_Table_Value_t ATT_B_EN_30G3_28_5_29Ghz_Table;
  47. Atten_Table_Value_t ATT_B_EN_30G1_29_29_5Ghz_Table;
  48. Atten_Table_Value_t ATT_B_EN_30G2_29_29_5Ghz_Table;
  49. Atten_Table_Value_t ATT_B_EN_30G3_29_29_5Ghz_Table;
  50. Atten_Table_Value_t ATT_B_EN_30G1_29_5_30Ghz_Table;
  51. Atten_Table_Value_t ATT_B_EN_30G2_29_5_30Ghz_Table;
  52. Atten_Table_Value_t ATT_B_EN_30G3_29_5_30Ghz_Table;
  53. Atten_Curr_Val_t ATT_Curr_Value;
  54. #if 0 // PYJ.2019.02.15_BEGIN --
  55. void gpio_output_set(uint8_t gpioPin){
  56. HAL_GPIO_WritePinOut(gpioPin,GPIO_PIN_SET);
  57. HAL_GPIO_WritePinMode(gpioPin, ITH_GPIO_MODE0);
  58. }
  59. void Atten_GpioInit(void){
  60. gpio_output_set(ITH_GPIO_PIN70);
  61. gpio_output_set(ITH_GPIO_PIN71);
  62. gpio_output_set(ITH_GPIO_PIN72);
  63. gpio_output_set(ITH_GPIO_PIN73);
  64. gpio_output_set(ITH_GPIO_PIN74);
  65. gpio_output_set(ITH_GPIO_PIN75);
  66. gpio_output_set(ITH_GPIO_PIN76);
  67. gpio_output_set(ITH_GPIO_PIN77);
  68. gpio_output_set(ITH_GPIO_PIN78);
  69. gpio_output_set(ITH_GPIO_PIN79);
  70. gpio_output_set(ITH_GPIO_PIN80);
  71. gpio_output_set(ITH_GPIO_PIN81);
  72. gpio_output_set(ITH_GPIO_PIN5);
  73. gpio_output_set(ITH_GPIO_PIN6);
  74. gpio_output_set(ITH_GPIO_PIN7);
  75. gpio_output_set(ITH_GPIO_PIN8);
  76. gpio_output_set(ITH_GPIO_PIN9);
  77. gpio_output_set(ITH_GPIO_PIN10);
  78. gpio_output_set(ITH_GPIO_PIN11);
  79. gpio_output_set(ITH_GPIO_PIN12);
  80. gpio_output_set(ITH_GPIO_PIN13);
  81. gpio_output_set(ITH_GPIO_PIN16);
  82. gpio_output_set(ITH_GPIO_PIN17);
  83. gpio_output_set(ITH_GPIO_PIN21);
  84. gpio_output_set(ITH_GPIO_PIN22);
  85. }
  86. #endif // PYJ.2019.02.15_END --
  87. void QPC6614_Ach_atten_ctrl(uint8_t data,uint8_t Ch){
  88. atten_ctrl pin;
  89. uint8_t i = 0;
  90. pin.Clock_PIN = GPIO_PIN_8;
  91. pin.Data_PIN = GPIO_PIN_9;
  92. pin.LE_PIN = GPIO_PIN_10;
  93. if(Ch == 0) {
  94. pin.LE_PIN = GPIO_PIN_10;
  95. }//LE}
  96. else if (Ch == 1) {
  97. pin.LE_PIN = GPIO_PIN_11;
  98. }//LE}
  99. else if (Ch == 2) {
  100. pin.LE_PIN = GPIO_PIN_12;
  101. }//LE}
  102. else if (Ch == 3) {
  103. pin.LE_PIN = GPIO_PIN_13;
  104. }//LE}
  105. else if (Ch == 4) {
  106. pin.LE_PIN = GPIO_PIN_14;
  107. }//LE}
  108. pin.Port = GPIOE;
  109. for(i = 0; i < 6; i++){
  110. if(data & 0x20)
  111. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA
  112. else
  113. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  114. data <<= 1;
  115. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  116. HAL_Delay(1);
  117. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  118. HAL_Delay(1);
  119. }
  120. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  121. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  122. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE
  123. HAL_Delay(1);
  124. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  125. }
  126. void QPC6614_Bch_atten_ctrl(uint8_t data,uint8_t Ch){
  127. atten_ctrl pin;
  128. uint8_t i = 0;
  129. pin.Clock_PIN = GPIO_PIN_12;
  130. pin.Data_PIN = GPIO_PIN_13;
  131. pin.LE_PIN = GPIO_PIN_14;
  132. if(Ch == 0) {
  133. pin.LE_PIN = GPIO_PIN_14;
  134. pin.Port = GPIOG;
  135. }
  136. else if (Ch == 1) {
  137. pin.LE_PIN = GPIO_PIN_6;
  138. pin.Port = GPIOB;
  139. }
  140. else if (Ch == 2) {
  141. pin.LE_PIN = GPIO_PIN_7;
  142. pin.Port = GPIOB;
  143. }
  144. else if (Ch == 3) {
  145. pin.LE_PIN = GPIO_PIN_5;
  146. pin.Port = GPIOB;
  147. }
  148. else if (Ch == 4) {
  149. pin.LE_PIN = GPIO_PIN_9;
  150. pin.Port = GPIOB;
  151. }
  152. pin.Port = GPIOG;
  153. for(i = 0; i < 6; i++){
  154. if(data & 0x20)
  155. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA
  156. else
  157. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  158. data <<= 1;
  159. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  160. HAL_Delay(1);
  161. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  162. HAL_Delay(1);
  163. }
  164. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  165. pin.Port = GPIOB;
  166. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  167. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE
  168. HAL_Delay(1);
  169. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  170. }
  171. void ADRF5720_Ach_atten_ctrl(uint8_t data){
  172. atten_ctrl pin;
  173. uint8_t i = 0;
  174. pin.Clock_PIN = GPIO_PIN_13;
  175. pin.Data_PIN = GPIO_PIN_14;
  176. pin.LE_PIN = GPIO_PIN_15;
  177. HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_RESET);//LE
  178. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  179. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  180. for(i = 0; i < 8; i++){
  181. if(data & 0x80)
  182. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_SET);//DATA
  183. else
  184. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  185. data <<= 1;
  186. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  187. HAL_Delay(1);
  188. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  189. HAL_Delay(1);
  190. }
  191. HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_SET);//LE
  192. HAL_Delay(1);
  193. HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_RESET);//LE
  194. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  195. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  196. }
  197. void ADRF5720_Bch_atten_ctrl(uint8_t data){
  198. atten_ctrl pin;
  199. uint8_t i = 0;
  200. pin.Clock_PIN = GPIO_PIN_6;
  201. pin.Data_PIN = GPIO_PIN_7;
  202. pin.LE_PIN = GPIO_PIN_9;
  203. HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_RESET);//LE
  204. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  205. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  206. for(i = 0; i < 8; i++){
  207. if(data & 0x80)
  208. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_SET);//DATA
  209. else
  210. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  211. data <<= 1;
  212. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  213. HAL_Delay(1);
  214. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  215. HAL_Delay(1);
  216. }
  217. HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_SET);//LE
  218. HAL_Delay(1);
  219. HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_RESET);//LE
  220. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  221. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  222. }
  223. void HMC939_Ach_atten_ctrl(uint8_t data,uint8_t Ch){
  224. HMC939atten_ctrl pin;
  225. pin.ATT_P0 = GPIO_PIN_4;
  226. pin.ATT_P1 = GPIO_PIN_5;
  227. pin.ATT_P2 = GPIO_PIN_6;
  228. pin.ATT_P3 = GPIO_PIN_7;
  229. pin.ATT_P4 = GPIO_PIN_4;
  230. pin.ATT_ENABLE = GPIO_PIN_7;
  231. if(data & 0x10)
  232. HAL_GPIO_WritePin(GPIOC,pin.ATT_P4,GPIO_PIN_SET); //data
  233. else
  234. HAL_GPIO_WritePin(GPIOC,pin.ATT_P4,GPIO_PIN_RESET); //data
  235. if(data & 0x08)
  236. HAL_GPIO_WritePin(GPIOA,pin.ATT_P3,GPIO_PIN_SET); //data
  237. else
  238. HAL_GPIO_WritePin(GPIOA,pin.ATT_P3,GPIO_PIN_RESET); //data
  239. if(data & 0x04)
  240. HAL_GPIO_WritePin(GPIOA,pin.ATT_P2,GPIO_PIN_SET); //data
  241. else
  242. HAL_GPIO_WritePin(GPIOA,pin.ATT_P2,GPIO_PIN_RESET); //data
  243. if(data & 0x02)
  244. HAL_GPIO_WritePin(GPIOA,pin.ATT_P1,GPIO_PIN_SET); //data
  245. else
  246. HAL_GPIO_WritePin(GPIOA,pin.ATT_P1,GPIO_PIN_RESET); //data
  247. if(data & 0x01)
  248. HAL_GPIO_WritePin(GPIOA,pin.ATT_P0,GPIO_PIN_SET); //data
  249. else
  250. HAL_GPIO_WritePin(GPIOA,pin.ATT_P0,GPIO_PIN_RESET); //data
  251. if(Ch == 0) {
  252. pin.ATT_ENABLE = GPIO_PIN_5;//enable
  253. HAL_GPIO_WritePin(GPIOC,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  254. HAL_Delay(1);
  255. HAL_GPIO_WritePin(GPIOC,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  256. HAL_Delay(1);
  257. }//LE}
  258. if (Ch == 1) {
  259. pin.ATT_ENABLE = GPIO_PIN_0;//enable
  260. HAL_GPIO_WritePin(GPIOB,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  261. HAL_Delay(1);
  262. HAL_GPIO_WritePin(GPIOB,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  263. HAL_Delay(1);
  264. }//LE}
  265. }
  266. void HMC939_Bch_atten_ctrl(uint8_t data,uint8_t Ch){
  267. HMC939atten_ctrl pin;
  268. pin.ATT_P0 = GPIO_PIN_10;
  269. pin.ATT_P1 = GPIO_PIN_11;
  270. pin.ATT_P2 = GPIO_PIN_12;
  271. pin.ATT_P3 = GPIO_PIN_0;
  272. pin.ATT_P4 = GPIO_PIN_1;
  273. pin.ATT_ENABLE = GPIO_PIN_7;
  274. if(data & 0x10)
  275. HAL_GPIO_WritePin(GPIOD,pin.ATT_P4,GPIO_PIN_SET); //data
  276. else
  277. HAL_GPIO_WritePin(GPIOD,pin.ATT_P4,GPIO_PIN_RESET); //data
  278. if(data & 0x08)
  279. HAL_GPIO_WritePin(GPIOD,pin.ATT_P3,GPIO_PIN_SET); //data
  280. else
  281. HAL_GPIO_WritePin(GPIOD,pin.ATT_P3,GPIO_PIN_RESET); //data
  282. if(data & 0x04)
  283. HAL_GPIO_WritePin(GPIOC,pin.ATT_P2,GPIO_PIN_SET); //data
  284. else
  285. HAL_GPIO_WritePin(GPIOC,pin.ATT_P2,GPIO_PIN_RESET); //data
  286. if(data & 0x02)
  287. HAL_GPIO_WritePin(GPIOC,pin.ATT_P1,GPIO_PIN_SET); //data
  288. else
  289. HAL_GPIO_WritePin(GPIOC,pin.ATT_P1,GPIO_PIN_RESET); //data
  290. if(data & 0x01)
  291. HAL_GPIO_WritePin(GPIOC,pin.ATT_P0,GPIO_PIN_SET); //data
  292. else
  293. HAL_GPIO_WritePin(GPIOC,pin.ATT_P0,GPIO_PIN_RESET); //data
  294. if(Ch == 0) {
  295. pin.ATT_ENABLE = GPIO_PIN_2;//enable
  296. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  297. HAL_Delay(1);
  298. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  299. HAL_Delay(1);
  300. }//LE}
  301. if (Ch == 1) {
  302. pin.ATT_ENABLE = GPIO_PIN_3;//enable
  303. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  304. HAL_Delay(1);
  305. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  306. HAL_Delay(1);
  307. }//LE}
  308. }
  309. Atten_Alarm_t Atten_Alarm_Read(void){
  310. Atten_Alarm_t ret;
  311. ret.Atten_Ach_Alarm_30G = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6);
  312. ret.Atten_Bch_Alarm_30G = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1);
  313. ret.Atten_Ach_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_7);
  314. ret.Atten_Bch_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2);
  315. ret.Atten_Ach_Alarm_150M = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8);
  316. ret.Atten_Bch_Alarm_150M = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3);
  317. return ret;
  318. }
  319. void Alarm_Operate(Atten_Alarm_t data){
  320. if(data.Atten_Ach_Alarm_30G == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_30G == GPIO_PIN_RESET){
  321. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET);
  322. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET);
  323. }
  324. else{
  325. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET);
  326. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);
  327. }
  328. if(data.Atten_Ach_Alarm_WIFI == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_WIFI == GPIO_PIN_RESET){
  329. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET);
  330. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);
  331. }
  332. else{
  333. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET);
  334. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);
  335. }
  336. if(data.Atten_Ach_Alarm_150M == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_150M == GPIO_PIN_RESET){
  337. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_RESET);
  338. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_SET);
  339. }
  340. else{
  341. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_SET);
  342. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET);
  343. }
  344. }
  345. void Uart_Data_Send(uint8_t* data,uint8_t size){
  346. HAL_UART_Transmit(&huart3, data,size, 10);
  347. // for(uint8_t i = 0; i <data[Bluecell_Length] + 5;i++ )
  348. // printf("%02x ",data[i]);
  349. // printf("\r\n");
  350. }
  351. #define ATT_NOT_CRC_CHECK_LEN 5
  352. #define ATT_AB_CH_Read_Length 38 + ATT_NOT_CRC_CHECK_LEN
  353. uint8_t printf_if = 0;
  354. uint8_t Atten_Offset_QPC6614(Atten_Table_Value_t TableName, uint8_t data){
  355. uint8_t ret = 0;
  356. uint8_t temp_data[100] = {0,};
  357. memcpy(temp_data,&TableName.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));
  358. switch(data){
  359. case QPC6614_Atten_31_5dB_num : ret = TableName.Atten_Table_31_5dB_Value ;break;
  360. case QPC6614_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  361. case QPC6614_Atten_30_5dB_num : ret = TableName.Atten_Table_30_5dB_Value ;break;
  362. case QPC6614_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  363. case QPC6614_Atten_29_5dB_num : ret = TableName.Atten_Table_29_5dB_Value ;break;
  364. case QPC6614_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  365. case QPC6614_Atten_28_5dB_num : ret = TableName.Atten_Table_28_5dB_Value ;break;
  366. case QPC6614_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  367. case QPC6614_Atten_27_5dB_num : ret = TableName.Atten_Table_27_5dB_Value ;break;
  368. case QPC6614_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  369. case QPC6614_Atten_26_5dB_num : ret = TableName.Atten_Table_26_5dB_Value ;break;
  370. case QPC6614_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  371. case QPC6614_Atten_25_5dB_num : ret = TableName.Atten_Table_25_5dB_Value ;break;
  372. case QPC6614_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  373. case QPC6614_Atten_24_5dB_num : ret = TableName.Atten_Table_24_5dB_Value ;break;
  374. case QPC6614_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  375. case QPC6614_Atten_23_5dB_num : ret = TableName.Atten_Table_23_5dB_Value ;break;
  376. case QPC6614_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  377. case QPC6614_Atten_22_5dB_num : ret = TableName.Atten_Table_22_5dB_Value ;break;
  378. case QPC6614_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  379. case QPC6614_Atten_21_5dB_num : ret = TableName.Atten_Table_21_5dB_Value ;break;
  380. case QPC6614_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  381. case QPC6614_Atten_20_5dB_num : ret = TableName.Atten_Table_20_5dB_Value ;break;
  382. case QPC6614_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  383. case QPC6614_Atten_19_5dB_num : ret = TableName.Atten_Table_19_5dB_Value ;break;
  384. case QPC6614_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  385. case QPC6614_Atten_18_5dB_num : ret = TableName.Atten_Table_18_5dB_Value ;break;
  386. case QPC6614_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  387. case QPC6614_Atten_17_5dB_num : ret = TableName.Atten_Table_17_5dB_Value ;break;
  388. case QPC6614_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  389. case QPC6614_Atten_16_5dB_num : ret = TableName.Atten_Table_16_5dB_Value ;break;
  390. case QPC6614_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  391. case QPC6614_Atten_15_5dB_num : ret = TableName.Atten_Table_15_5dB_Value ;break;
  392. case QPC6614_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  393. case QPC6614_Atten_14_5dB_num : ret = TableName.Atten_Table_14_5dB_Value ;break;
  394. case QPC6614_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  395. case QPC6614_Atten_13_5dB_num : ret = TableName.Atten_Table_13_5dB_Value ;break;
  396. case QPC6614_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  397. case QPC6614_Atten_12_5dB_num : ret = TableName.Atten_Table_12_5dB_Value ;break;
  398. case QPC6614_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  399. case QPC6614_Atten_11_5dB_num : ret = TableName.Atten_Table_11_5dB_Value ;break;
  400. case QPC6614_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  401. case QPC6614_Atten_10_5dB_num : ret = TableName.Atten_Table_10_5dB_Value ;break;
  402. case QPC6614_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  403. case QPC6614_Atten_9_5dB_num : ret = TableName.Atten_Table_9_5dB_Value ;break;
  404. case QPC6614_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  405. case QPC6614_Atten_8_5dB_num : ret = TableName.Atten_Table_8_5dB_Value ;break;
  406. case QPC6614_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  407. case QPC6614_Atten_7_5dB_num : ret = TableName.Atten_Table_7_5dB_Value ;break;
  408. case QPC6614_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  409. case QPC6614_Atten_6_5dB_num : ret = TableName.Atten_Table_6_5dB_Value ;break;
  410. case QPC6614_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  411. case QPC6614_Atten_5_5dB_num : ret = TableName.Atten_Table_5_5dB_Value ;break;
  412. case QPC6614_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  413. case QPC6614_Atten_4_5dB_num : ret = TableName.Atten_Table_4_5dB_Value ;break;
  414. case QPC6614_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  415. case QPC6614_Atten_3_5dB_num : ret = TableName.Atten_Table_3_5dB_Value ;break;
  416. case QPC6614_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  417. case QPC6614_Atten_2_5dB_num : ret = TableName.Atten_Table_2_5dB_Value ;break;
  418. case QPC6614_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  419. case QPC6614_Atten_1_5dB_num : ret = TableName.Atten_Table_1_5dB_Value ;break;
  420. case QPC6614_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  421. case QPC6614_Atten_0_5dB_num : ret = TableName.Atten_Table_0_5dB_Value ;break;
  422. case QPC6614_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  423. default : printf("Critical Error\r\n");
  424. }
  425. return ret;
  426. }
  427. uint8_t Atten_Offset_ADRF5720(Atten_Table_Value_t TableName, uint8_t data){
  428. uint8_t ret = 0;
  429. switch(data){
  430. case ADRF5720_Atten_31_5dB_num : ret = TableName.Atten_Table_31_5dB_Value ;break;
  431. case ADRF5720_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  432. case ADRF5720_Atten_30_5dB_num : ret = TableName.Atten_Table_30_5dB_Value ;break;
  433. case ADRF5720_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  434. case ADRF5720_Atten_29_5dB_num : ret = TableName.Atten_Table_29_5dB_Value ;break;
  435. case ADRF5720_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  436. case ADRF5720_Atten_28_5dB_num : ret = TableName.Atten_Table_28_5dB_Value ;break;
  437. case ADRF5720_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  438. case ADRF5720_Atten_27_5dB_num : ret = TableName.Atten_Table_27_5dB_Value ;break;
  439. case ADRF5720_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  440. case ADRF5720_Atten_26_5dB_num : ret = TableName.Atten_Table_26_5dB_Value ;break;
  441. case ADRF5720_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  442. case ADRF5720_Atten_25_5dB_num : ret = TableName.Atten_Table_25_5dB_Value ;break;
  443. case ADRF5720_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  444. case ADRF5720_Atten_24_5dB_num : ret = TableName.Atten_Table_24_5dB_Value ;break;
  445. case ADRF5720_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  446. case ADRF5720_Atten_23_5dB_num : ret = TableName.Atten_Table_23_5dB_Value ;break;
  447. case ADRF5720_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  448. case ADRF5720_Atten_22_5dB_num : ret = TableName.Atten_Table_22_5dB_Value ;break;
  449. case ADRF5720_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  450. case ADRF5720_Atten_21_5dB_num : ret = TableName.Atten_Table_21_5dB_Value ;break;
  451. case ADRF5720_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  452. case ADRF5720_Atten_20_5dB_num : ret = TableName.Atten_Table_20_5dB_Value ;break;
  453. case ADRF5720_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  454. case ADRF5720_Atten_19_5dB_num : ret = TableName.Atten_Table_19_5dB_Value ;break;
  455. case ADRF5720_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  456. case ADRF5720_Atten_18_5dB_num : ret = TableName.Atten_Table_18_5dB_Value ;break;
  457. case ADRF5720_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  458. case ADRF5720_Atten_17_5dB_num : ret = TableName.Atten_Table_17_5dB_Value ;break;
  459. case ADRF5720_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  460. case ADRF5720_Atten_16_5dB_num : ret = TableName.Atten_Table_16_5dB_Value ;break;
  461. case ADRF5720_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  462. case ADRF5720_Atten_15_5dB_num : ret = TableName.Atten_Table_15_5dB_Value ;break;
  463. case ADRF5720_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  464. case ADRF5720_Atten_14_5dB_num : ret = TableName.Atten_Table_14_5dB_Value ;break;
  465. case ADRF5720_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  466. case ADRF5720_Atten_13_5dB_num : ret = TableName.Atten_Table_13_5dB_Value ;break;
  467. case ADRF5720_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  468. case ADRF5720_Atten_12_5dB_num : ret = TableName.Atten_Table_12_5dB_Value ;break;
  469. case ADRF5720_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  470. case ADRF5720_Atten_11_5dB_num : ret = TableName.Atten_Table_11_5dB_Value ;break;
  471. case ADRF5720_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  472. case ADRF5720_Atten_10_5dB_num : ret = TableName.Atten_Table_10_5dB_Value ;break;
  473. case ADRF5720_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  474. case ADRF5720_Atten_9_5dB_num : ret = TableName.Atten_Table_9_5dB_Value ;break;
  475. case ADRF5720_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  476. case ADRF5720_Atten_8_5dB_num : ret = TableName.Atten_Table_8_5dB_Value ;break;
  477. case ADRF5720_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  478. case ADRF5720_Atten_7_5dB_num : ret = TableName.Atten_Table_7_5dB_Value ;break;
  479. case ADRF5720_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  480. case ADRF5720_Atten_6_5dB_num : ret = TableName.Atten_Table_6_5dB_Value ;break;
  481. case ADRF5720_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  482. case ADRF5720_Atten_5_5dB_num : ret = TableName.Atten_Table_5_5dB_Value ;break;
  483. case ADRF5720_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  484. case ADRF5720_Atten_4_5dB_num : ret = TableName.Atten_Table_4_5dB_Value ;break;
  485. case ADRF5720_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  486. case ADRF5720_Atten_3_5dB_num : ret = TableName.Atten_Table_3_5dB_Value ;break;
  487. case ADRF5720_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  488. case ADRF5720_Atten_2_5dB_num : ret = TableName.Atten_Table_2_5dB_Value ;break;
  489. case ADRF5720_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  490. case ADRF5720_Atten_1_5dB_num : ret = TableName.Atten_Table_1_5dB_Value ;break;
  491. case ADRF5720_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  492. case ADRF5720_Atten_0_5dB_num : ret = TableName.Atten_Table_0_5dB_Value ;break;
  493. case ADRF5720_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  494. default : printf("Critical Error\r\n");
  495. }
  496. return ret;
  497. }
  498. uint8_t Atten_Offset_HMC939(Atten_Table_Value_t TableName, uint8_t data){
  499. uint8_t ret = 0;
  500. switch(data){
  501. case HMC939_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  502. case HMC939_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  503. case HMC939_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  504. case HMC939_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  505. case HMC939_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  506. case HMC939_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  507. case HMC939_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  508. case HMC939_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  509. case HMC939_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  510. case HMC939_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  511. case HMC939_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  512. case HMC939_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  513. case HMC939_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  514. case HMC939_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  515. case HMC939_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  516. case HMC939_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  517. case HMC939_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  518. case HMC939_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  519. case HMC939_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  520. case HMC939_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  521. case HMC939_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  522. case HMC939_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  523. case HMC939_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  524. case HMC939_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  525. case HMC939_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  526. case HMC939_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  527. case HMC939_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  528. case HMC939_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  529. case HMC939_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  530. case HMC939_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  531. case HMC939_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  532. case HMC939_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  533. default : printf("Critical Error\r\n");
  534. }
  535. return ret;
  536. }
  537. typedef enum{
  538. QPC6614_Offset_Sel ,
  539. HMC939_Offset_Sel ,
  540. ADRF5720_Offset_Sel,
  541. }offset_type_t;
  542. uint8_t Atten_Offset_Calc(offset_type_t type,Atten_Table_Value_t TableName,uint8_t data){
  543. uint8_t ret = 0;
  544. switch(type){
  545. case QPC6614_Offset_Sel: Atten_Offset_QPC6614(TableName,data); break;
  546. case HMC939_Offset_Sel: Atten_Offset_HMC939(TableName,data); break;
  547. case ADRF5720_Offset_Sel: Atten_Offset_ADRF5720(TableName,data);break;
  548. }
  549. return ret;
  550. }
  551. void Atten_Init(void){
  552. QPC6614_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_150M,0);
  553. QPC6614_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_1,1);
  554. QPC6614_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_2,2);
  555. QPC6614_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_3,3);
  556. QPC6614_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_4,4);
  557. HMC939_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_30G_1,0);
  558. HMC939_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_30G_2,1);
  559. ADRF5720_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_30G_3);
  560. QPC6614_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_150M,0);
  561. QPC6614_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_1,1);
  562. QPC6614_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_2,2);
  563. QPC6614_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_3,3);
  564. QPC6614_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_4,4);
  565. HMC939_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_30G_1,0);
  566. HMC939_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_30G_2,1);
  567. ADRF5720_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_30G_3);
  568. }
  569. void Atten_Operate(uint8_t* data){
  570. AttenType_t Temp_Type = data[Bluecell_Type];
  571. // uint8_t ret[100] = {0,};
  572. switch(Temp_Type){
  573. case ATT_AB_CH_Read : /*memcpy(&ret[Bluecell_DATA],&data,) */
  574. data[Bluecell_STX] = 0xBE;
  575. data[Bluecell_Type] = ATT_AB_CH_Read;
  576. memcpy(&data[Bluecell_DATA],&Atten_Setting.ATT_A_CH_150M,42);
  577. data[data[Bluecell_Length] + 3] = STH30_CreateCrc(&data[Bluecell_Type],data[Bluecell_Length]+2);
  578. data[data[Bluecell_Length] + 4] = 0xEB;
  579. Uart_Data_Send(data,data[Bluecell_Length] +5);break;
  580. case ATT_A_CH_150M :
  581. QPC6614_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  582. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_150M,&data[Bluecell_DATA] ,1);
  583. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_150M,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  584. break;
  585. case ATT_A_CH_WIFI2_4Ghz :
  586. for(uint8_t i = 0; i < 4; i++)
  587. QPC6614_Ach_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  588. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  589. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_WIFI2_4Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  590. break;
  591. case ATT_A_CH_WIFI5_8Ghz :
  592. for(uint8_t i = 0; i < 4; i++)
  593. QPC6614_Ach_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  594. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  595. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_WIFI5_8Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  596. break;
  597. case ATT_A_CH_30G_28_28_5 :
  598. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  599. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  600. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  601. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  602. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_28_28_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  603. break;
  604. case ATT_A_CH_30G_28_5_29 :
  605. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  606. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  607. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  608. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  609. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_28_5_29,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  610. break;
  611. case ATT_A_CH_30G_29_29_5 :
  612. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  613. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  614. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  615. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  616. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_29_29_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  617. break;
  618. case ATT_A_CH_30G_29_5_30 :
  619. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  620. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  621. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  622. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  623. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_29_5_30,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  624. break;
  625. case ATT_B_CH_150M :
  626. QPC6614_Bch_atten_ctrl(data[Bluecell_DATA],0);
  627. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_150M,&data[Bluecell_DATA] ,1);
  628. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_150M,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  629. break;
  630. case ATT_B_CH_WIFI2_4Ghz :
  631. for(uint8_t i = 0; i < 4; i++)
  632. QPC6614_Bch_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  633. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  634. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_WIFI2_4Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  635. break;
  636. case ATT_B_CH_WIFI5_8Ghz :
  637. for(uint8_t i = 0; i < 4; i++)
  638. QPC6614_Bch_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  639. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  640. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_WIFI5_8Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  641. break;
  642. case ATT_B_CH_30G_28_28_5 :
  643. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  644. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  645. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  646. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  647. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_28_28_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  648. break;
  649. case ATT_B_CH_30G_28_5_29 :
  650. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  651. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  652. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  653. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  654. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_28_5_29,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  655. break;
  656. case ATT_B_CH_30G_29_29_5 :
  657. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  658. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  659. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  660. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  661. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_29_29_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  662. break;
  663. case ATT_B_CH_30G_29_5_30 :
  664. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  665. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  666. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  667. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  668. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_29_5_30,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  669. break;
  670. /****************************TABLE************************************/
  671. case ATT_A_EN_150M : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_150M ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__);break;
  672. case ATT_A_EN_WIFI1_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI1_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  673. case ATT_A_EN_WIFI2_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI2_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  674. case ATT_A_EN_WIFI3_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI3_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  675. case ATT_A_EN_WIFI4_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI4_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  676. case ATT_A_EN_WIFI1_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI1_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  677. case ATT_A_EN_WIFI2_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI2_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  678. case ATT_A_EN_WIFI3_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI3_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  679. case ATT_A_EN_WIFI4_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_WIFI4_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  680. case ATT_A_EN_30G1_28_28_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G1_28_28_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  681. case ATT_A_EN_30G2_28_28_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G2_28_28_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  682. case ATT_A_EN_30G3_28_28_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G3_28_28_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  683. case ATT_A_EN_30G1_28_5_29Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G1_28_5_29Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  684. case ATT_A_EN_30G2_28_5_29Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G2_28_5_29Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  685. case ATT_A_EN_30G3_28_5_29Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G3_28_5_29Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  686. case ATT_A_EN_30G1_29_29_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G1_29_29_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  687. case ATT_A_EN_30G2_29_29_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G2_29_29_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  688. case ATT_A_EN_30G3_29_29_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G3_29_29_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  689. case ATT_A_EN_30G1_29_5_30Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G1_29_5_30Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  690. case ATT_A_EN_30G2_29_5_30Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G2_29_5_30Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  691. case ATT_A_EN_30G3_29_5_30Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_30G3_29_5_30Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  692. case ATT_B_EN_150M : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_150M ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  693. case ATT_B_EN_WIFI1_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI1_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  694. case ATT_B_EN_WIFI2_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI2_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  695. case ATT_B_EN_WIFI3_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI3_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  696. case ATT_B_EN_WIFI4_2_4Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI4_2_4Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  697. case ATT_B_EN_WIFI1_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI1_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  698. case ATT_B_EN_WIFI2_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI2_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  699. case ATT_B_EN_WIFI3_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI3_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  700. case ATT_B_EN_WIFI4_5_8Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_WIFI4_5_8Ghz ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  701. case ATT_B_EN_30G1_28_28_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G1_28_28_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  702. case ATT_B_EN_30G2_28_28_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G2_28_28_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  703. case ATT_B_EN_30G3_28_28_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G3_28_28_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  704. case ATT_B_EN_30G1_28_5_29Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G1_28_5_29Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  705. case ATT_B_EN_30G2_28_5_29Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G2_28_5_29Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  706. case ATT_B_EN_30G3_28_5_29Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G3_28_5_29Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  707. case ATT_B_EN_30G1_29_29_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G1_29_29_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  708. case ATT_B_EN_30G2_29_29_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G2_29_29_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  709. case ATT_B_EN_30G3_29_29_5Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G3_29_29_5Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  710. case ATT_B_EN_30G1_29_5_30Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G1_29_5_30Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  711. case ATT_B_EN_30G2_29_5_30Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G2_29_5_30Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));if(printf_if == 1)printf("Line : %d\r\n",__LINE__); break;
  712. case ATT_B_EN_30G3_29_5_30Ghz : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_30G3_29_5_30Ghz,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));break;
  713. /****************************TABLE*********************/
  714. case ATT_A_EN_150M_R : Atten_Table_Read(EEPROM_ATT_A_EN_150M ,ATT_A_EN_150M_Table ,&data[Bluecell_STX]); break;
  715. case ATT_A_EN_WIFI1_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI1_2_4Ghz ,ATT_A_EN_WIFI1_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  716. case ATT_A_EN_WIFI2_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI2_2_4Ghz ,ATT_A_EN_WIFI2_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  717. case ATT_A_EN_WIFI3_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI3_2_4Ghz ,ATT_A_EN_WIFI3_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  718. case ATT_A_EN_WIFI4_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI4_2_4Ghz ,ATT_A_EN_WIFI4_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  719. case ATT_A_EN_WIFI1_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI1_5_8Ghz ,ATT_A_EN_WIFI1_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  720. case ATT_A_EN_WIFI2_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI2_5_8Ghz ,ATT_A_EN_WIFI2_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  721. case ATT_A_EN_WIFI3_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI3_5_8Ghz ,ATT_A_EN_WIFI3_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  722. case ATT_A_EN_WIFI4_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_WIFI4_5_8Ghz ,ATT_A_EN_WIFI4_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  723. case ATT_A_EN_30G1_28_28_5Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G1_28_28_5Ghz,ATT_A_EN_30G1_28_28_5Ghz_Table ,&data[Bluecell_STX]); break;
  724. case ATT_A_EN_30G2_28_28_5Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G2_28_28_5Ghz,ATT_A_EN_30G2_28_28_5Ghz_Table ,&data[Bluecell_STX]); break;
  725. case ATT_A_EN_30G3_28_28_5Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G3_28_28_5Ghz,ATT_A_EN_30G3_28_28_5Ghz_Table ,&data[Bluecell_STX]); break;
  726. case ATT_A_EN_30G1_28_5_29Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G1_28_5_29Ghz,ATT_A_EN_30G1_28_5_29Ghz_Table ,&data[Bluecell_STX]); break;
  727. case ATT_A_EN_30G2_28_5_29Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G2_28_5_29Ghz,ATT_A_EN_30G2_28_5_29Ghz_Table ,&data[Bluecell_STX]); break;
  728. case ATT_A_EN_30G3_28_5_29Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G3_28_5_29Ghz,ATT_A_EN_30G3_28_5_29Ghz_Table ,&data[Bluecell_STX]); break;
  729. case ATT_A_EN_30G1_29_29_5Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G1_29_29_5Ghz,ATT_A_EN_30G1_29_29_5Ghz_Table ,&data[Bluecell_STX]); break;
  730. case ATT_A_EN_30G2_29_29_5Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G2_29_29_5Ghz,ATT_A_EN_30G2_29_29_5Ghz_Table ,&data[Bluecell_STX]); break;
  731. case ATT_A_EN_30G3_29_29_5Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G3_29_29_5Ghz,ATT_A_EN_30G3_29_29_5Ghz_Table ,&data[Bluecell_STX]); break;
  732. case ATT_A_EN_30G1_29_5_30Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G1_29_5_30Ghz,ATT_A_EN_30G1_29_5_30Ghz_Table ,&data[Bluecell_STX]); break;
  733. case ATT_A_EN_30G2_29_5_30Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G2_29_5_30Ghz,ATT_A_EN_30G2_29_5_30Ghz_Table ,&data[Bluecell_STX]); break;
  734. case ATT_A_EN_30G3_29_5_30Ghz_R : Atten_Table_Read(EEPROM_ATT_A_EN_30G3_29_5_30Ghz,ATT_A_EN_30G3_29_5_30Ghz_Table ,&data[Bluecell_STX]); break;
  735. case ATT_B_EN_150M_R : Atten_Table_Read(EEPROM_ATT_B_EN_150M ,ATT_B_EN_150M_Table ,&data[Bluecell_STX]); break;
  736. case ATT_B_EN_WIFI1_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI1_2_4Ghz ,ATT_B_EN_WIFI1_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  737. case ATT_B_EN_WIFI2_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI2_2_4Ghz ,ATT_B_EN_WIFI2_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  738. case ATT_B_EN_WIFI3_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI3_2_4Ghz ,ATT_B_EN_WIFI3_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  739. case ATT_B_EN_WIFI4_2_4Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI4_2_4Ghz ,ATT_B_EN_WIFI4_2_4Ghz_Table ,&data[Bluecell_STX]); break;
  740. case ATT_B_EN_WIFI1_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI1_5_8Ghz ,ATT_B_EN_WIFI1_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  741. case ATT_B_EN_WIFI2_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI2_5_8Ghz ,ATT_B_EN_WIFI2_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  742. case ATT_B_EN_WIFI3_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI3_5_8Ghz ,ATT_B_EN_WIFI3_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  743. case ATT_B_EN_WIFI4_5_8Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_WIFI4_5_8Ghz ,ATT_B_EN_WIFI4_5_8Ghz_Table ,&data[Bluecell_STX]); break;
  744. case ATT_B_EN_30G1_28_28_5Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G1_28_28_5Ghz,ATT_B_EN_30G1_28_28_5Ghz_Table ,&data[Bluecell_STX]); break;
  745. case ATT_B_EN_30G2_28_28_5Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G2_28_28_5Ghz,ATT_B_EN_30G2_28_28_5Ghz_Table ,&data[Bluecell_STX]); break;
  746. case ATT_B_EN_30G3_28_28_5Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G3_28_28_5Ghz,ATT_B_EN_30G3_28_28_5Ghz_Table ,&data[Bluecell_STX]); break;
  747. case ATT_B_EN_30G1_28_5_29Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G1_28_5_29Ghz,ATT_B_EN_30G1_28_5_29Ghz_Table ,&data[Bluecell_STX]); break;
  748. case ATT_B_EN_30G2_28_5_29Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G2_28_5_29Ghz,ATT_B_EN_30G2_28_5_29Ghz_Table ,&data[Bluecell_STX]); break;
  749. case ATT_B_EN_30G3_28_5_29Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G3_28_5_29Ghz,ATT_B_EN_30G3_28_5_29Ghz_Table ,&data[Bluecell_STX]); break;
  750. case ATT_B_EN_30G1_29_29_5Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G1_29_29_5Ghz,ATT_B_EN_30G1_29_29_5Ghz_Table ,&data[Bluecell_STX]); break;
  751. case ATT_B_EN_30G2_29_29_5Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G2_29_29_5Ghz,ATT_B_EN_30G2_29_29_5Ghz_Table ,&data[Bluecell_STX]); break;
  752. case ATT_B_EN_30G3_29_29_5Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G3_29_29_5Ghz,ATT_B_EN_30G3_29_29_5Ghz_Table ,&data[Bluecell_STX]); break;
  753. case ATT_B_EN_30G1_29_5_30Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G1_29_5_30Ghz,ATT_B_EN_30G1_29_5_30Ghz_Table ,&data[Bluecell_STX]); break;
  754. case ATT_B_EN_30G2_29_5_30Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G2_29_5_30Ghz,ATT_B_EN_30G2_29_5_30Ghz_Table ,&data[Bluecell_STX]); break;
  755. case ATT_B_EN_30G3_29_5_30Ghz_R : Atten_Table_Read(EEPROM_ATT_B_EN_30G3_29_5_30Ghz,ATT_B_EN_30G3_29_5_30Ghz_Table ,&data[Bluecell_STX]); break;
  756. }
  757. }
  758. void Atten_Table_Read(uint16_t Address,Atten_Table_Value_t TableName,uint8_t* data){
  759. memcpy(&data[Bluecell_DATA],&TableName.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));
  760. data[data[Bluecell_Length] + 3] = STH30_CreateCrc(&data[Bluecell_Type],data[Bluecell_Length] + 2);
  761. data[data[Bluecell_Length] + 4] = 0xeb;
  762. Uart_Data_Send(data,data[Bluecell_Length]+5);
  763. }
  764. void Atten_Operate_Mem_RW(uint8_t* data){
  765. AttenType_t Temp_Type = data[Bluecell_Type];
  766. uint8_t ResultBuf[100] ={0,};
  767. ResultBuf[Bluecell_STX] = data[Bluecell_STX];
  768. ResultBuf[Bluecell_Type] = data[Bluecell_Type];
  769. ResultBuf[Bluecell_Length] = data[Bluecell_Length];
  770. ResultBuf[ResultBuf[Bluecell_Length] + 4] = data[data[Bluecell_Length] + 4];
  771. switch(Temp_Type){
  772. case ATT_AB_CH_Read :
  773. memcpy(&ResultBuf[Bluecell_DATA],&Atten_Setting.ATT_A_CH_150M,data[Bluecell_DATA]);
  774. break;
  775. case ATT_A_CH_150M :
  776. Atten_Setting.ATT_A_CH_150M = data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_A_EN_150M_Table,data[Bluecell_DATA]);
  777. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  778. break;
  779. case ATT_A_CH_WIFI2_4Ghz :
  780. Atten_Setting.ATT_A_CH_WIFI2_4Ghz_QPC6614_1 = data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_A_EN_WIFI1_2_4Ghz_Table,data[Bluecell_DATA]);
  781. Atten_Setting.ATT_A_CH_WIFI2_4Ghz_QPC6614_2 = data[Bluecell_DATA + 1] = Atten_Offset_QPC6614(ATT_A_EN_WIFI2_2_4Ghz_Table,data[Bluecell_DATA + 1]);
  782. Atten_Setting.ATT_A_CH_WIFI2_4Ghz_QPC6614_3 = data[Bluecell_DATA + 2] = Atten_Offset_QPC6614(ATT_A_EN_WIFI3_2_4Ghz_Table,data[Bluecell_DATA + 2]);
  783. Atten_Setting.ATT_A_CH_WIFI2_4Ghz_QPC6614_4 = data[Bluecell_DATA + 3] = Atten_Offset_QPC6614(ATT_A_EN_WIFI4_2_4Ghz_Table,data[Bluecell_DATA + 3]);
  784. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  785. break;
  786. case ATT_A_CH_WIFI5_8Ghz :
  787. Atten_Setting.ATT_A_CH_WIFI5_8Ghz_QPC6614_1 = data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_A_EN_WIFI1_5_8Ghz_Table,data[Bluecell_DATA]);
  788. Atten_Setting.ATT_A_CH_WIFI5_8Ghz_QPC6614_2 = data[Bluecell_DATA + 1] = Atten_Offset_QPC6614(ATT_A_EN_WIFI2_5_8Ghz_Table,data[Bluecell_DATA + 1]);
  789. Atten_Setting.ATT_A_CH_WIFI5_8Ghz_QPC6614_3 = data[Bluecell_DATA + 2] = Atten_Offset_QPC6614(ATT_A_EN_WIFI3_5_8Ghz_Table,data[Bluecell_DATA + 2]);
  790. Atten_Setting.ATT_A_CH_WIFI5_8Ghz_QPC6614_4 = data[Bluecell_DATA + 3] = Atten_Offset_QPC6614(ATT_A_EN_WIFI4_5_8Ghz_Table,data[Bluecell_DATA + 3]);
  791. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  792. break;
  793. case ATT_A_CH_30G_28_28_5 :
  794. Atten_Setting.ATT_A_CH_30G_28_28_5_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_28_28_5Ghz_Table,data[Bluecell_DATA]);
  795. Atten_Setting.ATT_A_CH_30G_28_28_5_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_28_28_5Ghz_Table,data[Bluecell_DATA + 1]);
  796. Atten_Setting.ATT_A_CH_30G_28_28_5_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_28_28_5Ghz_Table,data[Bluecell_DATA + 2]);
  797. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  798. break;
  799. case ATT_A_CH_30G_28_5_29 :
  800. Atten_Setting.ATT_A_CH_30G_28_5_29_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_28_5_29Ghz_Table,data[Bluecell_DATA]);
  801. Atten_Setting.ATT_A_CH_30G_28_5_29_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_28_5_29Ghz_Table,data[Bluecell_DATA + 1]);
  802. Atten_Setting.ATT_A_CH_30G_28_5_29_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_28_5_29Ghz_Table,data[Bluecell_DATA + 2]);
  803. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  804. break;
  805. case ATT_A_CH_30G_29_29_5 :
  806. Atten_Setting.ATT_A_CH_30G_29_29_5_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_29_29_5Ghz_Table,data[Bluecell_DATA]);
  807. Atten_Setting.ATT_A_CH_30G_29_29_5_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_29_29_5Ghz_Table,data[Bluecell_DATA + 1]);
  808. Atten_Setting.ATT_A_CH_30G_29_29_5_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_29_29_5Ghz_Table,data[Bluecell_DATA + 2]);
  809. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  810. break;
  811. case ATT_A_CH_30G_29_5_30 :
  812. Atten_Setting.ATT_A_CH_30G_29_5_30_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_29_5_30Ghz_Table,data[Bluecell_DATA]);
  813. Atten_Setting.ATT_A_CH_30G_29_5_30_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_29_5_30Ghz_Table,data[Bluecell_DATA + 1]);
  814. Atten_Setting.ATT_A_CH_30G_29_5_30_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_29_5_30Ghz_Table,data[Bluecell_DATA + 2]);
  815. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  816. break;
  817. case ATT_B_CH_150M:
  818. Atten_Setting.ATT_B_CH_150M = data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_B_EN_150M_Table,data[Bluecell_DATA]);
  819. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  820. break;
  821. case ATT_B_CH_WIFI2_4Ghz :
  822. Atten_Setting.ATT_B_CH_WIFI2_4Ghz_QPC6614_1 = data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_B_EN_WIFI1_2_4Ghz_Table,data[Bluecell_DATA]);
  823. Atten_Setting.ATT_B_CH_WIFI2_4Ghz_QPC6614_2 = data[Bluecell_DATA + 1] = Atten_Offset_QPC6614(ATT_B_EN_WIFI2_2_4Ghz_Table,data[Bluecell_DATA + 1]);
  824. Atten_Setting.ATT_B_CH_WIFI2_4Ghz_QPC6614_3 = data[Bluecell_DATA + 2] = Atten_Offset_QPC6614(ATT_B_EN_WIFI3_2_4Ghz_Table,data[Bluecell_DATA + 2]);
  825. Atten_Setting.ATT_B_CH_WIFI2_4Ghz_QPC6614_4 = data[Bluecell_DATA + 3] = Atten_Offset_QPC6614(ATT_B_EN_WIFI4_2_4Ghz_Table,data[Bluecell_DATA + 3]);
  826. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  827. break;
  828. case ATT_B_CH_WIFI5_8Ghz :
  829. Atten_Setting.ATT_B_CH_WIFI5_8Ghz_QPC6614_1 = data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_B_EN_WIFI1_5_8Ghz_Table,data[Bluecell_DATA]);
  830. Atten_Setting.ATT_B_CH_WIFI5_8Ghz_QPC6614_2 = data[Bluecell_DATA + 1] = Atten_Offset_QPC6614(ATT_B_EN_WIFI2_5_8Ghz_Table,data[Bluecell_DATA + 1]);
  831. Atten_Setting.ATT_B_CH_WIFI5_8Ghz_QPC6614_3 = data[Bluecell_DATA + 2] = Atten_Offset_QPC6614(ATT_B_EN_WIFI3_5_8Ghz_Table,data[Bluecell_DATA + 2]);
  832. Atten_Setting.ATT_B_CH_WIFI5_8Ghz_QPC6614_4 = data[Bluecell_DATA + 3] = Atten_Offset_QPC6614(ATT_B_EN_WIFI4_5_8Ghz_Table,data[Bluecell_DATA + 3]);
  833. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  834. break;
  835. case ATT_B_CH_30G_28_28_5 :
  836. Atten_Setting.ATT_B_CH_30G_28_28_5_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_28_28_5Ghz_Table,data[Bluecell_DATA]);
  837. Atten_Setting.ATT_B_CH_30G_28_28_5_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_28_28_5Ghz_Table,data[Bluecell_DATA + 1]);
  838. Atten_Setting.ATT_B_CH_30G_28_28_5_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_28_28_5Ghz_Table,data[Bluecell_DATA + 2]);
  839. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  840. break;
  841. case ATT_B_CH_30G_28_5_29 :
  842. Atten_Setting.ATT_B_CH_30G_28_5_29_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_28_5_29Ghz_Table,data[Bluecell_DATA]);
  843. Atten_Setting.ATT_B_CH_30G_28_5_29_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_28_5_29Ghz_Table,data[Bluecell_DATA + 1]);
  844. Atten_Setting.ATT_B_CH_30G_28_5_29_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_28_5_29Ghz_Table,data[Bluecell_DATA + 2]);
  845. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  846. break;
  847. case ATT_B_CH_30G_29_29_5 :
  848. Atten_Setting.ATT_B_CH_30G_29_29_5_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_29_29_5Ghz_Table,data[Bluecell_DATA]);
  849. Atten_Setting.ATT_B_CH_30G_29_29_5_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_29_29_5Ghz_Table,data[Bluecell_DATA + 1]);
  850. Atten_Setting.ATT_B_CH_30G_29_29_5_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_29_29_5Ghz_Table,data[Bluecell_DATA + 2]);
  851. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  852. break;
  853. case ATT_B_CH_30G_29_5_30 :
  854. Atten_Setting.ATT_B_CH_30G_29_5_30_HMC939_1 = data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_29_5_30Ghz_Table,data[Bluecell_DATA]);
  855. Atten_Setting.ATT_B_CH_30G_29_5_30_HMC939_2 = data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_29_5_30Ghz_Table,data[Bluecell_DATA + 1]);
  856. Atten_Setting.ATT_B_CH_30G_29_5_30_ADRF5720_1 = data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_29_5_30Ghz_Table,data[Bluecell_DATA + 2]);
  857. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  858. break;
  859. /****************************TABLE************************************/
  860. case ATT_A_EN_150M : memcpy(&ATT_A_EN_150M_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_150M_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  861. case ATT_A_EN_WIFI1_2_4Ghz : memcpy(&ATT_A_EN_WIFI1_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI1_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  862. case ATT_A_EN_WIFI2_2_4Ghz : memcpy(&ATT_A_EN_WIFI2_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI2_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  863. case ATT_A_EN_WIFI3_2_4Ghz : memcpy(&ATT_A_EN_WIFI3_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI3_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  864. case ATT_A_EN_WIFI4_2_4Ghz : memcpy(&ATT_A_EN_WIFI4_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI4_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  865. case ATT_A_EN_WIFI1_5_8Ghz : memcpy(&ATT_A_EN_WIFI1_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI1_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  866. case ATT_A_EN_WIFI2_5_8Ghz : memcpy(&ATT_A_EN_WIFI2_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI2_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  867. case ATT_A_EN_WIFI3_5_8Ghz : memcpy(&ATT_A_EN_WIFI3_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI3_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  868. case ATT_A_EN_WIFI4_5_8Ghz : memcpy(&ATT_A_EN_WIFI4_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI4_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  869. case ATT_A_EN_30G1_28_28_5Ghz : memcpy(&ATT_A_EN_30G1_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  870. case ATT_A_EN_30G2_28_28_5Ghz : memcpy(&ATT_A_EN_30G2_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  871. case ATT_A_EN_30G3_28_28_5Ghz : memcpy(&ATT_A_EN_30G3_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  872. case ATT_A_EN_30G1_28_5_29Ghz : memcpy(&ATT_A_EN_30G1_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  873. case ATT_A_EN_30G2_28_5_29Ghz : memcpy(&ATT_A_EN_30G2_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  874. case ATT_A_EN_30G3_28_5_29Ghz : memcpy(&ATT_A_EN_30G3_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  875. case ATT_A_EN_30G1_29_29_5Ghz : memcpy(&ATT_A_EN_30G1_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  876. case ATT_A_EN_30G2_29_29_5Ghz : memcpy(&ATT_A_EN_30G2_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  877. case ATT_A_EN_30G3_29_29_5Ghz : memcpy(&ATT_A_EN_30G3_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  878. case ATT_A_EN_30G1_29_5_30Ghz : memcpy(&ATT_A_EN_30G1_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  879. case ATT_A_EN_30G2_29_5_30Ghz : memcpy(&ATT_A_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  880. case ATT_A_EN_30G3_29_5_30Ghz : memcpy(&ATT_A_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  881. case ATT_B_EN_150M : memcpy(&ATT_B_EN_150M_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_150M_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  882. case ATT_B_EN_WIFI1_2_4Ghz : memcpy(&ATT_B_EN_WIFI1_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI1_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  883. case ATT_B_EN_WIFI2_2_4Ghz : memcpy(&ATT_B_EN_WIFI2_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI2_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  884. case ATT_B_EN_WIFI3_2_4Ghz : memcpy(&ATT_B_EN_WIFI3_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI3_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  885. case ATT_B_EN_WIFI4_2_4Ghz : memcpy(&ATT_B_EN_WIFI4_2_4Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI4_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  886. case ATT_B_EN_WIFI1_5_8Ghz : memcpy(&ATT_B_EN_WIFI1_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI1_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  887. case ATT_B_EN_WIFI2_5_8Ghz : memcpy(&ATT_B_EN_WIFI2_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI2_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  888. case ATT_B_EN_WIFI3_5_8Ghz : memcpy(&ATT_B_EN_WIFI3_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI3_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  889. case ATT_B_EN_WIFI4_5_8Ghz : memcpy(&ATT_B_EN_WIFI4_5_8Ghz_Table.Atten_Table_31_5dB_Value ,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI4_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));break;
  890. case ATT_B_EN_30G1_28_28_5Ghz : memcpy(&ATT_B_EN_30G1_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  891. case ATT_B_EN_30G2_28_28_5Ghz : memcpy(&ATT_B_EN_30G2_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  892. case ATT_B_EN_30G3_28_28_5Ghz : memcpy(&ATT_B_EN_30G3_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_28_28_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  893. case ATT_B_EN_30G1_28_5_29Ghz : memcpy(&ATT_B_EN_30G1_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  894. case ATT_B_EN_30G2_28_5_29Ghz : memcpy(&ATT_B_EN_30G2_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  895. case ATT_B_EN_30G3_28_5_29Ghz : memcpy(&ATT_B_EN_30G3_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_28_5_29Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  896. case ATT_B_EN_30G1_29_29_5Ghz : memcpy(&ATT_B_EN_30G1_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  897. case ATT_B_EN_30G2_29_29_5Ghz : memcpy(&ATT_B_EN_30G2_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  898. case ATT_B_EN_30G3_29_29_5Ghz : memcpy(&ATT_B_EN_30G3_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_29_29_5Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  899. case ATT_B_EN_30G1_29_5_30Ghz : memcpy(&ATT_B_EN_30G1_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  900. case ATT_B_EN_30G2_29_5_30Ghz : memcpy(&ATT_B_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  901. case ATT_B_EN_30G3_29_5_30Ghz : memcpy(&ATT_B_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,&data[Bluecell_DATA],sizeof(Atten_Table_Value_t));memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));break;
  902. /****************************TABLE************************************/
  903. case ATT_A_EN_150M_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_150M_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  904. #if DEBUG_PRINT
  905. printf("LINE : %d \r\n",__LINE__);break;
  906. #else
  907. break;
  908. #endif
  909. case ATT_A_EN_WIFI1_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI1_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  910. #if DEBUG_PRINT
  911. printf("LINE : %d \r\n",__LINE__);break;
  912. #else
  913. break;
  914. #endif
  915. case ATT_A_EN_WIFI2_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI2_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  916. #if DEBUG_PRINT
  917. printf("LINE : %d \r\n",__LINE__);break;
  918. #else
  919. break;
  920. #endif
  921. case ATT_A_EN_WIFI3_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI3_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  922. #if DEBUG_PRINT
  923. printf("LINE : %d \r\n",__LINE__);break;
  924. #else
  925. break;
  926. #endif
  927. case ATT_A_EN_WIFI4_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI4_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  928. #if DEBUG_PRINT
  929. printf("LINE : %d \r\n",__LINE__);break;
  930. #else
  931. break;
  932. #endif
  933. case ATT_A_EN_WIFI1_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI1_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  934. #if DEBUG_PRINT
  935. printf("LINE : %d \r\n",__LINE__);break;
  936. #else
  937. break;
  938. #endif
  939. case ATT_A_EN_WIFI2_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI2_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  940. #if DEBUG_PRINT
  941. printf("LINE : %d \r\n",__LINE__);break;
  942. #else
  943. break;
  944. #endif
  945. case ATT_A_EN_WIFI3_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI3_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  946. #if DEBUG_PRINT
  947. printf("LINE : %d \r\n",__LINE__);break;
  948. #else
  949. break;
  950. #endif
  951. case ATT_A_EN_WIFI4_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_WIFI4_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  952. #if DEBUG_PRINT
  953. printf("LINE : %d \r\n",__LINE__);break;
  954. #else
  955. break;
  956. #endif
  957. case ATT_A_EN_30G1_28_28_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_28_28_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  958. #if DEBUG_PRINT
  959. printf("LINE : %d \r\n",__LINE__);break;
  960. #else
  961. break;
  962. #endif
  963. case ATT_A_EN_30G2_28_28_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_28_28_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  964. #if DEBUG_PRINT
  965. printf("LINE : %d \r\n",__LINE__);break;
  966. #else
  967. break;
  968. #endif
  969. case ATT_A_EN_30G3_28_28_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_28_28_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  970. #if DEBUG_PRINT
  971. printf("LINE : %d \r\n",__LINE__);break;
  972. #else
  973. break;
  974. #endif
  975. case ATT_A_EN_30G1_28_5_29Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_28_5_29Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  976. #if DEBUG_PRINT
  977. printf("LINE : %d \r\n",__LINE__);break;
  978. #else
  979. break;
  980. #endif
  981. case ATT_A_EN_30G2_28_5_29Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_28_5_29Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  982. #if DEBUG_PRINT
  983. printf("LINE : %d \r\n",__LINE__);break;
  984. #else
  985. break;
  986. #endif
  987. case ATT_A_EN_30G3_28_5_29Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_28_5_29Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  988. #if DEBUG_PRINT
  989. printf("LINE : %d \r\n",__LINE__);break;
  990. #else
  991. break;
  992. #endif
  993. case ATT_A_EN_30G1_29_29_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_29_29_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  994. #if DEBUG_PRINT
  995. printf("LINE : %d \r\n",__LINE__);break;
  996. #else
  997. break;
  998. #endif
  999. case ATT_A_EN_30G2_29_29_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_29_29_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1000. #if DEBUG_PRINT
  1001. printf("LINE : %d \r\n",__LINE__);break;
  1002. #else
  1003. break;
  1004. #endif
  1005. case ATT_A_EN_30G3_29_29_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_29_29_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1006. #if DEBUG_PRINT
  1007. printf("LINE : %d \r\n",__LINE__);break;
  1008. #else
  1009. break;
  1010. #endif
  1011. case ATT_A_EN_30G1_29_5_30Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G1_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1012. #if DEBUG_PRINT
  1013. printf("LINE : %d \r\n",__LINE__);break;
  1014. #else
  1015. break;
  1016. #endif
  1017. case ATT_A_EN_30G2_29_5_30Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1018. #if DEBUG_PRINT
  1019. printf("LINE : %d \r\n",__LINE__);break;
  1020. #else
  1021. break;
  1022. #endif
  1023. case ATT_A_EN_30G3_29_5_30Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_A_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1024. #if DEBUG_PRINT
  1025. printf("LINE : %d \r\n",__LINE__);break;
  1026. #else
  1027. break;
  1028. #endif
  1029. case ATT_B_EN_150M_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_150M_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1030. #if DEBUG_PRINT
  1031. printf("LINE : %d \r\n",__LINE__);break;
  1032. #else
  1033. break;
  1034. #endif
  1035. case ATT_B_EN_WIFI1_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI1_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1036. #if DEBUG_PRINT
  1037. printf("LINE : %d \r\n",__LINE__);break;
  1038. #else
  1039. break;
  1040. #endif
  1041. case ATT_B_EN_WIFI2_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI2_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1042. #if DEBUG_PRINT
  1043. printf("LINE : %d \r\n",__LINE__);break;
  1044. #else
  1045. break;
  1046. #endif
  1047. case ATT_B_EN_WIFI3_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI3_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1048. #if DEBUG_PRINT
  1049. printf("LINE : %d \r\n",__LINE__);break;
  1050. #else
  1051. break;
  1052. #endif
  1053. case ATT_B_EN_WIFI4_2_4Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI4_2_4Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1054. #if DEBUG_PRINT
  1055. printf("LINE : %d \r\n",__LINE__);break;
  1056. #else
  1057. break;
  1058. #endif
  1059. case ATT_B_EN_WIFI1_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI1_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1060. #if DEBUG_PRINT
  1061. printf("LINE : %d \r\n",__LINE__);break;
  1062. #else
  1063. break;
  1064. #endif
  1065. case ATT_B_EN_WIFI2_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI2_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1066. #if DEBUG_PRINT
  1067. printf("LINE : %d \r\n",__LINE__);break;
  1068. #else
  1069. break;
  1070. #endif
  1071. case ATT_B_EN_WIFI3_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI3_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1072. #if DEBUG_PRINT
  1073. printf("LINE : %d \r\n",__LINE__);break;
  1074. #else
  1075. break;
  1076. #endif
  1077. case ATT_B_EN_WIFI4_5_8Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_WIFI4_5_8Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1078. #if DEBUG_PRINT
  1079. printf("LINE : %d \r\n",__LINE__);break;
  1080. #else
  1081. break;
  1082. #endif
  1083. case ATT_B_EN_30G1_28_28_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_28_28_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1084. #if DEBUG_PRINT
  1085. printf("LINE : %d \r\n",__LINE__);break;
  1086. #else
  1087. break;
  1088. #endif
  1089. case ATT_B_EN_30G2_28_28_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_28_28_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1090. #if DEBUG_PRINT
  1091. printf("LINE : %d \r\n",__LINE__);break;
  1092. #else
  1093. break;
  1094. #endif
  1095. case ATT_B_EN_30G3_28_28_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_28_28_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1096. #if DEBUG_PRINT
  1097. printf("LINE : %d \r\n",__LINE__);break;
  1098. #else
  1099. break;
  1100. #endif
  1101. case ATT_B_EN_30G1_28_5_29Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_28_5_29Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1102. #if DEBUG_PRINT
  1103. printf("LINE : %d \r\n",__LINE__);break;
  1104. #else
  1105. break;
  1106. #endif
  1107. case ATT_B_EN_30G2_28_5_29Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_28_5_29Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1108. #if DEBUG_PRINT
  1109. printf("LINE : %d \r\n",__LINE__);break;
  1110. #else
  1111. break;
  1112. #endif
  1113. case ATT_B_EN_30G3_28_5_29Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_28_5_29Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1114. #if DEBUG_PRINT
  1115. printf("LINE : %d \r\n",__LINE__);break;
  1116. #else
  1117. break;
  1118. #endif
  1119. case ATT_B_EN_30G1_29_29_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_29_29_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1120. #if DEBUG_PRINT
  1121. printf("LINE : %d \r\n",__LINE__);break;
  1122. #else
  1123. break;
  1124. #endif
  1125. case ATT_B_EN_30G2_29_29_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_29_29_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1126. #if DEBUG_PRINT
  1127. printf("LINE : %d \r\n",__LINE__);break;
  1128. #else
  1129. break;
  1130. #endif
  1131. case ATT_B_EN_30G3_29_29_5Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_29_29_5Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1132. #if DEBUG_PRINT
  1133. printf("LINE : %d \r\n",__LINE__);break;
  1134. #else
  1135. break;
  1136. #endif
  1137. case ATT_B_EN_30G1_29_5_30Ghz_R : memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G1_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1138. #if DEBUG_PRINT
  1139. printf("LINE : %d \r\n",__LINE__);break;
  1140. #else
  1141. break;
  1142. #endif
  1143. case ATT_B_EN_30G2_29_5_30Ghz_R :
  1144. memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1145. break;
  1146. case ATT_B_EN_30G3_29_5_30Ghz_R :
  1147. memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1148. break;
  1149. default:printf("[Error ]Defalut in %s LINE :%d \r\n",__func__,__LINE__);break;
  1150. }
  1151. Atten_Operate(ResultBuf);
  1152. }
  1153. #if 0 // PYJ.2019.02.15_BEGIN --
  1154. void Atten_Alarm_Check(void){
  1155. uint8_t i = ITH_GPIO_PIN29;
  1156. if(ithGpioGet(ITH_GPIO_PIN29) == 1)
  1157. Atten_ABChannel_Data.ATT_A_150M_ALARM = true;
  1158. else
  1159. Atten_ABChannel_Data.ATT_A_150M_ALARM = false;
  1160. if(ithGpioGet(ITH_GPIO_PIN30) == 1)
  1161. Atten_ABChannel_Data.ATT_A_WIFI_ALARM = true;
  1162. else
  1163. Atten_ABChannel_Data.ATT_A_WIFI_ALARM = false;
  1164. if(ithGpioGet(ITH_GPIO_PIN31) == 1)
  1165. Atten_ABChannel_Data.ATT_A_30G_ALARM = true;
  1166. else
  1167. Atten_ABChannel_Data.ATT_A_30G_ALARM = false;
  1168. if(ithGpioGet(ITH_GPIO_PIN32) == 1)
  1169. Atten_ABChannel_Data.ATT_B_150M_ALARM = true;
  1170. else
  1171. Atten_ABChannel_Data.ATT_B_150M_ALARM = false;
  1172. if(ithGpioGet(ITH_GPIO_PIN33) == 1)
  1173. Atten_ABChannel_Data.ATT_B_WIFI_ALARM = true;
  1174. else
  1175. Atten_ABChannel_Data.ATT_B_WIFI_ALARM = false;
  1176. if(ithGpioGet(ITH_GPIO_PIN34) == 1)
  1177. Atten_ABChannel_Data.ATT_B_30G_ALARM = true;
  1178. else
  1179. Atten_ABChannel_Data.ATT_B_30G_ALARM = false;
  1180. }
  1181. #endif // PYJ.2019.02.15_END --