Просмотр исходного кода

add:硬件lcd接口增加软件cs控制,允许使用其他GPIO作为cs控制
add:zbuff的used()加入快速设置有效数据量的方法,可以不用seek

alienwalker 9 месяцев назад
Родитель
Сommit
60198f38fb
2 измененных файлов с 23 добавлено и 2 удалено
  1. 7 0
      components/lcd/luat_lib_lcd.c
  2. 16 2
      luat/modules/luat_lib_zbuff.c

+ 7 - 0
components/lcd/luat_lib_lcd.c

@@ -209,6 +209,8 @@ static int l_lcd_init(lua_State* L) {
             lua_pushstring(L, "rb_swap");
             if (LUA_TBOOLEAN == lua_gettable(L, 2)) {
                 conf->opts->rb_swap = lua_toboolean(L, -1);
+            } else {
+            	conf->opts->rb_swap = 0;
             }
             lua_pop(L, 1);
 
@@ -346,6 +348,11 @@ static int l_lcd_init(lua_State* L) {
             }
             lua_pop(L, 1);
 
+            lua_pushstring(L, "pin_cs");
+            if (LUA_TNUMBER == lua_gettable(L, 2)) {
+                conf->lcd_cs_pin = luaL_checkinteger(L, -1);
+            }
+            lua_pop(L, 1);
         }
         if (s_index == 0){
             unsigned int cmd = 0;

+ 16 - 2
luat/modules/luat_lib_zbuff.c

@@ -1129,15 +1129,29 @@ static int l_zbuff_copy(lua_State *L)
 }
 
 /**
-获取zbuff里最后一个数据位置指针到首地址的偏移量,来表示zbuff内已有有效数据量大小,注意这个不同于分配的空间大小,由于seek()会改变最后一个数据位置指针,因此也会影响到used()返回值。
+设置/获取zbuff里最后一个数据位置指针到首地址的偏移量,来表示zbuff内已有有效数据量大小,注意这个不同于分配的空间大小,由于seek()会改变最后一个数据位置指针,因此也会影响到used()返回值。
 @api buff:used()
+@int 最后一个数据位置指针到首地址的偏移量,不能是负数,如果不填则不更改当前值,如果该值超过了buff总量,则自动改为buff总量
 @return int 有效数据量大小
 @usage
-buff:used()
+buff:used()	--直接返回当前的有效数据量大小
+buff:used(123) --设置当前的有效数据量为123字节,如果buff本身不到123字节,比如120字节,则会改成120,返回值是120
 */
 static int l_zbuff_used(lua_State *L)
 {
 	luat_zbuff_t *buff = tozbuff(L);
+	if (lua_isinteger(L, 2))
+	{
+		size_t temp_cursor = luaL_optinteger(L, 2, buff->used);
+		if (temp_cursor > buff->len)
+		{
+			buff->used = buff->len;
+		}
+		else
+		{
+			buff->used = temp_cursor;
+		}
+	}
     lua_pushinteger(L, buff->used);
     return 1;
 }