atten_ctrl(7309).c 107 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026
  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. float Atten_PE43711_TraceValue_Func(uint8_t value)
  88. {
  89. uint8_t Temp_data = 0;
  90. float ret = ATTEN_0DB;
  91. if (value != 0)
  92. Temp_data = (uint8_t)(value & 0x7E);
  93. while (1)
  94. {
  95. if ((Temp_data | PE43711_ATTEN_0DB_VAL) == 0)
  96. {
  97. ret += ATTEN_0DB;
  98. break;
  99. }
  100. else if ((Temp_data & PE43711_ATTEN_0_5DB_VAL) > 0)
  101. {
  102. Temp_data &= ( ~PE43711_ATTEN_0_5DB_VAL);
  103. ret += ATTEN_0_5DB;
  104. }
  105. else if ((Temp_data & PE43711_ATTEN_1DB_VAL) > 0)
  106. {
  107. Temp_data &= ( ~PE43711_ATTEN_1DB_VAL);
  108. ret += ATTEN_1DB;
  109. }
  110. else if ((Temp_data & PE43711_ATTEN_2DB_VAL) > 0)
  111. {
  112. Temp_data &= ( ~PE43711_ATTEN_2DB_VAL);
  113. ret += ATTEN_2DB;
  114. }
  115. else if ((Temp_data & PE43711_ATTEN_4DB_VAL) > 0)
  116. {
  117. Temp_data &= ( ~PE43711_ATTEN_4DB_VAL);
  118. ret += ATTEN_4DB;
  119. }
  120. else if ((Temp_data & PE43711_ATTEN_8DB_VAL) > 0)
  121. {
  122. Temp_data &= ( ~PE43711_ATTEN_8DB_VAL);
  123. ret += ATTEN_8DB;
  124. }
  125. else if ((Temp_data & PE43711_ATTEN_16DB_VAL) > 0)
  126. {
  127. Temp_data &= ( ~PE43711_ATTEN_16DB_VAL);
  128. ret += ATTEN_16DB;
  129. }
  130. else if ((Temp_data & PE43711_ATTEN_31_5DB_VAL) >= 0)
  131. {
  132. Temp_data &= ( ~PE43711_ATTEN_31_5DB_VAL);
  133. ret += ATTEN_31_5DB;
  134. }
  135. }
  136. return ret;
  137. }
  138. float Atten_QPC6614_TraceValue_Func(uint8_t value)
  139. {
  140. uint8_t Temp_data = 0;
  141. float ret = ATTEN_0DB;
  142. if (value != 0)Temp_data = (~value)& 0x3F;
  143. while (1)
  144. {
  145. if ((Temp_data | QPC6614_ATTEN_0DB_Trace) == 0)
  146. {
  147. ret += ATTEN_0DB;
  148. break;
  149. }
  150. else if ((Temp_data & QPC6614_ATTEN_0_5DB_Trace) > 0)
  151. {
  152. Temp_data &= ~(QPC6614_ATTEN_0_5DB_Trace);
  153. ret += ATTEN_0_5DB;
  154. }
  155. else if ((Temp_data & QPC6614_ATTEN_1DB_Trace) > 0)
  156. {
  157. Temp_data &= (~QPC6614_ATTEN_1DB_Trace);
  158. ret += ATTEN_1DB;
  159. }
  160. else if ((Temp_data & QPC6614_ATTEN_2DB_Trace) > 0)
  161. {
  162. Temp_data &= (~QPC6614_ATTEN_2DB_Trace);
  163. ret += ATTEN_2DB;
  164. }
  165. else if ((Temp_data & QPC6614_ATTEN_4DB_Trace) > 0)
  166. {
  167. Temp_data &= (~QPC6614_ATTEN_4DB_Trace);
  168. ret += ATTEN_4DB;
  169. }
  170. else if ((Temp_data & QPC6614_ATTEN_8DB_Trace) > 0)
  171. {
  172. Temp_data &= (~QPC6614_ATTEN_8DB_Trace);
  173. ret += ATTEN_8DB;
  174. }
  175. else if ((Temp_data & QPC6614_ATTEN_16DB_Trace) > 0)
  176. {
  177. Temp_data &= (~QPC6614_ATTEN_16DB_Trace);
  178. ret += ATTEN_16DB;
  179. }
  180. else if ((Temp_data & QPC6614_ATTEN_31_5DB_Trace) >= 0)
  181. {
  182. Temp_data &= (~QPC6614_ATTEN_31_5DB_Trace);
  183. ret += ATTEN_31_5DB;
  184. }
  185. }
  186. return ret;
  187. }
  188. float Atten_ADRF5720_TraceValue_Func(uint8_t value)
  189. {
  190. uint8_t Temp_data = 0;
  191. float ret = ATTEN_0DB;
  192. if (value != 0)
  193. Temp_data = (uint8_t)(value & 0x3F);
  194. while (1)
  195. {
  196. if ((Temp_data & ADRF5720_ATTEN_31_5DB_VAL) == ADRF5720_ATTEN_31_5DB_VAL)
  197. {
  198. Temp_data &= ((~ADRF5720_ATTEN_31_5DB_VAL) & 0x3F);
  199. ret += ATTEN_31_5DB;
  200. }
  201. else if ((Temp_data & ADRF5720_ATTEN_16DB_VAL) > 0)
  202. {
  203. Temp_data &= ((~ADRF5720_ATTEN_16DB_VAL) & 0x3F);
  204. ret += ATTEN_16DB;
  205. }
  206. else if ((Temp_data & ADRF5720_ATTEN_8DB_VAL) > 0)
  207. {
  208. Temp_data &= ((~ADRF5720_ATTEN_8DB_VAL) & 0x3F);
  209. ret += ATTEN_8DB;
  210. }
  211. else if ((Temp_data & ADRF5720_ATTEN_4DB_VAL) > 0)
  212. {
  213. Temp_data &= ((~ADRF5720_ATTEN_4DB_VAL) & 0x3F);
  214. ret += ATTEN_4DB;
  215. }
  216. else if ((Temp_data & ADRF5720_ATTEN_2DB_VAL) > 0)
  217. {
  218. Temp_data &= ((~ADRF5720_ATTEN_2DB_VAL) & 0x3F);
  219. ret += ATTEN_2DB;
  220. }
  221. else if ((Temp_data & ADRF5720_ATTEN_1DB_VAL) > 0)
  222. {
  223. Temp_data &= ((~ADRF5720_ATTEN_1DB_VAL) & 0x3F);
  224. ret += ATTEN_1DB;
  225. }
  226. else if ((Temp_data & ADRF5720_ATTEN_0_5DB_VAL) > 0)
  227. {
  228. Temp_data &= ((~ADRF5720_ATTEN_0_5DB_VAL) & 0x3F);
  229. ret += ATTEN_0_5DB;
  230. }
  231. else if ((Temp_data | ADRF5720_ATTEN_0DB_VAL) == 0)
  232. {
  233. ret += ATTEN_0DB;
  234. break;
  235. }
  236. }
  237. return ret;
  238. }
  239. float Atten_HMC939_TraceValue_Func(uint8_t value)
  240. {
  241. uint32_t Temp_data = 0;
  242. float ret = ATTEN_0DB;
  243. Temp_data = (~value) & 0x1F;
  244. while (1)
  245. {
  246. if ((Temp_data | ((~HMC939_ATTEN_0DB_VAL) & 0x1F)) == 0)
  247. {
  248. ret += ATTEN_0DB;
  249. break;
  250. }
  251. else if ((Temp_data & ((~HMC939_ATTEN_1DB_VAL) & 0x1F)) > 0)
  252. {
  253. Temp_data &= (HMC939_ATTEN_1DB_VAL);
  254. ret += ATTEN_1DB;
  255. }
  256. else if ((Temp_data & ((~HMC939_ATTEN_2DB_VAL) & 0x1F)) > 0)
  257. {
  258. Temp_data &= (HMC939_ATTEN_2DB_VAL);
  259. ret += ATTEN_2DB;
  260. }
  261. else if ((Temp_data & ((~HMC939_ATTEN_4DB_VAL) & 0x1F)) > 0)
  262. {
  263. Temp_data &= (HMC939_ATTEN_4DB_VAL);
  264. ret += ATTEN_4DB;
  265. }
  266. else if ((Temp_data & ((~HMC939_ATTEN_8DB_VAL) & 0x1F)) > 0)
  267. {
  268. Temp_data &= (HMC939_ATTEN_8DB_VAL);
  269. ret += ATTEN_8DB;
  270. }
  271. else if ((Temp_data & ((~HMC939_ATTEN_16DB_VAL) & 0x1F)) > 0)
  272. {
  273. Temp_data &= (HMC939_ATTEN_16DB_VAL);
  274. ret += ATTEN_16DB;
  275. }
  276. else if ((Temp_data & ((~HMC939_ATTEN_30DB_VAL) & 0x1F)) > 0)
  277. {
  278. Temp_data &= (HMC939_ATTEN_30DB_VAL);
  279. ret += ATTEN_31DB;
  280. }
  281. else if ((Temp_data & ((~HMC939_ATTEN_31DB_VAL) & 0x1F)) >= 0)
  282. {
  283. Temp_data &= (HMC939_ATTEN_31DB_VAL);
  284. ret += ATTEN_31_5DB;
  285. }
  286. }
  287. return ret;
  288. }
  289. uint8_t PE43711_Atten_Rx_DataCheck(float data)
  290. {
  291. float Temp_Atten_Ret = data;
  292. uint8_t Temp_Atten_Value = PE43711_ATTEN_0DB_VAL;
  293. while (1)
  294. {
  295. if (data == 0)
  296. break;
  297. if (data == ATTEN_31_5DB)
  298. {
  299. data = 0;
  300. Temp_Atten_Value |= PE43711_ATTEN_31_5DB_VAL;
  301. }
  302. else if (data >= ATTEN_16DB)
  303. {
  304. data -= ATTEN_16DB;
  305. Temp_Atten_Value |= PE43711_ATTEN_16DB_VAL;
  306. }
  307. else if (data >= ATTEN_8DB)
  308. {
  309. data -= ATTEN_8DB;
  310. Temp_Atten_Value |= PE43711_ATTEN_8DB_VAL;
  311. }
  312. else if (data >= ATTEN_4DB)
  313. {
  314. data -= ATTEN_4DB;
  315. Temp_Atten_Value |= PE43711_ATTEN_4DB_VAL;
  316. }
  317. else if (data >= ATTEN_2DB)
  318. {
  319. data -= ATTEN_2DB;
  320. Temp_Atten_Value |= PE43711_ATTEN_2DB_VAL;
  321. }
  322. else if (data >= ATTEN_1DB)
  323. {
  324. data -= ATTEN_1DB;
  325. Temp_Atten_Value |= PE43711_ATTEN_1DB_VAL;
  326. }
  327. else if (data >= ATTEN_0_5DB)
  328. {
  329. data = 0;
  330. Temp_Atten_Value |= PE43711_ATTEN_0_5DB_VAL;
  331. }
  332. else if (data >= ATTEN_0DB)
  333. {
  334. data -= ATTEN_0DB;
  335. Temp_Atten_Value |= PE43711_ATTEN_0DB_VAL;
  336. }
  337. }
  338. return Temp_Atten_Value;
  339. }
  340. uint8_t QPC6614_Atten_Rx_DataCheck(float data)
  341. {
  342. float Temp_Atten_Ret = data;
  343. uint8_t Temp_Atten_Value = QPC6614_ATTEN_0DB_VAL;
  344. while (1)
  345. {
  346. if (data == 0)
  347. break;
  348. if (data == ATTEN_31_5DB)
  349. {
  350. data = 0;
  351. Temp_Atten_Value &= QPC6614_ATTEN_31_5DB_VAL;
  352. }
  353. else if (data >= ATTEN_16DB)
  354. {
  355. data -= ATTEN_16DB;
  356. Temp_Atten_Value &= QPC6614_ATTEN_16DB_VAL;
  357. }
  358. else if (data >= ATTEN_8DB)
  359. {
  360. data -= ATTEN_8DB;
  361. Temp_Atten_Value &= QPC6614_ATTEN_8DB_VAL;
  362. }
  363. else if (data >= ATTEN_4DB)
  364. {
  365. data -= ATTEN_4DB;
  366. Temp_Atten_Value &= QPC6614_ATTEN_4DB_VAL;
  367. }
  368. else if (data >= ATTEN_2DB)
  369. {
  370. data -= ATTEN_2DB;
  371. Temp_Atten_Value &= QPC6614_ATTEN_2DB_VAL;
  372. }
  373. else if (data >= ATTEN_1DB)
  374. {
  375. data -= ATTEN_1DB;
  376. Temp_Atten_Value &= QPC6614_ATTEN_1DB_VAL;
  377. }
  378. else if (data >= ATTEN_0_5DB)
  379. {
  380. data = 0;
  381. Temp_Atten_Value &= QPC6614_ATTEN_0_5DB_VAL;
  382. }
  383. else if (data >= ATTEN_0DB)
  384. {
  385. data -= ATTEN_0DB;
  386. Temp_Atten_Value &= QPC6614_ATTEN_0DB_VAL;
  387. }
  388. }
  389. return Temp_Atten_Value;
  390. }
  391. uint8_t ADRF5720_Atten_Rx_DataCheck(float data)
  392. {
  393. double Temp_Atten_Ret = data;
  394. uint8_t Temp_Atten_Value = ADRF5720_ATTEN_0DB_VAL;
  395. while (1)
  396. {
  397. if (data == 0)
  398. break;
  399. if (data == ATTEN_31_5DB)
  400. {
  401. data = 0;
  402. Temp_Atten_Value |= ADRF5720_ATTEN_31_5DB_VAL;
  403. }
  404. else if (data >= ATTEN_16DB)
  405. {
  406. data -= ATTEN_16DB;
  407. Temp_Atten_Value |= ADRF5720_ATTEN_16DB_VAL;
  408. }
  409. else if (data >= ATTEN_8DB)
  410. {
  411. data -= ATTEN_8DB;
  412. Temp_Atten_Value |= ADRF5720_ATTEN_8DB_VAL;
  413. }
  414. else if (data >= ATTEN_4DB)
  415. {
  416. data -= ATTEN_4DB;
  417. Temp_Atten_Value |= ADRF5720_ATTEN_4DB_VAL;
  418. }
  419. else if (data >= ATTEN_2DB)
  420. {
  421. data -= ATTEN_2DB;
  422. Temp_Atten_Value |= ADRF5720_ATTEN_2DB_VAL;
  423. }
  424. else if (data >= ATTEN_1DB)
  425. {
  426. data -= ATTEN_1DB;
  427. Temp_Atten_Value |= ADRF5720_ATTEN_1DB_VAL;
  428. }
  429. else if (data >= ATTEN_0_5DB)
  430. {
  431. data -= ATTEN_0_5DB;
  432. Temp_Atten_Value |= ADRF5720_ATTEN_0_5DB_VAL;
  433. }
  434. else if (data >= ATTEN_0DB)
  435. {
  436. data -= ATTEN_0DB;
  437. Temp_Atten_Value |= ADRF5720_ATTEN_0DB_VAL;
  438. }
  439. }
  440. return Temp_Atten_Value;
  441. }
  442. uint8_t HMC939_Atten_Rx_DataCheck(uint8_t data)
  443. {
  444. uint8_t Temp_Atten_Ret = data, Temp_Atten_Value = HMC939_ATTEN_0DB_VAL;
  445. while (1)
  446. {
  447. if (data == ATTEN_0DB)
  448. {
  449. data -= ATTEN_0DB;
  450. Temp_Atten_Value &= HMC939_ATTEN_0DB_VAL;
  451. break;
  452. }
  453. if (data == ATTEN_31DB)
  454. {
  455. data = 0;
  456. Temp_Atten_Value &= HMC939_ATTEN_31DB_VAL;
  457. }
  458. else if (data >= ATTEN_16DB)
  459. {
  460. data -= ATTEN_16DB;
  461. Temp_Atten_Value &= HMC939_ATTEN_16DB_VAL;
  462. }
  463. else if (data >= ATTEN_8DB)
  464. {
  465. data -= ATTEN_8DB;
  466. Temp_Atten_Value &= HMC939_ATTEN_8DB_VAL;
  467. }
  468. else if (data >= ATTEN_4DB)
  469. {
  470. data -= ATTEN_4DB;
  471. Temp_Atten_Value &= HMC939_ATTEN_4DB_VAL;
  472. }
  473. else if (data >= ATTEN_2DB)
  474. {
  475. data -= ATTEN_2DB;
  476. Temp_Atten_Value &= HMC939_ATTEN_2DB_VAL;
  477. }
  478. else if (data >= ATTEN_1DB)
  479. {
  480. data -= ATTEN_1DB;
  481. Temp_Atten_Value &= HMC939_ATTEN_1DB_VAL;
  482. }
  483. }
  484. return Temp_Atten_Value;
  485. }
  486. void Atten_150M_DataSet(float value,uint8_t type)
  487. {
  488. uint8_t cnt = 0;
  489. uint8_t ret_buf[CHSET_UART_LENGTH] = {0,};
  490. ret_buf[cnt++] = 0xBE;
  491. ret_buf[cnt++] = type;
  492. ret_buf[cnt++] = CHSET_UARTDATA_LENGTH;
  493. ret_buf[cnt++] = QPC6614_Atten_Rx_DataCheck(value);
  494. ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;
  495. ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;
  496. ret_buf[cnt++] = QPC6614_ATTEN_0DB_VAL;
  497. ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(&ret_buf[Bluecell_Type],ret_buf[Bluecell_Length]+2);
  498. ret_buf[CHSET_UART_LENGTH - 1] = 0xEB;
  499. memcpy(&buf[0],&ret_buf[0],CHSET_UART_LENGTH);
  500. ButtonDataSet(true);
  501. }
  502. void Atten_Wifi_DataSet(float value,uint8_t type)
  503. {
  504. uint8_t cnt = 0;
  505. uint8_t ret_buf[CHSET_UART_LENGTH] = {0,};
  506. ret_buf[cnt++] = 0xBE;
  507. ret_buf[cnt++] = type;
  508. ret_buf[cnt++] = CHSET_UARTDATA_LENGTH;
  509. if (value > 90)
  510. {
  511. value -= 90;
  512. ret_buf[cnt++] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data
  513. ret_buf[cnt++] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data
  514. ret_buf[cnt++] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data
  515. ret_buf[cnt++] = PE43711_Atten_Rx_DataCheck(value);
  516. }
  517. else if (value > 60)
  518. {
  519. value -= 60;
  520. PE43711_Atten_Rx_DataCheck(value);
  521. ret_buf[cnt++] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data
  522. ret_buf[cnt++] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data
  523. ret_buf[cnt++] = PE43711_Atten_Rx_DataCheck(value);
  524. ret_buf[cnt++] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data
  525. }
  526. else if (value > 30)
  527. {
  528. value -= 30;
  529. ret_buf[cnt++] = PE43711_ATTEN_30DB_VAL;//3번째 byte Data
  530. ret_buf[cnt++] = PE43711_Atten_Rx_DataCheck(value);
  531. ret_buf[cnt++] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data
  532. ret_buf[cnt++] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data
  533. }
  534. else if (value >= 0)
  535. {
  536. ret_buf[cnt++] = PE43711_Atten_Rx_DataCheck(value);
  537. ret_buf[cnt++] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data
  538. ret_buf[cnt++] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data
  539. ret_buf[cnt++] = PE43711_ATTEN_0DB_VAL;//3번째 byte Data
  540. }
  541. ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(&ret_buf[Bluecell_Type],ret_buf[Bluecell_Length]+2);
  542. ret_buf[CHSET_UART_LENGTH - 1] = 0xEB;
  543. memcpy(&buf[0],&ret_buf[0],CHSET_UART_LENGTH);
  544. ButtonDataSet(true);
  545. }
  546. void Atten_30G_DataSet(float value,uint8_t type)
  547. {
  548. int cnt = 0;
  549. uint8_t ret_buf[9] = {0,};
  550. ret_buf[cnt++] = 0xBE;
  551. ret_buf[cnt++] = type;
  552. ret_buf[cnt++] = CHSET_UARTDATA_LENGTH;
  553. if (value > 60)
  554. {
  555. value -= 60;
  556. ret_buf[cnt++] = HMC939_ATTEN_30DB_VAL;
  557. ret_buf[cnt++] = HMC939_ATTEN_30DB_VAL;
  558. ret_buf[cnt++] = ADRF5720_Atten_Rx_DataCheck(value);;
  559. }
  560. else if (value >= 30)
  561. {
  562. value -= 30;
  563. ret_buf[cnt++] = HMC939_ATTEN_30DB_VAL;
  564. ret_buf[cnt++] = HMC939_Atten_Rx_DataCheck(value);
  565. ret_buf[cnt++] = ADRF5720_ATTEN_0DB_VAL;
  566. }
  567. else if (value >= 0)
  568. {
  569. ret_buf[cnt++] = HMC939_Atten_Rx_DataCheck(value);
  570. ret_buf[cnt++] = HMC939_ATTEN_0DB_VAL;
  571. ret_buf[cnt++] = ADRF5720_ATTEN_0DB_VAL;
  572. }
  573. ret_buf[CHSET_UART_LENGTH - 2] = STH30_CreateCrc(&ret_buf[Bluecell_Type],ret_buf[Bluecell_Length]+2);
  574. ret_buf[CHSET_UART_LENGTH - 1] = 0xEB;
  575. memcpy(&buf[0],&ret_buf[0],CHSET_UART_LENGTH);
  576. ButtonDataSet(true);
  577. }
  578. void PE43711_Ach_atten_ctrl(uint8_t data,uint8_t Ch){
  579. atten_ctrl pin;
  580. uint8_t i = 0;
  581. uint8_t temp = 0;
  582. data = 4 * data;
  583. temp = (uint8_t)data;
  584. pin.Clock_PIN = GPIO_PIN_8;
  585. pin.Data_PIN = GPIO_PIN_9;
  586. pin.LE_PIN = GPIO_PIN_10;
  587. if(Ch == 0) {
  588. pin.LE_PIN = GPIO_PIN_10;
  589. }//LE}
  590. else if (Ch == 1) {
  591. pin.LE_PIN = GPIO_PIN_11;
  592. }//LE}
  593. else if (Ch == 2) {
  594. pin.LE_PIN = GPIO_PIN_12;
  595. }//LE}
  596. else if (Ch == 3) {
  597. pin.LE_PIN = GPIO_PIN_13;
  598. }//LE}
  599. else if (Ch == 4) {
  600. pin.LE_PIN = GPIO_PIN_14;
  601. }//LE}
  602. pin.Port = GPIOE;
  603. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  604. HAL_Delay(1);
  605. for(i = 0; i < 8; i++){
  606. if((uint8_t)temp & 0x01){
  607. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA
  608. }
  609. else{
  610. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  611. }
  612. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  613. HAL_Delay(1);
  614. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  615. HAL_Delay(1);
  616. temp >>= 1;
  617. }
  618. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  619. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  620. HAL_Delay(1);
  621. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE
  622. HAL_Delay(1);
  623. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  624. }
  625. void PE43711_Bch_atten_ctrl(uint8_t data,uint8_t Ch){
  626. atten_ctrl pin;
  627. uint8_t i = 0;
  628. uint8_t temp = 0;
  629. data = 4 * data;
  630. temp = (uint8_t)data;
  631. pin.Clock_PIN = GPIO_PIN_12;
  632. pin.Data_PIN = GPIO_PIN_13;
  633. pin.LE_PIN = GPIO_PIN_10;
  634. if(Ch == 0) {
  635. pin.LE_PIN = GPIO_PIN_14;
  636. pin.Port = GPIOG;
  637. }
  638. else if (Ch == 1) {
  639. pin.LE_PIN = GPIO_PIN_6;
  640. pin.Port = GPIOB;
  641. }
  642. else if (Ch == 2) {
  643. pin.LE_PIN = GPIO_PIN_7;
  644. pin.Port = GPIOB;
  645. }
  646. else if (Ch == 3) {
  647. pin.LE_PIN = GPIO_PIN_5;
  648. pin.Port = GPIOB;
  649. }
  650. else if (Ch == 4) {
  651. pin.LE_PIN = GPIO_PIN_9;
  652. pin.Port = GPIOB;
  653. }
  654. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  655. pin.Port = GPIOG;
  656. HAL_Delay(1);
  657. for(i = 0; i < 8; i++){
  658. if((uint8_t)temp & 0x01){
  659. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA
  660. }
  661. else{
  662. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  663. }
  664. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  665. HAL_Delay(1);
  666. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  667. HAL_Delay(1);
  668. temp >>= 1;
  669. }
  670. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  671. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  672. HAL_Delay(1);
  673. if (Ch != 0) pin.Port = GPIOB;
  674. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE
  675. HAL_Delay(1);
  676. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  677. }
  678. void QPC6614_Ach_atten_ctrl(uint8_t data,uint8_t Ch){
  679. atten_ctrl pin;
  680. uint8_t i = 0;
  681. pin.Clock_PIN = GPIO_PIN_8;
  682. pin.Data_PIN = GPIO_PIN_9;
  683. pin.LE_PIN = GPIO_PIN_10;
  684. if(Ch == 0) {
  685. pin.LE_PIN = GPIO_PIN_10;
  686. }//LE}
  687. else if (Ch == 1) {
  688. pin.LE_PIN = GPIO_PIN_11;
  689. }//LE}
  690. else if (Ch == 2) {
  691. pin.LE_PIN = GPIO_PIN_12;
  692. }//LE}
  693. else if (Ch == 3) {
  694. pin.LE_PIN = GPIO_PIN_13;
  695. }//LE}
  696. else if (Ch == 4) {
  697. pin.LE_PIN = GPIO_PIN_14;
  698. }//LE}
  699. pin.Port = GPIOE;
  700. for(i = 0; i < 6; i++){
  701. if(data & 0x20)
  702. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA
  703. else
  704. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  705. data <<= 1;
  706. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  707. HAL_Delay(1);
  708. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  709. HAL_Delay(1);
  710. }
  711. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  712. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  713. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE
  714. HAL_Delay(1);
  715. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  716. }
  717. void QPC6614_Bch_atten_ctrl(uint8_t data,uint8_t Ch){
  718. atten_ctrl pin;
  719. uint8_t i = 0;
  720. pin.Clock_PIN = GPIO_PIN_12;
  721. pin.Data_PIN = GPIO_PIN_13;
  722. if(Ch == 0) {
  723. pin.LE_PIN = GPIO_PIN_14;
  724. pin.Port = GPIOG;
  725. }
  726. else if (Ch == 1) {
  727. pin.LE_PIN = GPIO_PIN_6;
  728. pin.Port = GPIOB;
  729. }
  730. else if (Ch == 2) {
  731. pin.LE_PIN = GPIO_PIN_7;
  732. pin.Port = GPIOB;
  733. }
  734. else if (Ch == 3) {
  735. pin.LE_PIN = GPIO_PIN_5;
  736. pin.Port = GPIOB;
  737. }
  738. else if (Ch == 4) {
  739. pin.LE_PIN = GPIO_PIN_9;
  740. pin.Port = GPIOB;
  741. }
  742. pin.Port = GPIOG;
  743. for(i = 0; i < 6; i++){
  744. if(data & 0x20)
  745. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_SET);//DATA
  746. else
  747. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  748. data <<= 1;
  749. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  750. HAL_Delay(1);
  751. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  752. HAL_Delay(1);
  753. }
  754. HAL_GPIO_WritePin(pin.Port,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  755. if (Ch != 0) pin.Port = GPIOB;
  756. HAL_GPIO_WritePin(pin.Port,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  757. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_SET);//LE
  758. HAL_Delay(1);
  759. HAL_GPIO_WritePin(pin.Port,pin.LE_PIN,GPIO_PIN_RESET);
  760. }
  761. void ADRF5720_Ach_atten_ctrl(uint8_t data){
  762. atten_ctrl pin;
  763. uint8_t i = 0;
  764. pin.Clock_PIN = GPIO_PIN_13;
  765. pin.Data_PIN = GPIO_PIN_14;
  766. pin.LE_PIN = GPIO_PIN_15;
  767. HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_RESET);//LE
  768. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  769. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  770. for(i = 0; i < 8; i++){
  771. if(data & 0x80)
  772. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_SET);//DATA
  773. else
  774. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  775. data <<= 1;
  776. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  777. HAL_Delay(1);
  778. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  779. HAL_Delay(1);
  780. }
  781. HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_SET);//LE
  782. HAL_Delay(1);
  783. HAL_GPIO_WritePin(GPIOF,pin.LE_PIN,GPIO_PIN_RESET);//LE
  784. HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  785. HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  786. }
  787. void ADRF5720_Bch_atten_ctrl(uint8_t data){
  788. atten_ctrl pin;
  789. uint8_t i = 0;
  790. pin.Clock_PIN = GPIO_PIN_6;
  791. pin.Data_PIN = GPIO_PIN_7;
  792. pin.LE_PIN = GPIO_PIN_9;
  793. HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_RESET);//LE
  794. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  795. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  796. for(i = 0; i < 8; i++){
  797. if(data & 0x80)
  798. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_SET);//DATA
  799. else
  800. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  801. data <<= 1;
  802. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK
  803. HAL_Delay(1);
  804. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  805. HAL_Delay(1);
  806. }
  807. HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_SET);//LE
  808. HAL_Delay(1);
  809. HAL_GPIO_WritePin(GPIOG,pin.LE_PIN,GPIO_PIN_RESET);//LE
  810. HAL_GPIO_WritePin(GPIOD,pin.Data_PIN,GPIO_PIN_RESET);//DATA
  811. HAL_GPIO_WritePin(GPIOD,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK
  812. }
  813. void HMC939_Ach_atten_ctrl(uint8_t data,uint8_t Ch){
  814. HMC939atten_ctrl pin;
  815. pin.ATT_P0 = GPIO_PIN_4;
  816. pin.ATT_P1 = GPIO_PIN_5;
  817. pin.ATT_P2 = GPIO_PIN_6;
  818. pin.ATT_P3 = GPIO_PIN_7;
  819. pin.ATT_P4 = GPIO_PIN_4;
  820. pin.ATT_ENABLE = GPIO_PIN_7;
  821. if(data & 0x10)
  822. HAL_GPIO_WritePin(GPIOC,pin.ATT_P4,GPIO_PIN_SET); //data
  823. else
  824. HAL_GPIO_WritePin(GPIOC,pin.ATT_P4,GPIO_PIN_RESET); //data
  825. if(data & 0x08)
  826. HAL_GPIO_WritePin(GPIOA,pin.ATT_P3,GPIO_PIN_SET); //data
  827. else
  828. HAL_GPIO_WritePin(GPIOA,pin.ATT_P3,GPIO_PIN_RESET); //data
  829. if(data & 0x04)
  830. HAL_GPIO_WritePin(GPIOA,pin.ATT_P2,GPIO_PIN_SET); //data
  831. else
  832. HAL_GPIO_WritePin(GPIOA,pin.ATT_P2,GPIO_PIN_RESET); //data
  833. if(data & 0x02)
  834. HAL_GPIO_WritePin(GPIOA,pin.ATT_P1,GPIO_PIN_SET); //data
  835. else
  836. HAL_GPIO_WritePin(GPIOA,pin.ATT_P1,GPIO_PIN_RESET); //data
  837. if(data & 0x01)
  838. HAL_GPIO_WritePin(GPIOA,pin.ATT_P0,GPIO_PIN_SET); //data
  839. else
  840. HAL_GPIO_WritePin(GPIOA,pin.ATT_P0,GPIO_PIN_RESET); //data
  841. if(Ch == 0) {
  842. pin.ATT_ENABLE = GPIO_PIN_5;//enable
  843. HAL_GPIO_WritePin(GPIOC,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  844. HAL_Delay(1);
  845. HAL_GPIO_WritePin(GPIOC,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  846. HAL_Delay(1);
  847. }//LE}
  848. if (Ch == 1) {
  849. pin.ATT_ENABLE = GPIO_PIN_0;//enable
  850. HAL_GPIO_WritePin(GPIOB,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  851. HAL_Delay(1);
  852. HAL_GPIO_WritePin(GPIOB,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  853. HAL_Delay(1);
  854. }//LE}
  855. }
  856. void HMC939_Bch_atten_ctrl(uint8_t data,uint8_t Ch){
  857. HMC939atten_ctrl pin;
  858. pin.ATT_P0 = GPIO_PIN_10;
  859. pin.ATT_P1 = GPIO_PIN_11;
  860. pin.ATT_P2 = GPIO_PIN_12;
  861. pin.ATT_P3 = GPIO_PIN_0;
  862. pin.ATT_P4 = GPIO_PIN_1;
  863. pin.ATT_ENABLE = GPIO_PIN_7;
  864. if(data & 0x10)
  865. HAL_GPIO_WritePin(GPIOD,pin.ATT_P4,GPIO_PIN_SET); //data
  866. else
  867. HAL_GPIO_WritePin(GPIOD,pin.ATT_P4,GPIO_PIN_RESET); //data
  868. if(data & 0x08)
  869. HAL_GPIO_WritePin(GPIOD,pin.ATT_P3,GPIO_PIN_SET); //data
  870. else
  871. HAL_GPIO_WritePin(GPIOD,pin.ATT_P3,GPIO_PIN_RESET); //data
  872. if(data & 0x04)
  873. HAL_GPIO_WritePin(GPIOC,pin.ATT_P2,GPIO_PIN_SET); //data
  874. else
  875. HAL_GPIO_WritePin(GPIOC,pin.ATT_P2,GPIO_PIN_RESET); //data
  876. if(data & 0x02)
  877. HAL_GPIO_WritePin(GPIOC,pin.ATT_P1,GPIO_PIN_SET); //data
  878. else
  879. HAL_GPIO_WritePin(GPIOC,pin.ATT_P1,GPIO_PIN_RESET); //data
  880. if(data & 0x01)
  881. HAL_GPIO_WritePin(GPIOC,pin.ATT_P0,GPIO_PIN_SET); //data
  882. else
  883. HAL_GPIO_WritePin(GPIOC,pin.ATT_P0,GPIO_PIN_RESET); //data
  884. if(Ch == 0) {
  885. pin.ATT_ENABLE = GPIO_PIN_2;//enable
  886. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  887. HAL_Delay(1);
  888. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  889. HAL_Delay(1);
  890. }//LE}
  891. if (Ch == 1) {
  892. pin.ATT_ENABLE = GPIO_PIN_3;//enable
  893. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_SET);//LE
  894. HAL_Delay(1);
  895. HAL_GPIO_WritePin(GPIOD,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE
  896. HAL_Delay(1);
  897. }//LE}
  898. }
  899. Atten_Alarm_t Atten_Alarm_Read(void){
  900. Atten_Alarm_t ret;
  901. ret.Atten_Ach_Alarm_30G = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6);
  902. ret.Atten_Bch_Alarm_30G = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1);
  903. ret.Atten_Ach_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_7);
  904. ret.Atten_Bch_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2);
  905. ret.Atten_Ach_Alarm_150M = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8);
  906. ret.Atten_Bch_Alarm_150M = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3);
  907. return ret;
  908. }
  909. void Alarm_Operate(Atten_Alarm_t data){
  910. if(data.Atten_Ach_Alarm_30G == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_30G == GPIO_PIN_RESET){
  911. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET);
  912. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET);
  913. }
  914. else{
  915. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET);
  916. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET);
  917. }
  918. if(data.Atten_Ach_Alarm_WIFI == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_WIFI == GPIO_PIN_RESET){
  919. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET);
  920. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET);
  921. }
  922. else{
  923. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET);
  924. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET);
  925. }
  926. if(data.Atten_Ach_Alarm_150M == GPIO_PIN_RESET|| data.Atten_Bch_Alarm_150M == GPIO_PIN_RESET){
  927. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_RESET);
  928. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_SET);
  929. }
  930. else{
  931. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_SET);
  932. HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET);
  933. }
  934. }
  935. void Uart_Data_Send(uint8_t* data,uint8_t size){
  936. HAL_UART_Transmit_DMA(&huart3, data,size);
  937. // for(uint8_t i = 0; i <data[Bluecell_Length] + 5;i++ )
  938. // printf("%02x ",data[i]);
  939. // printf("\r\n");
  940. }
  941. #define ATT_NOT_CRC_CHECK_LEN 5
  942. #define ATT_AB_CH_Read_Length 38 + ATT_NOT_CRC_CHECK_LEN
  943. uint8_t printf_if = 0;
  944. uint8_t Atten_Offset_QPC6614(Atten_Table_Value_t TableName, uint8_t data){
  945. uint8_t ret = 0;
  946. uint8_t temp_data[100] = {0,};
  947. memcpy(temp_data,&TableName.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));
  948. switch(data){
  949. case QPC6614_Atten_31_5dB_num : ret = TableName.Atten_Table_31_5dB_Value ;break;
  950. case QPC6614_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  951. case QPC6614_Atten_30_5dB_num : ret = TableName.Atten_Table_30_5dB_Value ;break;
  952. case QPC6614_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  953. case QPC6614_Atten_29_5dB_num : ret = TableName.Atten_Table_29_5dB_Value ;break;
  954. case QPC6614_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  955. case QPC6614_Atten_28_5dB_num : ret = TableName.Atten_Table_28_5dB_Value ;break;
  956. case QPC6614_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  957. case QPC6614_Atten_27_5dB_num : ret = TableName.Atten_Table_27_5dB_Value ;break;
  958. case QPC6614_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  959. case QPC6614_Atten_26_5dB_num : ret = TableName.Atten_Table_26_5dB_Value ;break;
  960. case QPC6614_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  961. case QPC6614_Atten_25_5dB_num : ret = TableName.Atten_Table_25_5dB_Value ;break;
  962. case QPC6614_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  963. case QPC6614_Atten_24_5dB_num : ret = TableName.Atten_Table_24_5dB_Value ;break;
  964. case QPC6614_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  965. case QPC6614_Atten_23_5dB_num : ret = TableName.Atten_Table_23_5dB_Value ;break;
  966. case QPC6614_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  967. case QPC6614_Atten_22_5dB_num : ret = TableName.Atten_Table_22_5dB_Value ;break;
  968. case QPC6614_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  969. case QPC6614_Atten_21_5dB_num : ret = TableName.Atten_Table_21_5dB_Value ;break;
  970. case QPC6614_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  971. case QPC6614_Atten_20_5dB_num : ret = TableName.Atten_Table_20_5dB_Value ;break;
  972. case QPC6614_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  973. case QPC6614_Atten_19_5dB_num : ret = TableName.Atten_Table_19_5dB_Value ;break;
  974. case QPC6614_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  975. case QPC6614_Atten_18_5dB_num : ret = TableName.Atten_Table_18_5dB_Value ;break;
  976. case QPC6614_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  977. case QPC6614_Atten_17_5dB_num : ret = TableName.Atten_Table_17_5dB_Value ;break;
  978. case QPC6614_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  979. case QPC6614_Atten_16_5dB_num : ret = TableName.Atten_Table_16_5dB_Value ;break;
  980. case QPC6614_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  981. case QPC6614_Atten_15_5dB_num : ret = TableName.Atten_Table_15_5dB_Value ;break;
  982. case QPC6614_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  983. case QPC6614_Atten_14_5dB_num : ret = TableName.Atten_Table_14_5dB_Value ;break;
  984. case QPC6614_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  985. case QPC6614_Atten_13_5dB_num : ret = TableName.Atten_Table_13_5dB_Value ;break;
  986. case QPC6614_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  987. case QPC6614_Atten_12_5dB_num : ret = TableName.Atten_Table_12_5dB_Value ;break;
  988. case QPC6614_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  989. case QPC6614_Atten_11_5dB_num : ret = TableName.Atten_Table_11_5dB_Value ;break;
  990. case QPC6614_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  991. case QPC6614_Atten_10_5dB_num : ret = TableName.Atten_Table_10_5dB_Value ;break;
  992. case QPC6614_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  993. case QPC6614_Atten_9_5dB_num : ret = TableName.Atten_Table_9_5dB_Value ;break;
  994. case QPC6614_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  995. case QPC6614_Atten_8_5dB_num : ret = TableName.Atten_Table_8_5dB_Value ;break;
  996. case QPC6614_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  997. case QPC6614_Atten_7_5dB_num : ret = TableName.Atten_Table_7_5dB_Value ;break;
  998. case QPC6614_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  999. case QPC6614_Atten_6_5dB_num : ret = TableName.Atten_Table_6_5dB_Value ;break;
  1000. case QPC6614_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  1001. case QPC6614_Atten_5_5dB_num : ret = TableName.Atten_Table_5_5dB_Value ;break;
  1002. case QPC6614_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  1003. case QPC6614_Atten_4_5dB_num : ret = TableName.Atten_Table_4_5dB_Value ;break;
  1004. case QPC6614_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  1005. case QPC6614_Atten_3_5dB_num : ret = TableName.Atten_Table_3_5dB_Value ;break;
  1006. case QPC6614_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  1007. case QPC6614_Atten_2_5dB_num : ret = TableName.Atten_Table_2_5dB_Value ;break;
  1008. case QPC6614_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  1009. case QPC6614_Atten_1_5dB_num : ret = TableName.Atten_Table_1_5dB_Value ;break;
  1010. case QPC6614_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  1011. case QPC6614_Atten_0_5dB_num : ret = TableName.Atten_Table_0_5dB_Value ;break;
  1012. case QPC6614_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  1013. default : printf("Critical Error\r\n");
  1014. }
  1015. return ret;
  1016. }
  1017. uint8_t Atten_Offset_PE43711(Atten_Table_Value_t TableName, uint8_t data){
  1018. uint8_t ret = 0;
  1019. uint8_t temp_data[100] = {0,};
  1020. memcpy(temp_data,&TableName.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));
  1021. switch(data){
  1022. case PE43711_Atten_31_5dB_num : ret = TableName.Atten_Table_31_5dB_Value ;break;
  1023. case PE43711_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  1024. case PE43711_Atten_30_5dB_num : ret = TableName.Atten_Table_30_5dB_Value ;break;
  1025. case PE43711_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  1026. case PE43711_Atten_29_5dB_num : ret = TableName.Atten_Table_29_5dB_Value ;break;
  1027. case PE43711_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  1028. case PE43711_Atten_28_5dB_num : ret = TableName.Atten_Table_28_5dB_Value ;break;
  1029. case PE43711_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  1030. case PE43711_Atten_27_5dB_num : ret = TableName.Atten_Table_27_5dB_Value ;break;
  1031. case PE43711_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  1032. case PE43711_Atten_26_5dB_num : ret = TableName.Atten_Table_26_5dB_Value ;break;
  1033. case PE43711_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  1034. case PE43711_Atten_25_5dB_num : ret = TableName.Atten_Table_25_5dB_Value ;break;
  1035. case PE43711_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  1036. case PE43711_Atten_24_5dB_num : ret = TableName.Atten_Table_24_5dB_Value ;break;
  1037. case PE43711_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  1038. case PE43711_Atten_23_5dB_num : ret = TableName.Atten_Table_23_5dB_Value ;break;
  1039. case PE43711_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  1040. case PE43711_Atten_22_5dB_num : ret = TableName.Atten_Table_22_5dB_Value ;break;
  1041. case PE43711_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  1042. case PE43711_Atten_21_5dB_num : ret = TableName.Atten_Table_21_5dB_Value ;break;
  1043. case PE43711_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  1044. case PE43711_Atten_20_5dB_num : ret = TableName.Atten_Table_20_5dB_Value ;break;
  1045. case PE43711_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  1046. case PE43711_Atten_19_5dB_num : ret = TableName.Atten_Table_19_5dB_Value ;break;
  1047. case PE43711_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  1048. case PE43711_Atten_18_5dB_num : ret = TableName.Atten_Table_18_5dB_Value ;break;
  1049. case PE43711_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  1050. case PE43711_Atten_17_5dB_num : ret = TableName.Atten_Table_17_5dB_Value ;break;
  1051. case PE43711_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  1052. case PE43711_Atten_16_5dB_num : ret = TableName.Atten_Table_16_5dB_Value ;break;
  1053. case PE43711_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  1054. case PE43711_Atten_15_5dB_num : ret = TableName.Atten_Table_15_5dB_Value ;break;
  1055. case PE43711_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  1056. case PE43711_Atten_14_5dB_num : ret = TableName.Atten_Table_14_5dB_Value ;break;
  1057. case PE43711_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  1058. case PE43711_Atten_13_5dB_num : ret = TableName.Atten_Table_13_5dB_Value ;break;
  1059. case PE43711_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  1060. case PE43711_Atten_12_5dB_num : ret = TableName.Atten_Table_12_5dB_Value ;break;
  1061. case PE43711_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  1062. case PE43711_Atten_11_5dB_num : ret = TableName.Atten_Table_11_5dB_Value ;break;
  1063. case PE43711_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  1064. case PE43711_Atten_10_5dB_num : ret = TableName.Atten_Table_10_5dB_Value ;break;
  1065. case PE43711_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  1066. case PE43711_Atten_9_5dB_num : ret = TableName.Atten_Table_9_5dB_Value ;break;
  1067. case PE43711_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  1068. case PE43711_Atten_8_5dB_num : ret = TableName.Atten_Table_8_5dB_Value ;break;
  1069. case PE43711_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  1070. case PE43711_Atten_7_5dB_num : ret = TableName.Atten_Table_7_5dB_Value ;break;
  1071. case PE43711_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  1072. case PE43711_Atten_6_5dB_num : ret = TableName.Atten_Table_6_5dB_Value ;break;
  1073. case PE43711_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  1074. case PE43711_Atten_5_5dB_num : ret = TableName.Atten_Table_5_5dB_Value ;break;
  1075. case PE43711_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  1076. case PE43711_Atten_4_5dB_num : ret = TableName.Atten_Table_4_5dB_Value ;break;
  1077. case PE43711_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  1078. case PE43711_Atten_3_5dB_num : ret = TableName.Atten_Table_3_5dB_Value ;break;
  1079. case PE43711_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  1080. case PE43711_Atten_2_5dB_num : ret = TableName.Atten_Table_2_5dB_Value ;break;
  1081. case PE43711_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  1082. case PE43711_Atten_1_5dB_num : ret = TableName.Atten_Table_1_5dB_Value ;break;
  1083. case PE43711_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  1084. case PE43711_Atten_0_5dB_num : ret = TableName.Atten_Table_0_5dB_Value ;break;
  1085. case PE43711_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  1086. default : printf("Critical Error\r\n");
  1087. }
  1088. return ret;
  1089. }
  1090. uint8_t Atten_Offset_ADRF5720(Atten_Table_Value_t TableName, uint8_t data){
  1091. uint8_t ret = 0;
  1092. switch(data){
  1093. case ADRF5720_Atten_31_5dB_num : ret = TableName.Atten_Table_31_5dB_Value ;break;
  1094. case ADRF5720_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  1095. case ADRF5720_Atten_30_5dB_num : ret = TableName.Atten_Table_30_5dB_Value ;break;
  1096. case ADRF5720_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  1097. case ADRF5720_Atten_29_5dB_num : ret = TableName.Atten_Table_29_5dB_Value ;break;
  1098. case ADRF5720_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  1099. case ADRF5720_Atten_28_5dB_num : ret = TableName.Atten_Table_28_5dB_Value ;break;
  1100. case ADRF5720_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  1101. case ADRF5720_Atten_27_5dB_num : ret = TableName.Atten_Table_27_5dB_Value ;break;
  1102. case ADRF5720_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  1103. case ADRF5720_Atten_26_5dB_num : ret = TableName.Atten_Table_26_5dB_Value ;break;
  1104. case ADRF5720_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  1105. case ADRF5720_Atten_25_5dB_num : ret = TableName.Atten_Table_25_5dB_Value ;break;
  1106. case ADRF5720_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  1107. case ADRF5720_Atten_24_5dB_num : ret = TableName.Atten_Table_24_5dB_Value ;break;
  1108. case ADRF5720_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  1109. case ADRF5720_Atten_23_5dB_num : ret = TableName.Atten_Table_23_5dB_Value ;break;
  1110. case ADRF5720_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  1111. case ADRF5720_Atten_22_5dB_num : ret = TableName.Atten_Table_22_5dB_Value ;break;
  1112. case ADRF5720_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  1113. case ADRF5720_Atten_21_5dB_num : ret = TableName.Atten_Table_21_5dB_Value ;break;
  1114. case ADRF5720_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  1115. case ADRF5720_Atten_20_5dB_num : ret = TableName.Atten_Table_20_5dB_Value ;break;
  1116. case ADRF5720_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  1117. case ADRF5720_Atten_19_5dB_num : ret = TableName.Atten_Table_19_5dB_Value ;break;
  1118. case ADRF5720_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  1119. case ADRF5720_Atten_18_5dB_num : ret = TableName.Atten_Table_18_5dB_Value ;break;
  1120. case ADRF5720_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  1121. case ADRF5720_Atten_17_5dB_num : ret = TableName.Atten_Table_17_5dB_Value ;break;
  1122. case ADRF5720_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  1123. case ADRF5720_Atten_16_5dB_num : ret = TableName.Atten_Table_16_5dB_Value ;break;
  1124. case ADRF5720_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  1125. case ADRF5720_Atten_15_5dB_num : ret = TableName.Atten_Table_15_5dB_Value ;break;
  1126. case ADRF5720_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  1127. case ADRF5720_Atten_14_5dB_num : ret = TableName.Atten_Table_14_5dB_Value ;break;
  1128. case ADRF5720_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  1129. case ADRF5720_Atten_13_5dB_num : ret = TableName.Atten_Table_13_5dB_Value ;break;
  1130. case ADRF5720_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  1131. case ADRF5720_Atten_12_5dB_num : ret = TableName.Atten_Table_12_5dB_Value ;break;
  1132. case ADRF5720_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  1133. case ADRF5720_Atten_11_5dB_num : ret = TableName.Atten_Table_11_5dB_Value ;break;
  1134. case ADRF5720_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  1135. case ADRF5720_Atten_10_5dB_num : ret = TableName.Atten_Table_10_5dB_Value ;break;
  1136. case ADRF5720_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  1137. case ADRF5720_Atten_9_5dB_num : ret = TableName.Atten_Table_9_5dB_Value ;break;
  1138. case ADRF5720_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  1139. case ADRF5720_Atten_8_5dB_num : ret = TableName.Atten_Table_8_5dB_Value ;break;
  1140. case ADRF5720_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  1141. case ADRF5720_Atten_7_5dB_num : ret = TableName.Atten_Table_7_5dB_Value ;break;
  1142. case ADRF5720_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  1143. case ADRF5720_Atten_6_5dB_num : ret = TableName.Atten_Table_6_5dB_Value ;break;
  1144. case ADRF5720_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  1145. case ADRF5720_Atten_5_5dB_num : ret = TableName.Atten_Table_5_5dB_Value ;break;
  1146. case ADRF5720_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  1147. case ADRF5720_Atten_4_5dB_num : ret = TableName.Atten_Table_4_5dB_Value ;break;
  1148. case ADRF5720_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  1149. case ADRF5720_Atten_3_5dB_num : ret = TableName.Atten_Table_3_5dB_Value ;break;
  1150. case ADRF5720_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  1151. case ADRF5720_Atten_2_5dB_num : ret = TableName.Atten_Table_2_5dB_Value ;break;
  1152. case ADRF5720_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  1153. case ADRF5720_Atten_1_5dB_num : ret = TableName.Atten_Table_1_5dB_Value ;break;
  1154. case ADRF5720_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  1155. case ADRF5720_Atten_0_5dB_num : ret = TableName.Atten_Table_0_5dB_Value ;break;
  1156. case ADRF5720_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  1157. default : printf("Critical Error\r\n");
  1158. }
  1159. return ret;
  1160. }
  1161. uint8_t Atten_Offset_HMC939(Atten_Table_Value_t TableName, uint8_t data){
  1162. uint8_t ret = 0;
  1163. switch(data){
  1164. case HMC939_Atten_31dB_num : ret = TableName.Atten_Table_31dB_Value ;break;
  1165. case HMC939_Atten_30dB_num : ret = TableName.Atten_Table_30dB_Value ;break;
  1166. case HMC939_Atten_29dB_num : ret = TableName.Atten_Table_29dB_Value ;break;
  1167. case HMC939_Atten_28dB_num : ret = TableName.Atten_Table_28dB_Value ;break;
  1168. case HMC939_Atten_27dB_num : ret = TableName.Atten_Table_27dB_Value ;break;
  1169. case HMC939_Atten_26dB_num : ret = TableName.Atten_Table_26dB_Value ;break;
  1170. case HMC939_Atten_25dB_num : ret = TableName.Atten_Table_25dB_Value ;break;
  1171. case HMC939_Atten_24dB_num : ret = TableName.Atten_Table_24dB_Value ;break;
  1172. case HMC939_Atten_23dB_num : ret = TableName.Atten_Table_23dB_Value ;break;
  1173. case HMC939_Atten_22dB_num : ret = TableName.Atten_Table_22dB_Value ;break;
  1174. case HMC939_Atten_21dB_num : ret = TableName.Atten_Table_21dB_Value ;break;
  1175. case HMC939_Atten_20dB_num : ret = TableName.Atten_Table_20dB_Value ;break;
  1176. case HMC939_Atten_19dB_num : ret = TableName.Atten_Table_19dB_Value ;break;
  1177. case HMC939_Atten_18dB_num : ret = TableName.Atten_Table_18dB_Value ;break;
  1178. case HMC939_Atten_17dB_num : ret = TableName.Atten_Table_17dB_Value ;break;
  1179. case HMC939_Atten_16dB_num : ret = TableName.Atten_Table_16dB_Value ;break;
  1180. case HMC939_Atten_15dB_num : ret = TableName.Atten_Table_15dB_Value ;break;
  1181. case HMC939_Atten_14dB_num : ret = TableName.Atten_Table_14dB_Value ;break;
  1182. case HMC939_Atten_13dB_num : ret = TableName.Atten_Table_13dB_Value ;break;
  1183. case HMC939_Atten_12dB_num : ret = TableName.Atten_Table_12dB_Value ;break;
  1184. case HMC939_Atten_11dB_num : ret = TableName.Atten_Table_11dB_Value ;break;
  1185. case HMC939_Atten_10dB_num : ret = TableName.Atten_Table_10dB_Value ;break;
  1186. case HMC939_Atten_9dB_num : ret = TableName.Atten_Table_9dB_Value ;break;
  1187. case HMC939_Atten_8dB_num : ret = TableName.Atten_Table_8dB_Value ;break;
  1188. case HMC939_Atten_7dB_num : ret = TableName.Atten_Table_7dB_Value ;break;
  1189. case HMC939_Atten_6dB_num : ret = TableName.Atten_Table_6dB_Value ;break;
  1190. case HMC939_Atten_5dB_num : ret = TableName.Atten_Table_5dB_Value ;break;
  1191. case HMC939_Atten_4dB_num : ret = TableName.Atten_Table_4dB_Value ;break;
  1192. case HMC939_Atten_3dB_num : ret = TableName.Atten_Table_3dB_Value ;break;
  1193. case HMC939_Atten_2dB_num : ret = TableName.Atten_Table_2dB_Value ;break;
  1194. case HMC939_Atten_1dB_num : ret = TableName.Atten_Table_1dB_Value ;break;
  1195. case HMC939_Atten_0dB_num : ret = TableName.Atten_Table_0dB_Value ;break;
  1196. default : printf("Critical Error\r\n");
  1197. }
  1198. return ret;
  1199. }
  1200. typedef enum{
  1201. PE43711_Offset_Sel ,
  1202. HMC939_Offset_Sel ,
  1203. ADRF5720_Offset_Sel,
  1204. }offset_type_t;
  1205. uint8_t Atten_Offset_Calc(offset_type_t type,Atten_Table_Value_t TableName,uint8_t data){
  1206. uint8_t ret = 0;
  1207. switch(type){
  1208. case PE43711_Offset_Sel: Atten_Offset_PE43711(TableName,data); break;
  1209. case HMC939_Offset_Sel: Atten_Offset_HMC939(TableName,data); break;
  1210. case ADRF5720_Offset_Sel: Atten_Offset_ADRF5720(TableName,data);break;
  1211. }
  1212. return ret;
  1213. }
  1214. void Atten_Init(void){
  1215. QPC6614_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_150M,0);
  1216. PE43711_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_1,1);
  1217. PE43711_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_2,2);
  1218. PE43711_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_3,3);
  1219. PE43711_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_WIFI_4,4);
  1220. HMC939_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_30G_1,0);
  1221. HMC939_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_30G_2,1);
  1222. ADRF5720_Ach_atten_ctrl(ATT_Curr_Value.ATT_A_CH_CURR_30G_3);
  1223. QPC6614_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_150M,0);
  1224. PE43711_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_1,1);
  1225. PE43711_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_2,2);
  1226. PE43711_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_3,3);
  1227. PE43711_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_WIFI_4,4);
  1228. HMC939_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_30G_1,0);
  1229. HMC939_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_30G_2,1);
  1230. ADRF5720_Bch_atten_ctrl(ATT_Curr_Value.ATT_B_CH_CURR_30G_3);
  1231. }
  1232. void Atten_Operate(uint8_t* data){
  1233. AttenType_t Temp_Type = data[Bluecell_Type];
  1234. static uint8_t ret[100] = {0,};
  1235. switch(Temp_Type){
  1236. case ATT_AB_CH_Read : /*memcpy(&ret[Bluecell_DATA],&data,) */
  1237. ret[Bluecell_STX] = data[Bluecell_STX] = 0xBE;
  1238. ret[Bluecell_Length] = data[Bluecell_Length] ;
  1239. ret[Bluecell_Type] = data[Bluecell_Type] = ATT_AB_CH_Read;
  1240. memcpy(&ret[Bluecell_DATA],&Atten_Setting.ATT_A_CH_150M,42);
  1241. for(int i = 44; i < 69; i++)
  1242. ret[i] = 0;
  1243. ret[ret[Bluecell_Length] + 3] = STH30_CreateCrc(&ret[Bluecell_Type],ret[Bluecell_Length]+2);
  1244. ret[ret[Bluecell_Length] + 4] = 0xEB;
  1245. //
  1246. // for(int i = 0; i < data[Bluecell_Length] +5; i++)
  1247. // printf("%02x ",data[i]);
  1248. //
  1249. // printf("END \r\n");
  1250. Uart_Data_Send(&ret[0],ret[Bluecell_Length] +5);
  1251. break;
  1252. case ATT_A_CH_150M :
  1253. QPC6614_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  1254. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_150M,&data[Bluecell_DATA] ,1);
  1255. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_150M,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1256. break;
  1257. case ATT_A_CH_WIFI2_4Ghz :
  1258. for(uint8_t i = 0; i < 4; i++)
  1259. PE43711_Ach_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  1260. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1261. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_WIFI2_4Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1262. break;
  1263. case ATT_A_CH_WIFI5_8Ghz :
  1264. for(uint8_t i = 0; i < 4; i++)
  1265. PE43711_Ach_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  1266. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1267. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_WIFI5_8Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1268. break;
  1269. case ATT_A_CH_30G_28_28_5 :
  1270. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  1271. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  1272. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  1273. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1274. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_28_28_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1275. break;
  1276. case ATT_A_CH_30G_28_5_29 :
  1277. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  1278. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  1279. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  1280. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1281. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_28_5_29,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1282. break;
  1283. case ATT_A_CH_30G_29_29_5 :
  1284. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  1285. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  1286. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  1287. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1288. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_29_29_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1289. break;
  1290. case ATT_A_CH_30G_29_5_30 :
  1291. HMC939_Ach_atten_ctrl(data[Bluecell_DATA ],0);
  1292. HMC939_Ach_atten_ctrl(data[Bluecell_DATA + 1],1);
  1293. ADRF5720_Ach_atten_ctrl(data[Bluecell_DATA + 2]);
  1294. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1295. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_CH_30G_29_5_30,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1296. break;
  1297. case ATT_B_CH_150M :
  1298. QPC6614_Bch_atten_ctrl(data[Bluecell_DATA],0);
  1299. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_150M,&data[Bluecell_DATA] ,1);
  1300. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_150M,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1301. break;
  1302. case ATT_B_CH_WIFI2_4Ghz :
  1303. for(uint8_t i = 0; i < 4; i++)
  1304. PE43711_Bch_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  1305. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1306. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_WIFI2_4Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1307. break;
  1308. case ATT_B_CH_WIFI5_8Ghz :
  1309. for(uint8_t i = 0; i < 4; i++)
  1310. PE43711_Bch_atten_ctrl(data[Bluecell_DATA + i],i + 1);
  1311. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_WIFI,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1312. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_WIFI5_8Ghz,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1313. break;
  1314. case ATT_B_CH_30G_28_28_5 :
  1315. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  1316. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  1317. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  1318. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1319. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_28_28_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1320. break;
  1321. case ATT_B_CH_30G_28_5_29 :
  1322. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  1323. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  1324. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  1325. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1326. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_28_5_29,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1327. break;
  1328. case ATT_B_CH_30G_29_29_5 :
  1329. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  1330. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  1331. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  1332. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1333. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_29_29_5,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1334. break;
  1335. case ATT_B_CH_30G_29_5_30 :
  1336. HMC939_Bch_atten_ctrl(data[Bluecell_DATA ],0);
  1337. HMC939_Bch_atten_ctrl(data[Bluecell_DATA + 1],1);
  1338. ADRF5720_Bch_atten_ctrl(data[Bluecell_DATA + 2]);
  1339. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_CURR_30G,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN - 1);
  1340. EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_CH_30G_29_5_30,&data[Bluecell_DATA] ,EEPROM_ATTEN_CURR_ST_LEN);
  1341. break;
  1342. /****************************TABLE************************************/
  1343. case ATT_A_EN_150M : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_A_EN_150M ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t));break;
  1344. 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)); break;
  1345. 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)); break;
  1346. 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)); break;
  1347. 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)); break;
  1348. 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)); break;
  1349. 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)); break;
  1350. 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)); break;
  1351. 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)); break;
  1352. 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)); break;
  1353. 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)); break;
  1354. 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)); break;
  1355. 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)); break;
  1356. 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)); break;
  1357. 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)); break;
  1358. 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)); break;
  1359. 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)); break;
  1360. 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)); break;
  1361. 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)); break;
  1362. 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)); break;
  1363. 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)); break;
  1364. case ATT_B_EN_150M : EEPROM_IM24CM01P_write(EEPROM_IM24CM01P_ID,EEPROM_ATT_B_EN_150M ,&data[Bluecell_DATA] ,sizeof(Atten_Table_Value_t)); break;
  1365. 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)); break;
  1366. 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)); break;
  1367. 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)); break;
  1368. 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)); break;
  1369. 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)); break;
  1370. 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)); break;
  1371. 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)); break;
  1372. 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)); break;
  1373. 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)); break;
  1374. 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)); break;
  1375. 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)); break;
  1376. 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)); break;
  1377. 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)); break;
  1378. 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)); break;
  1379. 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)); break;
  1380. 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)); break;
  1381. 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)); break;
  1382. 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)); break;
  1383. 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));break;
  1384. 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;
  1385. /****************************TABLE*********************/
  1386. case ATT_A_EN_150M_R : Atten_Table_Read(EEPROM_ATT_A_EN_150M ,ATT_A_EN_150M_Table ,&data[Bluecell_STX]); break;
  1387. 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;
  1388. 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;
  1389. 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;
  1390. 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;
  1391. 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;
  1392. 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;
  1393. 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;
  1394. 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;
  1395. 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;
  1396. 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;
  1397. 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;
  1398. 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;
  1399. 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;
  1400. 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;
  1401. 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;
  1402. 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;
  1403. 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;
  1404. 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;
  1405. 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;
  1406. 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;
  1407. case ATT_B_EN_150M_R : Atten_Table_Read(EEPROM_ATT_B_EN_150M ,ATT_B_EN_150M_Table ,&data[Bluecell_STX]); break;
  1408. 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;
  1409. 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;
  1410. 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;
  1411. 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;
  1412. 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;
  1413. 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;
  1414. 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;
  1415. 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;
  1416. 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;
  1417. 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;
  1418. 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;
  1419. 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;
  1420. 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;
  1421. 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;
  1422. 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;
  1423. 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;
  1424. 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;
  1425. 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;
  1426. 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;
  1427. 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;
  1428. }
  1429. }
  1430. void Atten_Table_Read(uint16_t Address,Atten_Table_Value_t TableName,uint8_t* data){
  1431. static uint8_t ret[100] = {0,};
  1432. ret[Bluecell_STX] = 0xBE;
  1433. ret[Bluecell_Type] = data[Bluecell_Type];
  1434. ret[Bluecell_Length] = data[Bluecell_Length];
  1435. memcpy(&ret[Bluecell_DATA],&TableName.Atten_Table_31_5dB_Value,sizeof(Atten_Table_Value_t));
  1436. ret[ret[Bluecell_Length] + 3] = STH30_CreateCrc(&data[Bluecell_Type],data[Bluecell_Length] + 2);
  1437. ret[ret[Bluecell_Length] + 4] = 0xeb;
  1438. Uart_Data_Send(ret,ret[Bluecell_Length]+5);
  1439. }
  1440. void Atten_Operate_Mem_RW(uint8_t* data){
  1441. AttenType_t Temp_Type = data[Bluecell_Type];
  1442. uint8_t ResultBuf[100] ={0,};
  1443. ResultBuf[Bluecell_STX] = data[Bluecell_STX];
  1444. ResultBuf[Bluecell_Type] = data[Bluecell_Type];
  1445. ResultBuf[Bluecell_Length] = data[Bluecell_Length];
  1446. ResultBuf[ResultBuf[Bluecell_Length] + 4] = data[data[Bluecell_Length] + 4];
  1447. // for(int i = 0; i < data[2] + 3; i++)
  1448. // printf("%02x ",data[i]);
  1449. switch(Temp_Type){
  1450. case ATT_AB_CH_Read :
  1451. // memcpy(&ResultBuf[Bluecell_DATA],&Atten_Setting.ATT_A_CH_150M,data[Bluecell_DATA]);
  1452. memcpy(&ResultBuf[Bluecell_DATA],&Atten_Setting.ATT_A_CH_150M,sizeof(Atten_AB_Val_t) - 6);
  1453. break;
  1454. case ATT_A_CH_150M :
  1455. Atten_Setting.ATT_A_CH_150M = data[Bluecell_DATA];
  1456. data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_A_EN_150M_Table,data[Bluecell_DATA]);
  1457. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1458. break;
  1459. case ATT_A_CH_WIFI2_4Ghz :
  1460. memcpy(&Atten_Setting.ATT_A_CH_WIFI2_4Ghz_PE43711_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH);
  1461. data[Bluecell_DATA] = Atten_Offset_PE43711(ATT_A_EN_WIFI1_2_4Ghz_Table,data[Bluecell_DATA]);
  1462. data[Bluecell_DATA + 1] = Atten_Offset_PE43711(ATT_A_EN_WIFI2_2_4Ghz_Table,data[Bluecell_DATA + 1]);
  1463. data[Bluecell_DATA + 2] = Atten_Offset_PE43711(ATT_A_EN_WIFI3_2_4Ghz_Table,data[Bluecell_DATA + 2]);
  1464. data[Bluecell_DATA + 3] = Atten_Offset_PE43711(ATT_A_EN_WIFI4_2_4Ghz_Table,data[Bluecell_DATA + 3]);
  1465. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1466. break;
  1467. case ATT_A_CH_WIFI5_8Ghz :
  1468. memcpy(&Atten_Setting.ATT_A_CH_WIFI5_8Ghz_PE43711_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH);
  1469. data[Bluecell_DATA] = Atten_Offset_PE43711(ATT_A_EN_WIFI1_5_8Ghz_Table,data[Bluecell_DATA]);
  1470. data[Bluecell_DATA + 1] = Atten_Offset_PE43711(ATT_A_EN_WIFI2_5_8Ghz_Table,data[Bluecell_DATA + 1]);
  1471. data[Bluecell_DATA + 2] = Atten_Offset_PE43711(ATT_A_EN_WIFI3_5_8Ghz_Table,data[Bluecell_DATA + 2]);
  1472. data[Bluecell_DATA + 3] = Atten_Offset_PE43711(ATT_A_EN_WIFI4_5_8Ghz_Table,data[Bluecell_DATA + 3]);
  1473. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1474. break;
  1475. case ATT_A_CH_30G_28_28_5 :
  1476. memcpy(&Atten_Setting.ATT_A_CH_30G_28_28_5_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1477. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_28_28_5Ghz_Table,data[Bluecell_DATA]);
  1478. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_28_28_5Ghz_Table,data[Bluecell_DATA + 1]);
  1479. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_28_28_5Ghz_Table,data[Bluecell_DATA + 2]);
  1480. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1481. break;
  1482. case ATT_A_CH_30G_28_5_29 :
  1483. memcpy(&Atten_Setting.ATT_A_CH_30G_28_5_29_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1484. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_28_5_29Ghz_Table,data[Bluecell_DATA]);
  1485. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_28_5_29Ghz_Table,data[Bluecell_DATA + 1]);
  1486. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_28_5_29Ghz_Table,data[Bluecell_DATA + 2]);
  1487. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1488. break;
  1489. case ATT_A_CH_30G_29_29_5 :
  1490. memcpy(&Atten_Setting.ATT_A_CH_30G_29_29_5_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1491. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_29_29_5Ghz_Table,data[Bluecell_DATA]);
  1492. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_29_29_5Ghz_Table,data[Bluecell_DATA + 1]);
  1493. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_29_29_5Ghz_Table,data[Bluecell_DATA + 2]);
  1494. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1495. break;
  1496. case ATT_A_CH_30G_29_5_30 :
  1497. memcpy(&Atten_Setting.ATT_A_CH_30G_29_5_30_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1498. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_A_EN_30G1_29_5_30Ghz_Table,data[Bluecell_DATA]);
  1499. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_A_EN_30G2_29_5_30Ghz_Table,data[Bluecell_DATA + 1]);
  1500. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_A_EN_30G3_29_5_30Ghz_Table,data[Bluecell_DATA + 2]);
  1501. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1502. break;
  1503. case ATT_B_CH_150M:
  1504. Atten_Setting.ATT_B_CH_150M = data[Bluecell_DATA];
  1505. data[Bluecell_DATA] = Atten_Offset_QPC6614(ATT_B_EN_150M_Table,data[Bluecell_DATA]);
  1506. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1507. break;
  1508. case ATT_B_CH_WIFI2_4Ghz :
  1509. memcpy(&Atten_Setting.ATT_B_CH_WIFI2_4Ghz_PE43711_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH);
  1510. data[Bluecell_DATA] = Atten_Offset_PE43711(ATT_B_EN_WIFI1_2_4Ghz_Table,data[Bluecell_DATA]);
  1511. data[Bluecell_DATA + 1] = Atten_Offset_PE43711(ATT_B_EN_WIFI2_2_4Ghz_Table,data[Bluecell_DATA + 1]);
  1512. data[Bluecell_DATA + 2] = Atten_Offset_PE43711(ATT_B_EN_WIFI3_2_4Ghz_Table,data[Bluecell_DATA + 2]);
  1513. data[Bluecell_DATA + 3] = Atten_Offset_PE43711(ATT_B_EN_WIFI4_2_4Ghz_Table,data[Bluecell_DATA + 3]);
  1514. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1515. break;
  1516. case ATT_B_CH_WIFI5_8Ghz :
  1517. memcpy(&Atten_Setting.ATT_B_CH_WIFI5_8Ghz_PE43711_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH);
  1518. data[Bluecell_DATA] = Atten_Offset_PE43711(ATT_B_EN_WIFI1_5_8Ghz_Table,data[Bluecell_DATA]);
  1519. data[Bluecell_DATA + 1] = Atten_Offset_PE43711(ATT_B_EN_WIFI2_5_8Ghz_Table,data[Bluecell_DATA + 1]);
  1520. data[Bluecell_DATA + 2] = Atten_Offset_PE43711(ATT_B_EN_WIFI3_5_8Ghz_Table,data[Bluecell_DATA + 2]);
  1521. data[Bluecell_DATA + 3] = Atten_Offset_PE43711(ATT_B_EN_WIFI4_5_8Ghz_Table,data[Bluecell_DATA + 3]);
  1522. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1523. break;
  1524. case ATT_B_CH_30G_28_28_5 :
  1525. memcpy(&Atten_Setting.ATT_B_CH_30G_28_28_5_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1526. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_28_28_5Ghz_Table,data[Bluecell_DATA]);
  1527. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_28_28_5Ghz_Table,data[Bluecell_DATA + 1]);
  1528. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_28_28_5Ghz_Table,data[Bluecell_DATA + 2]);
  1529. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1530. break;
  1531. case ATT_B_CH_30G_28_5_29 :
  1532. memcpy(&Atten_Setting.ATT_B_CH_30G_28_5_29_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1533. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_28_5_29Ghz_Table,data[Bluecell_DATA]);
  1534. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_28_5_29Ghz_Table,data[Bluecell_DATA + 1]);
  1535. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_28_5_29Ghz_Table,data[Bluecell_DATA + 2]);
  1536. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1537. break;
  1538. case ATT_B_CH_30G_29_29_5 :
  1539. memcpy(&Atten_Setting.ATT_B_CH_30G_29_29_5_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1540. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_29_29_5Ghz_Table,data[Bluecell_DATA]);
  1541. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_29_29_5Ghz_Table,data[Bluecell_DATA + 1]);
  1542. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_29_29_5Ghz_Table,data[Bluecell_DATA + 2]);
  1543. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1544. break;
  1545. case ATT_B_CH_30G_29_5_30 :
  1546. memcpy(&Atten_Setting.ATT_B_CH_30G_29_5_30_HMC939_1,&data[Bluecell_DATA],CHSET_UARTDATA_LENGTH-1);
  1547. data[Bluecell_DATA] = Atten_Offset_HMC939(ATT_B_EN_30G1_29_5_30Ghz_Table,data[Bluecell_DATA]);
  1548. data[Bluecell_DATA + 1] = Atten_Offset_HMC939(ATT_B_EN_30G2_29_5_30Ghz_Table,data[Bluecell_DATA + 1]);
  1549. data[Bluecell_DATA + 2] = Atten_Offset_ADRF5720(ATT_B_EN_30G3_29_5_30Ghz_Table,data[Bluecell_DATA + 2]);
  1550. memcpy(&ResultBuf[Bluecell_STX],&data[Bluecell_STX],data[Bluecell_Length] + 5);
  1551. break;
  1552. /****************************TABLE************************************/
  1553. 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;
  1554. 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;
  1555. 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;
  1556. 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;
  1557. 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;
  1558. 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;
  1559. 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;
  1560. 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;
  1561. 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;
  1562. 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;
  1563. 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;
  1564. 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;
  1565. 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;
  1566. 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;
  1567. 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;
  1568. 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;
  1569. 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;
  1570. 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;
  1571. 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;
  1572. 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;
  1573. 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;
  1574. 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;
  1575. 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;
  1576. 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;
  1577. 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;
  1578. 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;
  1579. 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;
  1580. 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;
  1581. 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;
  1582. 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;
  1583. 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;
  1584. 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;
  1585. 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;
  1586. 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;
  1587. 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;
  1588. 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;
  1589. 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;
  1590. 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;
  1591. 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;
  1592. 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;
  1593. 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;
  1594. 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;
  1595. /****************************TABLE************************************/
  1596. 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));
  1597. #if DEBUG_PRINT
  1598. printf("LINE : %d \r\n",__LINE__);break;
  1599. #else
  1600. break;
  1601. #endif
  1602. 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));
  1603. #if DEBUG_PRINT
  1604. printf("LINE : %d \r\n",__LINE__);break;
  1605. #else
  1606. break;
  1607. #endif
  1608. 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));
  1609. #if DEBUG_PRINT
  1610. printf("LINE : %d \r\n",__LINE__);break;
  1611. #else
  1612. break;
  1613. #endif
  1614. 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));
  1615. #if DEBUG_PRINT
  1616. printf("LINE : %d \r\n",__LINE__);break;
  1617. #else
  1618. break;
  1619. #endif
  1620. 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));
  1621. #if DEBUG_PRINT
  1622. printf("LINE : %d \r\n",__LINE__);break;
  1623. #else
  1624. break;
  1625. #endif
  1626. 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));
  1627. #if DEBUG_PRINT
  1628. printf("LINE : %d \r\n",__LINE__);break;
  1629. #else
  1630. break;
  1631. #endif
  1632. 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));
  1633. #if DEBUG_PRINT
  1634. printf("LINE : %d \r\n",__LINE__);break;
  1635. #else
  1636. break;
  1637. #endif
  1638. 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));
  1639. #if DEBUG_PRINT
  1640. printf("LINE : %d \r\n",__LINE__);break;
  1641. #else
  1642. break;
  1643. #endif
  1644. 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));
  1645. #if DEBUG_PRINT
  1646. printf("LINE : %d \r\n",__LINE__);break;
  1647. #else
  1648. break;
  1649. #endif
  1650. 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));
  1651. #if DEBUG_PRINT
  1652. printf("LINE : %d \r\n",__LINE__);break;
  1653. #else
  1654. break;
  1655. #endif
  1656. 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));
  1657. #if DEBUG_PRINT
  1658. printf("LINE : %d \r\n",__LINE__);break;
  1659. #else
  1660. break;
  1661. #endif
  1662. 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));
  1663. #if DEBUG_PRINT
  1664. printf("LINE : %d \r\n",__LINE__);break;
  1665. #else
  1666. break;
  1667. #endif
  1668. 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));
  1669. #if DEBUG_PRINT
  1670. printf("LINE : %d \r\n",__LINE__);break;
  1671. #else
  1672. break;
  1673. #endif
  1674. 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));
  1675. #if DEBUG_PRINT
  1676. printf("LINE : %d \r\n",__LINE__);break;
  1677. #else
  1678. break;
  1679. #endif
  1680. 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));
  1681. #if DEBUG_PRINT
  1682. printf("LINE : %d \r\n",__LINE__);break;
  1683. #else
  1684. break;
  1685. #endif
  1686. 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));
  1687. #if DEBUG_PRINT
  1688. printf("LINE : %d \r\n",__LINE__);break;
  1689. #else
  1690. break;
  1691. #endif
  1692. 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));
  1693. #if DEBUG_PRINT
  1694. printf("LINE : %d \r\n",__LINE__);break;
  1695. #else
  1696. break;
  1697. #endif
  1698. 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));
  1699. #if DEBUG_PRINT
  1700. printf("LINE : %d \r\n",__LINE__);break;
  1701. #else
  1702. break;
  1703. #endif
  1704. 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));
  1705. #if DEBUG_PRINT
  1706. printf("LINE : %d \r\n",__LINE__);break;
  1707. #else
  1708. break;
  1709. #endif
  1710. 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));
  1711. #if DEBUG_PRINT
  1712. printf("LINE : %d \r\n",__LINE__);break;
  1713. #else
  1714. break;
  1715. #endif
  1716. 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));
  1717. #if DEBUG_PRINT
  1718. printf("LINE : %d \r\n",__LINE__);break;
  1719. #else
  1720. break;
  1721. #endif
  1722. 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));
  1723. #if DEBUG_PRINT
  1724. printf("LINE : %d \r\n",__LINE__);break;
  1725. #else
  1726. break;
  1727. #endif
  1728. 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));
  1729. #if DEBUG_PRINT
  1730. printf("LINE : %d \r\n",__LINE__);break;
  1731. #else
  1732. break;
  1733. #endif
  1734. 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));
  1735. #if DEBUG_PRINT
  1736. printf("LINE : %d \r\n",__LINE__);break;
  1737. #else
  1738. break;
  1739. #endif
  1740. 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));
  1741. #if DEBUG_PRINT
  1742. printf("LINE : %d \r\n",__LINE__);break;
  1743. #else
  1744. break;
  1745. #endif
  1746. 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));
  1747. #if DEBUG_PRINT
  1748. printf("LINE : %d \r\n",__LINE__);break;
  1749. #else
  1750. break;
  1751. #endif
  1752. 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));
  1753. #if DEBUG_PRINT
  1754. printf("LINE : %d \r\n",__LINE__);break;
  1755. #else
  1756. break;
  1757. #endif
  1758. 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));
  1759. #if DEBUG_PRINT
  1760. printf("LINE : %d \r\n",__LINE__);break;
  1761. #else
  1762. break;
  1763. #endif
  1764. 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));
  1765. #if DEBUG_PRINT
  1766. printf("LINE : %d \r\n",__LINE__);break;
  1767. #else
  1768. break;
  1769. #endif
  1770. 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));
  1771. #if DEBUG_PRINT
  1772. printf("LINE : %d \r\n",__LINE__);break;
  1773. #else
  1774. break;
  1775. #endif
  1776. 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));
  1777. #if DEBUG_PRINT
  1778. printf("LINE : %d \r\n",__LINE__);break;
  1779. #else
  1780. break;
  1781. #endif
  1782. 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));
  1783. #if DEBUG_PRINT
  1784. printf("LINE : %d \r\n",__LINE__);break;
  1785. #else
  1786. break;
  1787. #endif
  1788. 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));
  1789. #if DEBUG_PRINT
  1790. printf("LINE : %d \r\n",__LINE__);break;
  1791. #else
  1792. break;
  1793. #endif
  1794. 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));
  1795. #if DEBUG_PRINT
  1796. printf("LINE : %d \r\n",__LINE__);break;
  1797. #else
  1798. break;
  1799. #endif
  1800. 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));
  1801. #if DEBUG_PRINT
  1802. printf("LINE : %d \r\n",__LINE__);break;
  1803. #else
  1804. break;
  1805. #endif
  1806. 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));
  1807. #if DEBUG_PRINT
  1808. printf("LINE : %d \r\n",__LINE__);break;
  1809. #else
  1810. break;
  1811. #endif
  1812. 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));
  1813. #if DEBUG_PRINT
  1814. printf("LINE : %d \r\n",__LINE__);break;
  1815. #else
  1816. break;
  1817. #endif
  1818. 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));
  1819. #if DEBUG_PRINT
  1820. printf("LINE : %d \r\n",__LINE__);break;
  1821. #else
  1822. break;
  1823. #endif
  1824. 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));
  1825. #if DEBUG_PRINT
  1826. printf("LINE : %d \r\n",__LINE__);break;
  1827. #else
  1828. break;
  1829. #endif
  1830. 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));
  1831. #if DEBUG_PRINT
  1832. printf("LINE : %d \r\n",__LINE__);break;
  1833. #else
  1834. break;
  1835. #endif
  1836. case ATT_B_EN_30G2_29_5_30Ghz_R :
  1837. memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G2_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1838. break;
  1839. case ATT_B_EN_30G3_29_5_30Ghz_R :
  1840. memcpy(&ResultBuf[Bluecell_DATA],&ATT_B_EN_30G3_29_5_30Ghz_Table.Atten_Table_31_5dB_Value ,sizeof(Atten_Table_Value_t));
  1841. break;
  1842. default:printf("[Error ]Defalut in %s LINE :%d \r\n",__func__,__LINE__);break;
  1843. }
  1844. Atten_Operate(ResultBuf);
  1845. }
  1846. #if 0 // PYJ.2019.02.15_BEGIN --
  1847. void Atten_Alarm_Check(void){
  1848. uint8_t i = ITH_GPIO_PIN29;
  1849. if(ithGpioGet(ITH_GPIO_PIN29) == 1)
  1850. Atten_ABChannel_Data.ATT_A_150M_ALARM = true;
  1851. else
  1852. Atten_ABChannel_Data.ATT_A_150M_ALARM = false;
  1853. if(ithGpioGet(ITH_GPIO_PIN30) == 1)
  1854. Atten_ABChannel_Data.ATT_A_WIFI_ALARM = true;
  1855. else
  1856. Atten_ABChannel_Data.ATT_A_WIFI_ALARM = false;
  1857. if(ithGpioGet(ITH_GPIO_PIN31) == 1)
  1858. Atten_ABChannel_Data.ATT_A_30G_ALARM = true;
  1859. else
  1860. Atten_ABChannel_Data.ATT_A_30G_ALARM = false;
  1861. if(ithGpioGet(ITH_GPIO_PIN32) == 1)
  1862. Atten_ABChannel_Data.ATT_B_150M_ALARM = true;
  1863. else
  1864. Atten_ABChannel_Data.ATT_B_150M_ALARM = false;
  1865. if(ithGpioGet(ITH_GPIO_PIN33) == 1)
  1866. Atten_ABChannel_Data.ATT_B_WIFI_ALARM = true;
  1867. else
  1868. Atten_ABChannel_Data.ATT_B_WIFI_ALARM = false;
  1869. if(ithGpioGet(ITH_GPIO_PIN34) == 1)
  1870. Atten_ABChannel_Data.ATT_B_30G_ALARM = true;
  1871. else
  1872. Atten_ABChannel_Data.ATT_B_30G_ALARM = false;
  1873. }
  1874. #endif // PYJ.2019.02.15_END --