浏览代码

[Improve][Modularization][Module_Payment]

2021.04.24 / Folus Wen

Actions:
1. Add version info.
2. Debug info output target folder name fix.
3. Before copy UID info reset C9_Result.u_id array.
4. TK data info output length fix.

Files:
1. As follow commit history

Image version: D0.01
Image checksum: XXXXXXXX

Hardware PWB P/N : XXXXXXX
Hardware Version : XXXXXXX
FolusWen 3 年之前
父节点
当前提交
8c0b310244
共有 2 个文件被更改,包括 12 次插入9 次删除
  1. 12 9
      EVSE/Modularization/Module_Payment.c
  2. 二进制
      EVSE/rootfs/root/Module_Payment

+ 12 - 9
EVSE/Modularization/Module_Payment.c

@@ -6,7 +6,7 @@
  */
 
 #include	"Module_Payment.h"
-
+unsigned char version[]					= {'D', '0', '.', '0', '1'};
 unsigned char CMD_C8[30] 				= {0xc8,0x01,											// Activate the reader
 										   0x9f,0x02,0x06,0x00,0x00,0x00,0x01,0x00,0x00,		// Amount, Authorized, sample: 100.00 dollar
 										   0x5f,0x2a,0x02,0x08,0x40,							// Transaction Currency Code follow ISO-4217, sample: 0840(USD)
@@ -52,7 +52,7 @@ int StoreLogMsg(const char *fmt, ...)
 	tm=localtime(&CurrentTime);
 	gettimeofday(&tv, NULL); // get microseconds, 10^-6
 
-	sprintf(Buf,"echo -n \"[%04d.%02d.%02d %02d:%02d:%02d.%06ld]%s\" >>  /Storage/System/[%04d.%02d]PaymentLog",
+	sprintf(Buf,"echo -n \"[%04d.%02d.%02d %02d:%02d:%02d.%06ld]%s\" >>  /Storage/SystemLog/[%04d.%02d]PaymentLog",
 			tm->tm_year+1900,tm->tm_mon+1,tm->tm_mday,tm->tm_hour,tm->tm_min,tm->tm_sec,tv.tv_usec,
 			buffer,
 			tm->tm_year+1900,tm->tm_mon+1);
@@ -350,6 +350,7 @@ int main(void)
 	int rx_len = 0;
 	int data_len = 0;
 
+	DEBUG_INFO("Task version: %s\n", version);
 	//===============================================
 	// Initialization
 	//===============================================
@@ -520,24 +521,26 @@ int main(void)
 							case Master_MagStripe:
 							case AMEX_EMV:
 							case AMEX_MSD:
-								for (int i=5; i<(5 + 16); i++)
-								{
-									C9_Result.u_id[i] = C9_Result.result_data[i];
-								}
+								memset(C9_Result.u_id, 0x00, ARRAY_SIZE(C9_Result.u_id));
+								memcpy(C9_Result.u_id, &C9_Result.result_data[4], 16);
+								DEBUG_INFO("Credit card SN:\n");
+								show_data(C9_Result.u_id, 16);
 
 								DEBUG_INFO("Payment card\n");
 								for(uint8_t idx=0;idx<getSentinelQuantity(C9_Result.result_data, rx_len);idx++)
 								{
+									memset(C9_Result.tkData[idx], 0x00, ARRAY_SIZE(C9_Result.tkData[idx]));
 									memcpy(C9_Result.tkData[idx],
 										   &C9_Result.result_data[((idx==0)?3:getSentinelPosition(C9_Result.result_data, rx_len, idx-1)+2)],
 										   (idx==0?getSentinelPosition(C9_Result.result_data, rx_len, idx)+1-3+1:getSentinelPosition(C9_Result.result_data, rx_len, idx)+1-getSentinelPosition(C9_Result.result_data, rx_len, idx-1)+2+1));
 
 									DEBUG_INFO("TK[%d]: \n", idx);
-									show_data(C9_Result.tkData[idx], ARRAY_SIZE(C9_Result.tkData[idx]));
+									show_data(C9_Result.tkData[idx], getSentinelPosition(C9_Result.tkData[idx], ARRAY_SIZE(C9_Result.tkData[idx]), 0)+2);
 								}
 								break;
 							case Mifare:
 								data_len = C9_Result.result_data[6];
+								memset(C9_Result.u_id, 0x00, ARRAY_SIZE(C9_Result.u_id));
 								memcpy(C9_Result.u_id, &C9_Result.result_data[7], data_len);
 
 								switch(C9_Result.result_data[3])
@@ -573,6 +576,7 @@ int main(void)
 								break;
 							case ISO_15693:
 								data_len =(C9_Result.result_data[5]<<8) | C9_Result.result_data[6];
+								memset(C9_Result.u_id, 0x00, ARRAY_SIZE(C9_Result.u_id));
 								memcpy(C9_Result.u_id, &C9_Result.result_data[4+data_len-8], 8);
 
 								DEBUG_INFO("ISO_15693, UID: %02X-%02X-%02X-%02X-%02X-%02X-%02X-%02X\n", C9_Result.u_id[0], C9_Result.u_id[1], C9_Result.u_id[2], C9_Result.u_id[3], C9_Result.u_id[4], C9_Result.u_id[5], C9_Result.u_id[6], C9_Result.u_id[7]);
@@ -586,11 +590,10 @@ int main(void)
 										   (idx==0?getSentinelPosition(C9_Result.result_data, rx_len, idx)+1-3+1:getSentinelPosition(C9_Result.result_data, rx_len, idx)+1-getSentinelPosition(C9_Result.result_data, rx_len, idx-1)+2+1));
 
 									DEBUG_INFO("TK[%d]: \n", idx);
-									show_data(C9_Result.tkData[idx], ARRAY_SIZE(C9_Result.tkData[idx]));
+									show_data(C9_Result.tkData[idx], getSentinelPosition(C9_Result.tkData[idx], ARRAY_SIZE(C9_Result.tkData[idx]), 0)+2);
 								}
 								break;
 							case No_Data:
-
 								DEBUG_INFO("--> No any data.\n");
 								break;
 							default:

二进制
EVSE/rootfs/root/Module_Payment