@@ -42,9 +42,6 @@ CDC_Struct cdc_card_io;
4242extern uint8_t key_A [6 ];
4343extern uint8_t key_B [6 ];
4444
45- extern AIME_Request _req ;
46- extern AIME_Response res ;
47-
4845uint8_t cardIO_SendDataReady_Flag = 0 ;
4946
5047xdata void CDC_Init ()
@@ -271,24 +268,26 @@ void CDC_CARD_IO_SendDataReady()
271268// 发送准备好的 Card IO 数据
272269void CDC_CARD_IO_SendData ()
273270{
271+ AIME_Response * res = (AIME_Response * )cdc_card_io .Res_PacketBuf ;
272+
274273 uint8_t checksum , i ;
275274
276275 cardIO_SendDataReady_Flag = 0 ;
277276
278- res . frame_len = 6 + res . payload_len ;
277+ res -> frame_len = 6 + res -> payload_len ;
279278 checksum = 0 ;
280- for (i = 0 ; i < res . frame_len ; i ++ ) {
281- checksum += res . buffer [i ];
279+ for (i = 0 ; i < res -> frame_len ; i ++ ) {
280+ checksum += res -> buffer [i ];
282281 }
283- res . buffer [res . frame_len ] = checksum ;
282+ res -> buffer [res -> frame_len ] = checksum ;
284283
285284 CDC_CARD_IO_PutChar (0xE0 );
286- for (i = 0 ; i <= res . frame_len ; i ++ ) {
287- if (res . buffer [i ] == 0xE0 || res . buffer [i ] == 0xD0 ) {
285+ for (i = 0 ; i <= res -> frame_len ; i ++ ) {
286+ if (res -> buffer [i ] == 0xE0 || res -> buffer [i ] == 0xD0 ) {
288287 CDC_CARD_IO_PutChar (0xD0 );
289- CDC_CARD_IO_PutChar (res . buffer [i ] - 1 );
288+ CDC_CARD_IO_PutChar (res -> buffer [i ] - 1 );
290289 } else {
291- CDC_CARD_IO_PutChar (res . buffer [i ]);
290+ CDC_CARD_IO_PutChar (res -> buffer [i ]);
292291 }
293292 }
294293}
@@ -300,112 +299,100 @@ void CDC_CARD_IO_Handler()
300299 static uint8_t mifare_key_B [6 ];
301300
302301 AIME_Request * req = (AIME_Request * )cdc_card_io .Req_PacketBuf ;
303- AIME_Response * resPackect = (AIME_Response * )cdc_card_io .Res_PacketBuf ;
304- memset (resPackect , 0x00 , 128 ); // Clear resPackect
305- memset (& res , 0x00 , 128 ); // Clear resPackect
302+ AIME_Response * res = (AIME_Response * )cdc_card_io .Res_PacketBuf ;
303+ memset (res , 0x00 , 128 ); // Clear resPackect
306304
307- res . addr = _req . addr ;
308- res . seq_no = _req . seq_no ;
309- res . cmd = _req . cmd ;
310- res . frame_len = 6 ;
311- res . status = 0 ;
312- res . payload_len = 0 ;
305+ res -> addr = req -> addr ;
306+ res -> seq_no = req -> seq_no ;
307+ res -> cmd = req -> cmd ;
308+ res -> frame_len = 6 ;
309+ res -> status = 0 ;
310+ res -> payload_len = 0 ;
313311
314312 switch (req -> cmd ) {
315313 /**
316314 * @brief 下列状态是阻塞式处理,这里仅对PN532的发送进行处理
317315 */
318316 // 初始化
319317 case CMD_TO_NORMAL_MODE :
320- res .frame_len = 6 ;
321- res .status = 0 ;
322- res .seq_no = 0 ;
323- res .payload_len = 0 ;
324- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
318+ res -> frame_len = 6 ;
319+ res -> status = 0 ;
320+ res -> seq_no = 0 ;
321+ res -> payload_len = 0 ;
325322 LED_RGB_SetPort (LED_RGB_PORT_UART , 0xFF , 0xFF , 0xFF );
326323 CDC_CARD_IO_SendDataReady ();
327324 break ;
328325 // 获取固件版本信息
329326 case CMD_GET_FW_VERSION :
330327#if CARD_READER_RATE == CARD_READER_RATE_HI
331- memcpy (res . version , CARD_READER_FW_VERSION_HIRATE , sizeof (CARD_READER_FW_VERSION_HIRATE ) - 1 );
332- res . payload_len = sizeof (CARD_READER_FW_VERSION_HIRATE ) - 1 ;
333- res . frame_len = 6 + res . payload_len ;
328+ memcpy (res -> version , CARD_READER_FW_VERSION_HIRATE , sizeof (CARD_READER_FW_VERSION_HIRATE ) - 1 );
329+ res -> payload_len = sizeof (CARD_READER_FW_VERSION_HIRATE ) - 1 ;
330+ res -> frame_len = 6 + res -> payload_len ;
334331#elif CARD_READER_RATE == CARD_READER_RATE_LOW
335- memcpy (res . version , CARD_READER_FW_VERSION_LOWRATE , sizeof (CARD_READER_FW_VERSION_LOWRATE ) - 1 );
336- res . payload_len = sizeof (CARD_READER_FW_VERSION_LOWRATE ) - 1 ;
337- res . frame_len = 6 + res . payload_len ;
332+ memcpy (res -> version , CARD_READER_FW_VERSION_LOWRATE , sizeof (CARD_READER_FW_VERSION_LOWRATE ) - 1 );
333+ res -> payload_len = sizeof (CARD_READER_FW_VERSION_LOWRATE ) - 1 ;
334+ res -> frame_len = 6 + res -> payload_len ;
338335#endif
339- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
340336 CDC_CARD_IO_SendDataReady ();
341337 break ;
342338 // 获取硬件版本信息
343339 case CMD_GET_HW_VERSION :
344340#if CARD_READER_RATE == CARD_READER_RATE_HI
345- memcpy (res . version , CARD_READER_VERSION_HIRATE , sizeof (CARD_READER_VERSION_HIRATE ) - 1 );
346- res . payload_len = sizeof (CARD_READER_VERSION_HIRATE ) - 1 ;
347- res . frame_len = 6 + res . payload_len ;
341+ memcpy (res -> version , CARD_READER_VERSION_HIRATE , sizeof (CARD_READER_VERSION_HIRATE ) - 1 );
342+ res -> payload_len = sizeof (CARD_READER_VERSION_HIRATE ) - 1 ;
343+ res -> frame_len = 6 + res -> payload_len ;
348344#elif CARD_READER_RATE == CARD_READER_RATE_LOW
349- memcpy (res . version , CARD_READER_VERSION_LOWRATE , sizeof (CARD_READER_VERSION_LOWRATE ) - 1 );
350- res . payload_len = sizeof (CARD_READER_VERSION_LOWRATE ) - 1 ;
351- res . frame_len = 6 + res . payload_len ;
345+ memcpy (res -> version , CARD_READER_VERSION_LOWRATE , sizeof (CARD_READER_VERSION_LOWRATE ) - 1 );
346+ res -> payload_len = sizeof (CARD_READER_VERSION_LOWRATE ) - 1 ;
347+ res -> frame_len = 6 + res -> payload_len ;
352348#endif
353- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
354349 CDC_CARD_IO_SendDataReady ();
355350 break ;
356351 // 获取设备信息
357352 case CMD_EXT_BOARD_INFO :
358353#if CARD_READER_RATE == CARD_READER_RATE_HI
359- memcpy (res . info_payload , CARD_READER_VERSION_HIRATE , sizeof (CARD_READER_VERSION_HIRATE ) - 1 );
360- res . payload_len = sizeof (CARD_READER_VERSION_HIRATE ) - 1 ;
361- res . frame_len = 6 + res . payload_len ;
354+ memcpy (res -> info_payload , CARD_READER_VERSION_HIRATE , sizeof (CARD_READER_VERSION_HIRATE ) - 1 );
355+ res -> payload_len = sizeof (CARD_READER_VERSION_HIRATE ) - 1 ;
356+ res -> frame_len = 6 + res -> payload_len ;
362357#elif CARD_READER_RATE == CARD_READER_RATE_LOW
363- memcpy (res . info_payload , CARD_READER_EXTRA_INFO_LOWRATE , sizeof (CARD_READER_EXTRA_INFO_LOWRATE ) - 1 );
364- res . payload_len = sizeof (CARD_READER_EXTRA_INFO_LOWRATE ) - 1 ;
365- res . frame_len = 6 + res . payload_len ;
358+ memcpy (res -> info_payload , CARD_READER_EXTRA_INFO_LOWRATE , sizeof (CARD_READER_EXTRA_INFO_LOWRATE ) - 1 );
359+ res -> payload_len = sizeof (CARD_READER_EXTRA_INFO_LOWRATE ) - 1 ;
360+ res -> frame_len = 6 + res -> payload_len ;
366361#endif
367- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
368362 CDC_CARD_IO_SendDataReady ();
369363 break ;
370364 // 设置Mifrare卡密钥B
371365 case CMD_MIFARE_KEY_SET_B :
372366 memcpy (mifare_key_B , req -> key , 6 );
373- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
374367 CDC_CARD_IO_SendDataReady ();
375368 break ;
376- // 设置Mifrare卡密钥A
369+ // 设置Mifare卡密钥A
377370 case CMD_MIFARE_KEY_SET_A :
378371 memcpy (mifare_key_A , req -> key , 6 );
379- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
380372 CDC_CARD_IO_SendDataReady ();
381373 break ;
382374 // 设置设备RGB灯
383375 case CMD_EXT_BOARD_SET_LED_RGB :
384376 LED_RGB_SetPort (LED_RGB_PORT_UART , req -> color_payload [0 ], req -> color_payload [1 ], req -> color_payload [2 ]);
385- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
386377 CDC_CARD_IO_SendDataReady ();
387378 break ;
388379 // 设置为默认模式(Not Sure)
389380 case CMD_EXT_TO_NORMAL_MODE :
390- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
391381 CDC_CARD_IO_SendDataReady ();
392382 break ;
393383 // 开始拉取卡片
394384 case CMD_START_POLLING :
395385 PN532_setRFField (0 , 1 );
396- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
397386 CDC_CARD_IO_SendDataReady ();
398387 break ;
399388 // 停止拉取卡片
400389 case CMD_STOP_POLLING :
401390 PN532_setRFField (0 , 0 );
402- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
403391 CDC_CARD_IO_SendDataReady ();
404392 break ;
405393 // 发送16进制数据
406394 case CMD_SEND_HEX_DATA :
407- res .status = 0x20 ;
408- memcpy (cardIO_ResponseStringBuf , res .buffer , 128 );
395+ res -> status = 0x20 ;
409396 CDC_CARD_IO_SendDataReady ();
410397 break ;
411398 /**
@@ -418,26 +405,26 @@ void CDC_CARD_IO_Handler()
418405 // 读取Mifare卡片
419406 case CMD_MIFARE_READ :
420407 // CDC_LED_IO_PutChar(0Xe1);
421- PN532_mifareclassic_ReadDataBlock (_req . block_no , res . block );
408+ PN532_mifareclassic_ReadDataBlock (req -> block_no , res -> block );
422409 break ;
423410 // 读取Felica卡片
424411 case CMD_FELICA_THROUGH :
425412 PN532_felica_through ();
426413 break ;
427414 // 验证Mifare卡片密钥B
428415 case CMD_MIFARE_AUTHORIZE_B :
429- PN532_mifareclassic_AuthenticateBlock (_req . uid , 4 , _req . block_no , 1 , mifare_key_B );
416+ PN532_mifareclassic_AuthenticateBlock (req -> uid , 4 , req -> block_no , 1 , mifare_key_B );
430417 break ;
431418 // 验证Mifare卡片密钥A
432419 case CMD_MIFARE_AUTHORIZE_A :
433- PN532_mifareclassic_AuthenticateBlock (_req . uid , 4 , _req . block_no , 0 , mifare_key_A );
420+ PN532_mifareclassic_AuthenticateBlock (req -> uid , 4 , req -> block_no , 0 , mifare_key_A );
434421 break ;
435422 /**
436423 * @brief 其他未定义命令,阻塞式
437424 */
438425 // 其他未明行为
439426 default :
440- memcpy (cardIO_ResponseStringBuf , res . buffer , 128 );
427+ memcpy (cardIO_ResponseStringBuf , res -> buffer , 128 );
441428 CDC_CARD_IO_SendDataReady ();
442429 break ;
443430 }
@@ -556,10 +543,8 @@ void CDC_CARD_IO_UART_Poll()
556543
557544 if (cdc_card_io .Req_PacketPos > 5 && cdc_card_io .Req_PacketPos - 1 == req -> frame_len ) {
558545 if (checksum == cur_byte ) {
559- memcpy (_req .buffer , req -> buffer , 64 );
560546 CDC_CARD_IO_Handler ();
561547 } else {
562- memcpy (_req .buffer , req -> buffer , 64 );
563548 CDC_CARD_IO_Handler ();
564549 // checksum error
565550 }
0 commit comments