Bluecell_operate.c 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682
  1. #include <stdio.h>
  2. #include "main.h"
  3. #include "Bluecell_operate.h"
  4. #include "PE43711.h"
  5. extern volatile uint32_t LedTimerCnt;
  6. extern volatile uint32_t AdcTimerCnt;
  7. extern void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
  8. extern void Uart1_Data_Send(uint8_t* data,uint8_t size);
  9. uint8_t Alarm_Status[MAX_ALARM_Len] = {0,};
  10. //uint8_t data123[10000];
  11. DET_UL DET_UL1;
  12. DET_UL DET_UL2;
  13. DET_UL DET_UL3;
  14. DET_UL DET_UL4;
  15. DET_DL DET_DL1;
  16. DET_DL DET_DL2;
  17. DET_DL DET_DL3;
  18. DET_DL DET_DL4;
  19. uint8_t ResultData[1024] = {0,};
  20. void Boot_LED_Toggle(void){
  21. if(LedTimerCnt > 500){
  22. HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_14);
  23. LedTimerCnt = 0;
  24. // printf("LED OF OFF\r\n");
  25. }
  26. }
  27. uint8_t* MBIC_HeaderDataSetting(uint8_t* data){
  28. ResultData[MBIC_PREAMBLE_0] = MBIC_PREAMBLE0;
  29. ResultData[MBIC_PREAMBLE_1] = MBIC_PREAMBLE1;
  30. ResultData[MBIC_PREAMBLE_2] = MBIC_PREAMBLE2;
  31. ResultData[MBIC_PREAMBLE_3] = MBIC_PREAMBLE3;
  32. ResultData[MBIC_SUBUID_0] = MBIC_SUBUID0;
  33. ResultData[MBIC_SUBUID_1] = MBIC_SUBUID1;
  34. ResultData[MBIC_RCODE_0] = data[MBIC_RCODE_0];
  35. ResultData[MBIC_TRID_0] = data[MBIC_TRID_0];
  36. ResultData[MBIC_TRID_1] = data[MBIC_TRID_1];
  37. ResultData[MBIC_SEQSUM_0] = data[MBIC_SEQSUM_0];
  38. ResultData[MBIC_TTL_0] = data[MBIC_TTL_0];
  39. ResultData[MBIC_TIME_0] = data[MBIC_TIME_0];
  40. ResultData[MBIC_TIME_1] = data[MBIC_TIME_1];
  41. ResultData[MBIC_TIME_2] = data[MBIC_TIME_2];
  42. ResultData[MBIC_TIME_3] = data[MBIC_TIME_3];
  43. ResultData[MBIC_TIME_4] = data[MBIC_TIME_4];
  44. ResultData[MBIC_TIME_5] = data[MBIC_TIME_5];
  45. return ResultData;
  46. }
  47. typedef enum{
  48. BLUECELL_HEADER,
  49. BLUECELL_TYPE,
  50. BLUECELL_LENGTH,
  51. BLUECELL_CRCINDEX,
  52. BLUECELL_DATA,
  53. }BLUECELLProt_st;
  54. typedef struct{
  55. bool AGC1_En;
  56. bool AGC2_En;
  57. bool AGC3_En;
  58. bool AGC4_En;
  59. bool ALC1_En;
  60. bool ALC2_En;
  61. bool ALC3_En;
  62. bool ALC4_En;
  63. }AutoCtrl_st;
  64. extern ALL_PE43711_st ALL_ATT;
  65. BLUESTATUS_st bluecell_Currdatastatus;
  66. BLUESTATUS_st bluecell_Prevdatastatus;
  67. uint8_t PE43711_Calc(uint8_t high_bit,uint8_t low_bit){
  68. uint16_t tmp_h = 0,tmp_l = 0;
  69. double ret = 0;
  70. uint8_t val = 0;
  71. tmp_h = high_bit;
  72. tmp_l = low_bit;
  73. ret += ((tmp_h << 8) & 0xFF00);
  74. ret += (tmp_l & 0x00FF);
  75. ret /= 100;
  76. val = PE43711_DataToHexConvert(ret);
  77. }
  78. void CompareAttenData(BLUESTATUS_st Curr,BLUESTATUS_st Prev){
  79. uint8_t val = 0;
  80. if(Curr.ATT_DL1_H != Prev.ATT_DL1_H
  81. ||Curr.ATT_DL1_L != Prev.ATT_DL1_L){
  82. bluecell_Prevdatastatus.ATT_DL1_H = bluecell_Currdatastatus.ATT_DL1_H;
  83. bluecell_Prevdatastatus.ATT_DL1_L = bluecell_Currdatastatus.ATT_DL1_L;
  84. val = PE43711_Calc(Curr.ATT_DL1_H,Curr.ATT_DL1_L);
  85. printf("%d val = %x \r\n",__LINE__,val);
  86. PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  87. }
  88. printf("\r\nCurr.ATT_DL2_H : %x \r\nPrev.ATT_DL2_H : %x \r\n",Curr.ATT_DL2_H,Prev.ATT_DL2_H);
  89. printf("\r\nCurr.ATT_DL2_L : %x \r\nPrev.ATT_DL2_L : %x \r\n",Curr.ATT_DL2_L,Prev.ATT_DL2_L);
  90. if((Curr.ATT_DL2_H != Prev.ATT_DL2_H)
  91. ||(Curr.ATT_DL2_L != Prev.ATT_DL2_L)){
  92. bluecell_Prevdatastatus.ATT_DL2_H = bluecell_Currdatastatus.ATT_DL2_H;
  93. bluecell_Prevdatastatus.ATT_DL2_L = bluecell_Currdatastatus.ATT_DL2_L;
  94. val = PE43711_Calc(Curr.ATT_DL2_H,Curr.ATT_DL2_L);
  95. printf("%d val = %x \r\n",__LINE__,val);
  96. PE43711_atten_ctrl(ALL_ATT.ATT_DL2,val);
  97. }
  98. if(Curr.ATT_DL3_H != Prev.ATT_DL3_H
  99. ||Curr.ATT_DL3_L != Prev.ATT_DL3_L){
  100. bluecell_Prevdatastatus.ATT_DL3_H = bluecell_Currdatastatus.ATT_DL3_H;
  101. bluecell_Prevdatastatus.ATT_DL3_L = bluecell_Currdatastatus.ATT_DL3_L;
  102. val = PE43711_Calc(Curr.ATT_DL3_H,Curr.ATT_DL3_L);
  103. printf("%d val = %x \r\n",__LINE__,val);
  104. PE43711_atten_ctrl(ALL_ATT.ATT_DL3,val);
  105. }
  106. if(Curr.ATT_DL4_H != Prev.ATT_DL4_H
  107. ||Curr.ATT_DL4_L != Prev.ATT_DL4_L){
  108. bluecell_Prevdatastatus.ATT_DL4_H = bluecell_Currdatastatus.ATT_DL4_H;
  109. bluecell_Prevdatastatus.ATT_DL4_L = bluecell_Currdatastatus.ATT_DL4_L;
  110. val = PE43711_Calc(Curr.ATT_DL4_H,Curr.ATT_DL4_L);
  111. printf("%d val = %x \r\n",__LINE__,val);
  112. PE43711_atten_ctrl(ALL_ATT.ATT_DL4,val);
  113. }
  114. if(Curr.ATT_UL1_H != Prev.ATT_UL1_H
  115. ||Curr.ATT_UL1_L != Prev.ATT_UL1_L){
  116. bluecell_Prevdatastatus.ATT_UL1_H = bluecell_Currdatastatus.ATT_UL1_H;
  117. bluecell_Prevdatastatus.ATT_UL1_L = bluecell_Currdatastatus.ATT_UL1_L;
  118. val = PE43711_Calc(Curr.ATT_UL1_H,Curr.ATT_UL1_L);
  119. printf("%d val = %x \r\n",__LINE__,val);
  120. PE43711_atten_ctrl(ALL_ATT.ATT_UL1,val);
  121. }
  122. if(Curr.ATT_UL2_H != Prev.ATT_UL2_H
  123. ||Curr.ATT_UL2_L != Prev.ATT_UL2_L){
  124. bluecell_Prevdatastatus.ATT_UL2_H = bluecell_Currdatastatus.ATT_UL2_H;
  125. bluecell_Prevdatastatus.ATT_UL2_L = bluecell_Currdatastatus.ATT_UL2_L;
  126. val = PE43711_Calc(Curr.ATT_UL2_H,Curr.ATT_UL2_L);
  127. printf("%d val = %x \r\n",__LINE__,val);
  128. PE43711_atten_ctrl(ALL_ATT.ATT_UL2,val);
  129. }
  130. if(Curr.ATT_UL3_H != Prev.ATT_UL3_H
  131. ||Curr.ATT_UL3_L != Prev.ATT_UL3_L){
  132. bluecell_Prevdatastatus.ATT_UL3_H = bluecell_Currdatastatus.ATT_UL3_H;
  133. bluecell_Prevdatastatus.ATT_UL3_L = bluecell_Currdatastatus.ATT_UL3_L;
  134. val = PE43711_Calc(Curr.ATT_UL3_H,Curr.ATT_UL3_L);
  135. printf("%d val = %x \r\n",__LINE__,val);
  136. PE43711_atten_ctrl(ALL_ATT.ATT_UL3,val);
  137. }
  138. if(Curr.ATT_UL4_H != Prev.ATT_UL4_H
  139. ||Curr.ATT_UL4_L != Prev.ATT_UL4_L){
  140. bluecell_Prevdatastatus.ATT_UL4_H = bluecell_Currdatastatus.ATT_UL4_H;
  141. bluecell_Prevdatastatus.ATT_UL4_L = bluecell_Currdatastatus.ATT_UL4_L;
  142. val = PE43711_Calc(Curr.ATT_UL4_H,Curr.ATT_UL4_L);
  143. printf("%d val = %x \r\n",__LINE__,val);
  144. PE43711_atten_ctrl(ALL_ATT.ATT_UL4,val);
  145. }
  146. // memcpy(&bluecell_Prevdatastatus.ATT_DL1_H,&bluecell_Currdatastatus.ATT_DL1_H,32);
  147. #if 0 // PYJ.2020.04.21_BEGIN --
  148. if(Curr.ATT_ALC1_H != Prev.ATT_ALC1_H
  149. ||Curr.ATT_ALC1_L != Prev.ATT_ALC1_L){
  150. tmp_h = Curr.ATT_ALC1_H;
  151. tmp_l = Curr.ATT_ALC1_L;
  152. ret += ((tmp_h << 8) & 0xFF00);
  153. ret += (tmp_l & 0x00FF);
  154. ret /= 100;
  155. val = PE43711_DataToHexConvert(ret);
  156. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  157. }
  158. if(Curr.ATT_ALC2_H != Prev.ATT_ALC2_H
  159. ||Curr.ATT_ALC2_L != Prev.ATT_ALC2_L){
  160. tmp_h = Curr.ATT_ALC2_H;
  161. tmp_l = Curr.ATT_ALC2_L;
  162. ret += ((tmp_h << 8) & 0xFF00);
  163. ret += (tmp_l & 0x00FF);
  164. ret /= 100;
  165. val = PE43711_DataToHexConvert(ret);
  166. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  167. }
  168. if(Curr.ATT_ALC3_H != Prev.ATT_ALC3_H
  169. ||Curr.ATT_ALC3_L != Prev.ATT_ALC3_L){
  170. tmp_h = Curr.ATT_ALC3_H;
  171. tmp_l = Curr.ATT_ALC3_L;
  172. ret += ((tmp_h << 8) & 0xFF00);
  173. ret += (tmp_l & 0x00FF);
  174. ret /= 100;
  175. val = PE43711_DataToHexConvert(ret);
  176. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  177. }
  178. if(Curr.ATT_ALC4_H != Prev.ATT_ALC4_H
  179. ||Curr.ATT_ALC4_L != Prev.ATT_ALC4_L){
  180. tmp_h = Curr.ATT_ALC4_H;
  181. tmp_l = Curr.ATT_ALC4_L;
  182. ret += ((tmp_h << 8) & 0xFF00);
  183. ret += (tmp_l & 0x00FF);
  184. ret /= 100;
  185. val = PE43711_DataToHexConvert(ret);
  186. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  187. }
  188. if(Curr.ATT_AGC1_H != Prev.ATT_AGC1_H
  189. ||Curr.ATT_AGC1_L != Prev.ATT_AGC1_L){
  190. tmp_h = Curr.ATT_AGC1_H;
  191. tmp_l = Curr.ATT_AGC1_L;
  192. ret += ((tmp_h << 8) & 0xFF00);
  193. ret += (tmp_l & 0x00FF);
  194. ret /= 100;
  195. val = PE43711_DataToHexConvert(ret);
  196. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  197. }
  198. if(Curr.ATT_AGC2_H != Prev.ATT_AGC2_H
  199. ||Curr.ATT_AGC2_L != Prev.ATT_AGC2_L){
  200. tmp_h = Curr.ATT_AGC2_H;
  201. tmp_l = Curr.ATT_AGC2_L;
  202. ret += ((tmp_h << 8) & 0xFF00);
  203. ret += (tmp_l & 0x00FF);
  204. ret /= 100;
  205. val = PE43711_DataToHexConvert(ret);
  206. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  207. }
  208. if(Curr.ATT_AGC3_H != Prev.ATT_AGC3_H
  209. ||Curr.ATT_AGC3_L != Prev.ATT_AGC3_L){
  210. tmp_h = Curr.ATT_AGC3_H;
  211. tmp_l = Curr.ATT_AGC3_L;
  212. ret += ((tmp_h << 8) & 0xFF00);
  213. ret += (tmp_l & 0x00FF);
  214. ret /= 100;
  215. val = PE43711_DataToHexConvert(ret);
  216. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  217. }
  218. if(Curr.ATT_AGC4_H != Prev.ATT_AGC4_H
  219. ||Curr.ATT_AGC4_L != Prev.ATT_AGC4_L){
  220. tmp_h = Curr.ATT_AGC4_H;
  221. tmp_l = Curr.ATT_AGC4_L;
  222. ret += ((tmp_h << 8) & 0xFF00);
  223. ret += (tmp_l & 0x00FF);
  224. ret /= 100;
  225. val = PE43711_DataToHexConvert(ret);
  226. // PE43711_atten_ctrl(ALL_ATT.ATT_DL1,val);
  227. }
  228. #endif // PYJ.2020.04.21_END --
  229. }
  230. void Bluecell_DataCopy(){
  231. }
  232. bool Bluecell_Operate(uint8_t* data){
  233. uint8_t datatype = data[BLUECELL_TYPE];
  234. uint16_t tmp_h = 0,tmp_l = 0;
  235. double ret = 0 ,tmp = 0.1;
  236. uint8_t val = 0;
  237. uint8_t i = 0;
  238. switch(datatype){
  239. case ATTSET :
  240. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  241. bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
  242. bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + i++];
  243. bluecell_Currdatastatus.ATT_DL2_H = data[BLUECELL_DATA + i++];
  244. bluecell_Currdatastatus.ATT_DL2_L = data[BLUECELL_DATA + i++];
  245. bluecell_Currdatastatus.ATT_DL3_H = data[BLUECELL_DATA + i++];
  246. bluecell_Currdatastatus.ATT_DL3_L = data[BLUECELL_DATA + i++];
  247. bluecell_Currdatastatus.ATT_DL4_H = data[BLUECELL_DATA + i++];
  248. bluecell_Currdatastatus.ATT_DL4_L = data[BLUECELL_DATA + i++];
  249. bluecell_Currdatastatus.ATT_UL1_H = data[BLUECELL_DATA + i++];
  250. bluecell_Currdatastatus.ATT_UL1_L = data[BLUECELL_DATA + i++];
  251. bluecell_Currdatastatus.ATT_UL2_H = data[BLUECELL_DATA + i++];
  252. bluecell_Currdatastatus.ATT_UL2_L = data[BLUECELL_DATA + i++];
  253. bluecell_Currdatastatus.ATT_UL3_H = data[BLUECELL_DATA + i++];
  254. bluecell_Currdatastatus.ATT_UL3_L = data[BLUECELL_DATA + i++];
  255. bluecell_Currdatastatus.ATT_UL4_H = data[BLUECELL_DATA + i++];
  256. bluecell_Currdatastatus.ATT_UL4_L = data[BLUECELL_DATA + i++];
  257. // memcpy(&bluecell_Currdatastatus.ATT_DL1_H,&data[BLUECELL_DATA],32);
  258. // bluecell_Currdatastatus.ATT_DL1_H = data[BLUECELL_DATA + i++];
  259. // bluecell_Currdatastatus.ATT_DL1_L = data[BLUECELL_DATA + 1];
  260. /*
  261. Atten Ctrl Function
  262. */
  263. CompareAttenData(bluecell_Currdatastatus,bluecell_Prevdatastatus);
  264. // printf("ret : %f ,tmp %f \r\n",ret,tmp );
  265. break;
  266. case ATT_DL1_PATH :
  267. if(data[BLUECELL_DATA]==0){
  268. HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_SET);//CLOCK
  269. printf("ATT_DL1_PATH OFF\r\n");
  270. }
  271. else{
  272. HAL_GPIO_WritePin(PATH_EN_DL1_GPIO_Port,PATH_EN_DL1_Pin,GPIO_PIN_RESET);//CLOCK
  273. printf("ATT_DL1_PATH ON\r\n");
  274. }
  275. break;
  276. break;
  277. case ATT_UL1_PATH :
  278. if(data[BLUECELL_DATA]==0){
  279. HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_SET);//CLOCK
  280. }
  281. else{
  282. HAL_GPIO_WritePin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin,GPIO_PIN_RESET);//CLOCK
  283. }
  284. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  285. break;
  286. case ATT_SelfTest1 :
  287. if(data[BLUECELL_DATA]==0){
  288. HAL_GPIO_WritePin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin,GPIO_PIN_RESET);//CLOCK
  289. HAL_GPIO_WritePin(PATH_SW1_GPIO_Port,PATH_SW1_Pin,GPIO_PIN_SET);//CLOCK
  290. }
  291. else{
  292. HAL_GPIO_WritePin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin,GPIO_PIN_SET);//CLOCK
  293. HAL_GPIO_WritePin(PATH_SW1_GPIO_Port,PATH_SW1_Pin,GPIO_PIN_RESET);//CLOCK
  294. }
  295. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  296. break;
  297. case ATT_DL2_PATH :
  298. if(data[BLUECELL_DATA]==0){
  299. HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_SET);//CLOCK
  300. }
  301. else{
  302. HAL_GPIO_WritePin(PATH_EN_DL2_GPIO_Port,PATH_EN_DL2_Pin,GPIO_PIN_RESET);//CLOCK
  303. }
  304. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  305. break;
  306. break;
  307. case ATT_UL2_PATH :
  308. if(data[BLUECELL_DATA]==0){
  309. HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_SET);//CLOCK
  310. }
  311. else{
  312. HAL_GPIO_WritePin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin,GPIO_PIN_RESET);//CLOCK
  313. }
  314. break;
  315. case ATT_SelfTest2 :
  316. if(data[BLUECELL_DATA]==0){
  317. HAL_GPIO_WritePin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin,GPIO_PIN_RESET);//CLOCK
  318. HAL_GPIO_WritePin(PATH_SW2_GPIO_Port,PATH_SW2_Pin,GPIO_PIN_SET);//CLOCK
  319. }else{
  320. HAL_GPIO_WritePin(PATH_SW2_GPIO_Port,PATH_SW2_Pin,GPIO_PIN_RESET);//CLOCK
  321. HAL_GPIO_WritePin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin,GPIO_PIN_SET);//CLOCK
  322. }
  323. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  324. break;
  325. case ATT_DL3_PATH :
  326. if(data[BLUECELL_DATA]==0){
  327. HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_SET);//CLOCK
  328. }
  329. else{
  330. HAL_GPIO_WritePin(PATH_EN_DL3_GPIO_Port,PATH_EN_DL3_Pin,GPIO_PIN_RESET);//CLOCK
  331. }
  332. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  333. break;
  334. case ATT_UL3_PATH :
  335. if(data[BLUECELL_DATA]==0){
  336. HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_SET);//CLOCK
  337. }
  338. else{
  339. HAL_GPIO_WritePin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin,GPIO_PIN_RESET);//CLOCK
  340. }
  341. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  342. break;
  343. case ATT_SelfTest3 :
  344. if(data[BLUECELL_DATA]==0){
  345. HAL_GPIO_WritePin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin,GPIO_PIN_RESET);//CLOCK
  346. HAL_GPIO_WritePin(PATH_SW3_GPIO_Port,PATH_SW3_Pin,GPIO_PIN_SET);//CLOCK
  347. }
  348. else{
  349. HAL_GPIO_WritePin(PATH_SW3_GPIO_Port,PATH_SW3_Pin,GPIO_PIN_RESET);//CLOCK
  350. HAL_GPIO_WritePin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin,GPIO_PIN_SET);//CLOCK
  351. }
  352. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  353. break;
  354. case ATT_DL4_PATH :
  355. if(data[BLUECELL_DATA]==0){
  356. HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_SET);//CLOCK
  357. }else{
  358. HAL_GPIO_WritePin(PATH_EN_DL4_GPIO_Port,PATH_EN_DL4_Pin,GPIO_PIN_RESET);//CLOCK
  359. }
  360. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  361. break;
  362. case ATT_UL4_PATH:
  363. if(data[BLUECELL_DATA]==0){
  364. HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_SET);//CLOCK
  365. }
  366. else{
  367. HAL_GPIO_WritePin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin,GPIO_PIN_RESET);//CLOCK
  368. }
  369. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  370. break;
  371. case ATT_SelfTest4 :
  372. if(data[BLUECELL_DATA]==0){
  373. HAL_GPIO_WritePin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin,GPIO_PIN_RESET);//CLOCK
  374. HAL_GPIO_WritePin(PATH_SW4_GPIO_Port,PATH_SW4_Pin,GPIO_PIN_SET);//CLOCK
  375. }else{
  376. HAL_GPIO_WritePin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin,GPIO_PIN_SET);//CLOCK
  377. HAL_GPIO_WritePin(PATH_SW4_GPIO_Port,PATH_SW4_Pin,GPIO_PIN_RESET);//CLOCK
  378. }
  379. printf("Function : %s Line %d \r\n",__func__,__LINE__);
  380. break;
  381. case ALC1_EN :
  382. if(data[BLUECELL_DATA]==0){
  383. bluecell_Currdatastatus.ATT_ALC1_ONOFF = false;
  384. }
  385. else{
  386. bluecell_Currdatastatus.ATT_ALC1_ONOFF = true;
  387. }
  388. break;
  389. case ALC2_EN :
  390. if(data[BLUECELL_DATA]==0){
  391. bluecell_Currdatastatus.ATT_ALC2_ONOFF = false;
  392. }
  393. else{
  394. bluecell_Currdatastatus.ATT_ALC2_ONOFF = true;
  395. }
  396. break;
  397. case ALC3_EN :
  398. if(data[BLUECELL_DATA]==0){
  399. bluecell_Currdatastatus.ATT_ALC3_ONOFF = false;
  400. }
  401. else{
  402. bluecell_Currdatastatus.ATT_ALC3_ONOFF = true;
  403. }
  404. break;
  405. case ALC4_EN :
  406. if(data[BLUECELL_DATA]==0){
  407. bluecell_Currdatastatus.ATT_ALC4_ONOFF = false;
  408. }
  409. else{
  410. bluecell_Currdatastatus.ATT_ALC4_ONOFF = true;
  411. }
  412. break;
  413. case AGC1_EN :
  414. if(data[BLUECELL_DATA]==0){
  415. bluecell_Currdatastatus.ATT_AGC1_ONOFF = false;
  416. }
  417. else{
  418. bluecell_Currdatastatus.ATT_AGC1_ONOFF = true;
  419. }
  420. break;
  421. case AGC2_EN :
  422. if(data[BLUECELL_DATA]==0){
  423. bluecell_Currdatastatus.ATT_AGC2_ONOFF = false;
  424. }
  425. else{
  426. bluecell_Currdatastatus.ATT_AGC2_ONOFF = true;
  427. }
  428. break;
  429. case AGC3_EN :
  430. if(data[BLUECELL_DATA]==0){
  431. bluecell_Currdatastatus.ATT_AGC3_ONOFF = false;
  432. }
  433. else{
  434. bluecell_Currdatastatus.ATT_AGC3_ONOFF = true;
  435. }
  436. break;
  437. case AGC4_EN :
  438. if(data[BLUECELL_DATA]==0){
  439. bluecell_Currdatastatus.ATT_AGC4_ONOFF = false;
  440. }
  441. else{
  442. bluecell_Currdatastatus.ATT_AGC4_ONOFF = true;
  443. }
  444. break;
  445. case Bluecell_StatusReq:
  446. DataStatusSet();
  447. Uart1_Data_Send(&bluecell_Currdatastatus, sizeof(bluecell_Currdatastatus) + 1 );
  448. break;
  449. }
  450. return true;
  451. }
  452. void DataStatusSet(void){
  453. bluecell_Currdatastatus.bluecell_header = 0xbe;
  454. bluecell_Currdatastatus.bluecell_type = Bluecell_StatusReq;
  455. bluecell_Currdatastatus.bluecell_length = sizeof(bluecell_Currdatastatus) - 2;
  456. bluecell_Currdatastatus.bluecell_crcindex = 56;
  457. bluecell_Currdatastatus.Selftest0 = HAL_GPIO_ReadPin(_PATH_SW1_GPIO_Port,_PATH_SW1_Pin);
  458. bluecell_Currdatastatus.Selftest1 = HAL_GPIO_ReadPin(_PATH_SW2_GPIO_Port,_PATH_SW2_Pin);
  459. bluecell_Currdatastatus.Selftest2 = HAL_GPIO_ReadPin(_PATH_SW3_GPIO_Port,_PATH_SW3_Pin);
  460. bluecell_Currdatastatus.Selftest3 = HAL_GPIO_ReadPin(_PATH_SW4_GPIO_Port,_PATH_SW4_Pin);
  461. bluecell_Currdatastatus.ATT_DL1_PATH = HAL_GPIO_ReadPin(PATH_EN_DL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
  462. bluecell_Currdatastatus.ATT_DL2_PATH = HAL_GPIO_ReadPin(PATH_EN_DL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
  463. bluecell_Currdatastatus.ATT_DL3_PATH = HAL_GPIO_ReadPin(PATH_EN_DL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
  464. bluecell_Currdatastatus.ATT_DL4_PATH = HAL_GPIO_ReadPin(PATH_EN_DL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
  465. bluecell_Currdatastatus.ATT_UL1_PATH = HAL_GPIO_ReadPin(PATH_EN_UL1_GPIO_Port,PATH_EN_UL1_Pin);//CLOCK;
  466. bluecell_Currdatastatus.ATT_UL2_PATH = HAL_GPIO_ReadPin(PATH_EN_UL2_GPIO_Port,PATH_EN_UL2_Pin);//CLOCK;
  467. bluecell_Currdatastatus.ATT_UL3_PATH = HAL_GPIO_ReadPin(PATH_EN_UL3_GPIO_Port,PATH_EN_UL3_Pin);//CLOCK;
  468. bluecell_Currdatastatus.ATT_UL4_PATH = HAL_GPIO_ReadPin(PATH_EN_UL4_GPIO_Port,PATH_EN_UL4_Pin);//CLOCK;
  469. bluecell_Currdatastatus.bluecell_crc = STH30_CreateCrc(&bluecell_Currdatastatus.bluecell_type, bluecell_Currdatastatus.bluecell_length);
  470. /*bluecell_Currdatastatus.ATT_AGC1_ONOFF;
  471. bluecell_Currdatastatus.ATT_ALC1_ONOFF;
  472. bluecell_Currdatastatus.ATT_AGC2_ONOFF;
  473. bluecell_Currdatastatus.ATT_ALC2_ONOFF;
  474. bluecell_Currdatastatus.ATT_AGC3_ONOFF;
  475. bluecell_Currdatastatus.ATT_ALC3_ONOFF;
  476. bluecell_Currdatastatus.ATT_AGC4_ONOFF;
  477. bluecell_Currdatastatus.ATT_ALC4_ONOFF;
  478. bluecell_Currdatastatus.ATT_AGC1_H;
  479. bluecell_Currdatastatus.ATT_AGC1_L;
  480. bluecell_Currdatastatus.ATT_ALC1_H;
  481. bluecell_Currdatastatus.ATT_ALC1_L;
  482. bluecell_Currdatastatus.ATT_AGC2_H;
  483. bluecell_Currdatastatus.ATT_AGC2_L;
  484. bluecell_Currdatastatus.ATT_ALC2_H;
  485. bluecell_Currdatastatus.ATT_ALC2_L;
  486. bluecell_Currdatastatus.ATT_AGC3_H;
  487. bluecell_Currdatastatus.ATT_AGC3_L;
  488. bluecell_Currdatastatus.ATT_ALC3_H;
  489. bluecell_Currdatastatus.ATT_ALC3_L;
  490. bluecell_Currdatastatus.ATT_AGC4_H;
  491. bluecell_Currdatastatus.ATT_AGC4_L;
  492. bluecell_Currdatastatus.ATT_ALC4_H;
  493. bluecell_Currdatastatus.ATT_ALC4_L; */
  494. }
  495. bool MBIC_Operate(uint8_t* data){
  496. uint16_t datatype = 0;
  497. switch(datatype){
  498. case Alarm_Bit_List:
  499. Uart1_Data_Send(&Alarm_Status[0],MAX_ALARM_Len);
  500. break;
  501. case Alarm_Mask:
  502. break;
  503. case Alarm_Test_Mode:
  504. break;
  505. case Alarm_Test_Dummy:
  506. break;
  507. case CPU_Version:
  508. break;
  509. case ModuleINFORMATION_null1:
  510. break;
  511. case CPU_Current_Bank:
  512. break;
  513. case CPU_Bank_Select_Reboot_by:
  514. break;
  515. case CPU_Bank1_Image_Version:
  516. break;
  517. case CPU_Bank1_Image_BuildTime:
  518. break;
  519. case CPU_Bank1_Image_Name:
  520. break;
  521. case CPU_Bank2_Image_Version:
  522. break;
  523. case CPU_Bank2_Image_BuildTime:
  524. break;
  525. case CPU_Bank2_Image_Name:
  526. break;
  527. case SW_Reset:
  528. break;
  529. case Factory_Set_Initialization:
  530. break;
  531. case Temperature:
  532. break;
  533. case Temperature_Offset:
  534. break;
  535. case Temp_High_Threshold:
  536. break;
  537. case Temp_High_Threshold_Default:
  538. break;
  539. case Temp_High_Alarm:
  540. break;
  541. case LED_TEST:
  542. break;
  543. case Node:
  544. break;
  545. case Type:
  546. break;
  547. case PCB_Version:
  548. break;
  549. case Serial_Number:
  550. break;
  551. case Manufacture:
  552. break;
  553. case Manufacture_Date:
  554. break;
  555. case ENVIRONMENT_INVENTORY_null1:
  556. printf("Function : %s .... Line : %d\r\n",__func__,__LINE__);
  557. break;
  558. case Freq_ID:
  559. break;
  560. case Carrier_ID:
  561. break;
  562. case Carrier_ON_OFF:
  563. break;
  564. }
  565. return true;
  566. }
  567. void ADC_Check(void){
  568. if(AdcTimerCnt > 10){
  569. bluecell_Currdatastatus.DET_DL1_IN_H
  570. = (uint16_t)((ADC1value[Bluecell_DET_DL1_ADC_INDEX_H] & 0xFF00) >> 8);
  571. bluecell_Currdatastatus.DET_DL1_IN_L
  572. = (uint16_t)((ADC1value[Bluecell_DET_DL1_ADC_INDEX_L] & 0xFF00) >> 8);
  573. bluecell_Currdatastatus.DET_DL2_IN_H
  574. = (uint16_t)((ADC1value[Bluecell_DET_DL2_ADC_INDEX_H] & 0xFF00) >> 8);
  575. bluecell_Currdatastatus.DET_DL2_IN_L
  576. = (uint16_t)((ADC1value[Bluecell_DET_DL2_ADC_INDEX_L] & 0xFF00) >> 8);
  577. bluecell_Currdatastatus.DET_DL3_IN_H
  578. = (uint16_t)((ADC1value[Bluecell_DET_DL3_ADC_INDEX_H] & 0xFF00) >> 8);
  579. bluecell_Currdatastatus.DET_DL3_IN_L
  580. = (uint16_t)((ADC1value[Bluecell_DET_DL3_ADC_INDEX_L] & 0xFF00) >> 8);
  581. bluecell_Currdatastatus.DET_DL4_IN_H
  582. = (uint16_t)((ADC1value[Bluecell_DET_DL4_ADC_INDEX_H] & 0xFF00) >> 8);
  583. bluecell_Currdatastatus.DET_DL4_IN_L
  584. = (uint16_t)((ADC1value[Bluecell_DET_DL4_ADC_INDEX_L] & 0xFF00) >> 8);
  585. bluecell_Currdatastatus.DET_UL1_IN_H
  586. = (uint16_t)((ADC1value[Bluecell_DET_UL1_ADC_INDEX_H] & 0xFF00) >> 8);
  587. bluecell_Currdatastatus.DET_UL1_IN_L
  588. = (uint16_t)((ADC1value[Bluecell_DET_UL1_ADC_INDEX_L] & 0xFF00) >> 8);
  589. bluecell_Currdatastatus.DET_UL2_IN_H
  590. = (uint16_t)((ADC1value[Bluecell_DET_UL2_ADC_INDEX_H] & 0xFF00) >> 8);
  591. bluecell_Currdatastatus.DET_UL2_IN_L
  592. = (uint16_t)((ADC1value[Bluecell_DET_UL2_ADC_INDEX_L] & 0xFF00) >> 8);
  593. bluecell_Currdatastatus.DET_UL3_IN_H
  594. = (uint16_t)((ADC1value[Bluecell_DET_UL3_ADC_INDEX_H] & 0xFF00) >> 8);
  595. bluecell_Currdatastatus.DET_UL3_IN_L
  596. = (uint16_t)((ADC1value[Bluecell_DET_UL3_ADC_INDEX_L] & 0xFF00) >> 8);
  597. bluecell_Currdatastatus.DET_UL4_IN_H
  598. = (uint16_t)((ADC1value[Bluecell_DET_UL4_ADC_INDEX_H] & 0xFF00) >> 8);
  599. bluecell_Currdatastatus.DET_UL4_IN_L
  600. = (uint16_t)((ADC1value[Bluecell_DET_UL4_ADC_INDEX_L] & 0xFF00) >> 8);
  601. bluecell_Currdatastatus.DET_TEMP_H
  602. =(uint16_t)((ADC1value[Bluecell_RFU_TEMP_ADC_INDEX_H] & 0xFF00) >> 8);
  603. bluecell_Currdatastatus.DET_TEMP_L
  604. =(uint16_t)((ADC1value[Bluecell_RFU_TEMP_ADC_INDEX_L] & 0xFF00) >> 8);
  605. #if 0 // PYJ.2019.08.09_BEGIN --
  606. printf("Prev_data[%d] : %x",i,Prev_data[INDEX_DET_1_8G_DL_IN_H + i]);
  607. printf("%x\r\n",i,Prev_data[INDEX_DET_1_8G_DL_IN_L + i]);
  608. #endif // PYJ.2019.08.09_END --
  609. AdcTimerCnt = 0;
  610. }
  611. }