atten_ctrl(4664).c 107 KB

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