From 96e7a3a50b11d69da83e67ec78b5a7656bb903de Mon Sep 17 00:00:00 2001 From: "martin.holst@gmail.com" Date: Fri, 24 May 2013 21:39:08 +0000 Subject: [PATCH] Minor fixes, added some functionality to send data, but still some way to go --- client/cmdscript.c | 4 ++-- client/scripting.c | 21 +++++++++++++++++---- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/client/cmdscript.c b/client/cmdscript.c index f9bbe56e..bd4a3006 100644 --- a/client/cmdscript.c +++ b/client/cmdscript.c @@ -218,7 +218,7 @@ int CmdRun(const char *Cmd) char buf[256]; snprintf(buf, sizeof buf, "./scripts/%s", cmd_name); - printf("Executing file '%s'\n---------------------------\n" , cmd_name); + printf("-----Executing file '%s'\n" , cmd_name); // run the Lua script int error = luaL_loadfile(lua_state, buf); @@ -241,6 +241,6 @@ int CmdRun(const char *Cmd) //luaL_dofile(lua_state, buf); // close the Lua state lua_close(lua_state); - printf("-----------------Finished\n"); + printf("\n-----Finished\n"); } diff --git a/client/scripting.c b/client/scripting.c index f9f4999d..6db27dc7 100644 --- a/client/scripting.c +++ b/client/scripting.c @@ -40,10 +40,23 @@ static int l_SendCommand(lua_State *L){ ==> A 544 byte buffer will do. **/ //Pop cmd - UsbCommand *c = (UsbCommand *)lua_touserdata(L, 1); - luaL_argcheck(L, c != NULL, 1, "'UsbCommand' expected"); - SendCommand(c); + size_t size; + const char *data = luaL_checklstring(L, 1, &size); + if(size != sizeof(UsbCommand)) + { + printf("Got data size %d, expected %d" , size,sizeof(UsbCommand)); + lua_pushstring(L,"Wrong data size"); + return 1; + } + +// UsbCommand c = (*data); + SendCommand(data); return 0; + //UsbCommand *c = (UsbCommand *)lua_touserdata(L, 1); + //luaL_argcheck(L, c != NULL, 1, "'UsbCommand' expected"); + + //SendCommand(c); + //return 0; } /** * @brief The following params expected: @@ -59,7 +72,7 @@ static int l_WaitForResponseTimeout(lua_State *L){ printf("in l_WaitForResponseTimeout, got cmd 0x%0x\n",(int) cmd); //UsbCommand response; - //We allocate the usbcommand as userdata on the Lua-stack + //We allocate the usbcommand as userdata on the Lua-stack size_t nbytes = sizeof(UsbCommand); UsbCommand *response = (UsbCommand *)lua_newuserdata(L, nbytes); -- 2.39.2