Nuke treeset
This commit is contained in:
parent
45ef1c4271
commit
02e80b3827
5 changed files with 184 additions and 0 deletions
70
lua_advanced/esc.c
Normal file
70
lua_advanced/esc.c
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
#include <lauxlib.h>
|
||||
#include <lua.h>
|
||||
#include <lualib.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
struct EscConfig {
|
||||
int maxspeed;
|
||||
float odometer;
|
||||
bool started;
|
||||
};
|
||||
|
||||
static struct EscConfig esc_config = {
|
||||
.maxspeed = 100,
|
||||
.odometer = 12.5f,
|
||||
.started = false,
|
||||
};
|
||||
|
||||
/* Lua: get_esc_config() -> table */
|
||||
static int l_get_esc_config(lua_State *L) {
|
||||
lua_newtable(L);
|
||||
|
||||
lua_pushstring(L, "maxspeed");
|
||||
lua_pushinteger(L, esc_config.maxspeed);
|
||||
lua_settable(L, -3);
|
||||
|
||||
lua_pushstring(L, "odometer");
|
||||
lua_pushnumber(L, esc_config.odometer);
|
||||
lua_settable(L, -3);
|
||||
|
||||
lua_pushstring(L, "started");
|
||||
lua_pushboolean(L, esc_config.started);
|
||||
lua_settable(L, -3);
|
||||
|
||||
return 1; // return the table
|
||||
}
|
||||
|
||||
/* Lua: set_maxspeed(value) */
|
||||
static int l_set_maxspeed(lua_State *L) {
|
||||
int maxspeed = luaL_checkinteger(L, 1);
|
||||
esc_config.maxspeed = maxspeed;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Lua: set_started(value) */
|
||||
static int l_set_started(lua_State *L) {
|
||||
int started = lua_toboolean(L, 1);
|
||||
esc_config.started = started;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Lua: add_odometer(delta) */
|
||||
static int l_add_odometer(lua_State *L) {
|
||||
float delta = luaL_checknumber(L, 1);
|
||||
esc_config.odometer += delta;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct luaL_Reg esc_funcs[] = {
|
||||
{"get_esc_config", l_get_esc_config},
|
||||
{"set_maxspeed", l_set_maxspeed},
|
||||
{"set_started", l_set_started},
|
||||
{"add_odometer", l_add_odometer},
|
||||
{NULL, NULL},
|
||||
};
|
||||
|
||||
/* Register the functions into Lua as global "esc" */
|
||||
void register_esc(lua_State *L) {
|
||||
luaL_newlib(L, esc_funcs); // create table with all funcs
|
||||
lua_setglobal(L, "esc"); // set global "esc"
|
||||
}
|
||||
4
lua_advanced/esc.h
Normal file
4
lua_advanced/esc.h
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#pragma once
|
||||
#include <lua.h>
|
||||
|
||||
void register_esc(lua_State *L);
|
||||
27
lua_advanced/esc.lua
Normal file
27
lua_advanced/esc.lua
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
---@meta
|
||||
|
||||
---@class EscConfig
|
||||
---@field maxspeed integer
|
||||
---@field odometer number
|
||||
---@field started boolean
|
||||
|
||||
---@class esc
|
||||
esc = {}
|
||||
|
||||
---Get current ESC config
|
||||
---@return EscConfig
|
||||
function esc.get_esc_config() end
|
||||
|
||||
---Set maximum speed
|
||||
---@param value integer
|
||||
function esc.set_maxspeed(value) end
|
||||
|
||||
---Set started flag
|
||||
---@param value boolean
|
||||
function esc.set_started(value) end
|
||||
|
||||
---Add to odometer
|
||||
---@param delta number
|
||||
function esc.add_odometer(delta) end
|
||||
|
||||
return esc
|
||||
Loading…
Add table
Add a link
Reference in a new issue