txCan with just two arguments #5800

This commit is contained in:
rusefillc 2023-12-28 12:36:46 -05:00
parent 4f4f4d1c00
commit 5b801a682a
1 changed files with 17 additions and 6 deletions

View File

@ -168,10 +168,21 @@ static int validateCanChannelAndConvertFromHumanIntoZeroIndex(lua_State* l) {
} }
static int lua_txCan(lua_State* l) { static int lua_txCan(lua_State* l) {
auto bus = validateCanChannelAndConvertFromHumanIntoZeroIndex(l); int bus;
int id;
auto id = luaL_checkinteger(l, 2); int ext;
auto ext = luaL_checkinteger(l, 3); int dataIndex;
if (lua_gettop(l) == 2) {
bus = 0;
id = luaL_checkinteger(l, 1);
ext = 0;
dataIndex = 2;
} else {
bus = validateCanChannelAndConvertFromHumanIntoZeroIndex(l);
id = luaL_checkinteger(l, 2);
ext = luaL_checkinteger(l, 3);
dataIndex = 4;
}
// Check that ID is valid based on std vs. ext // Check that ID is valid based on std vs. ext
if (ext == 0) { if (ext == 0) {
@ -188,10 +199,10 @@ static int lua_txCan(lua_State* l) {
uint8_t dlc = 0; uint8_t dlc = 0;
// todo: reduce code duplication with getArray // todo: reduce code duplication with getArray
luaL_checktype(l, 4, LUA_TTABLE); luaL_checktype(l, dataIndex, LUA_TTABLE);
while (true) { while (true) {
lua_pushnumber(l, dlc + 1); lua_pushnumber(l, dlc + 1);
auto elementType = lua_gettable(l, 4); auto elementType = lua_gettable(l, dataIndex);
auto val = lua_tonumber(l, -1); auto val = lua_tonumber(l, -1);
lua_pop(l, 1); lua_pop(l, 1);