Procházet zdrojové kódy

1.生成日期更新为20221111;
2.修复RAM数据缓冲区不能更新为最新数据问题;

libo před 2 roky
rodič
revize
b573c892d4
2 změnil soubory, kde provedl 11 přidání a 10 odebrání
  1. 1 1
      Src/KeySlave485.c
  2. 10 9
      lib/lib_buffer.c

+ 1 - 1
Src/KeySlave485.c

@@ -38,7 +38,7 @@ uint8_t product_code[20] = "JL-SIMS-CJ-V2.1";				 //
 uint8_t product_ID[20] = "20210730001";						 //产品ID
 
 char Version_software[30] = "KZB09A0_20220210_Temp1";
-uint32_t Version_Soft[8] = {2,2,3,13,1,1,0,20221110};
+uint32_t Version_Soft[8] = {2,2,3,13,1,1,0,20221111};
 
 uint8_t flag_exitReset = 0;	 //终止复位命令
 uint8_t flag_Uart4_Busy = 0; //表明打印机占用了总线,暂停语音播报

+ 10 - 9
lib/lib_buffer.c

@@ -2,7 +2,7 @@
 #include "string.h"
 #include "stdlib.h"
 #include "lib_buffer.h"
-#define validLen (Object->push_size - Object->pop_size)    //缓冲区有效长度
+#define VALID_LEN (Object->push_size - Object->pop_size)    //缓冲区有效长度
 int TBuffer_discard(TBufffer Object, int size)   ;
 
 TBufffer TBuffer_Init(TBuffferOBJ *data, void *buffer, int buff_size)
@@ -46,7 +46,11 @@ void TBuffer_Fini(TBuffferOBJ *data)
 
 int TBuffer_Push(TBufffer Object, const void *data, int size)
 {
-		if( validLen < size)
+    int result = 0;
+    int _ValidLength = Object->push_size - Object->pop_size;
+    int _Size = Object->size - _ValidLength;    //实际可用 为0?	
+	
+		if( _Size <= size )
 		{
 			TBuffer_discard(Object,size);
 		}
@@ -56,9 +60,6 @@ int TBuffer_Push(TBufffer Object, const void *data, int size)
 			TBuffer_Reset(Object);
 		}
 		
-    int result = 0;
-    int _ValidLength = Object->push_size - Object->pop_size;
-    int _Size = Object->size - _ValidLength;    //实际可用 为0?
     if (data == NULL)
 		{
 			result = -1;
@@ -103,7 +104,7 @@ int TBuffer_Peek(TBufffer Object, void *data, int size)//返回实际尺寸
 		if (size > 0 && Object->pop_size != Object->push_size)
     {
         int _ValidLength = Object->push_size - Object->pop_size;
-        if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
+        if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
             size = _ValidLength;
         if (Object->pValid + size > Object->pTail)//需要分成两段copy
         {
@@ -128,7 +129,7 @@ int TBuffer_Pop(TBufffer Object, void *data, int size)
     else if (size > 0 && Object->pop_size != Object->push_size)
     {
         int _ValidLength = Object->push_size - Object->pop_size;
-        if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
+        if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
             size = _ValidLength;
 				
 				if((Object->pValidTail - size) >= Object->pHead)		
@@ -167,7 +168,7 @@ int TBuffer_Pop_head(TBufffer Object, void *data, int size)
     else if (size > 0 && Object->pop_size != Object->push_size)
     {
         int _ValidLength = Object->push_size - Object->pop_size;
-        if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
+        if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
             size = _ValidLength;
         if (Object->pValid + size > Object->pTail)//需要分成两段copy
         {
@@ -198,7 +199,7 @@ int TBuffer_discard(TBufffer Object, int size)
     if (size > 0 && Object->pop_size != Object->push_size)
     {
         int _ValidLength = Object->push_size - Object->pop_size;
-        if (size > _ValidLength)//可能会push validLen变大 导致size变大越界
+        if (size > _ValidLength)//可能会push VALID_LEN变大 导致size变大越界
             size = _ValidLength;
         if (Object->pValid + size > Object->pTail)//需要分成两段copy
         {