mirror of
https://github.com/opentx/opentx.git
synced 2025-07-25 01:05:10 +03:00
Telemetry values are now returned as proper values (i.e. A1 voltage 4.5V is returned as 4.5) for model script inputs and getValue() function.
This commit is contained in:
parent
06beced480
commit
eac17bda08
1 changed files with 60 additions and 2 deletions
|
@ -90,11 +90,68 @@ static int luaGetTime(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
static void __luaGetValue(int src)
|
||||
{
|
||||
/*
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_RPM) return frskyData.hub.rpm;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_FUEL) return frskyData.hub.fuelLevel;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_T1) return frskyData.hub.temperature1;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_T2) return frskyData.hub.temperature2;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_SPEED) return TELEMETRY_GPS_SPEED_BP;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_DIST) return frskyData.hub.gpsDistance;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_GPSALT) return TELEMETRY_RELATIVE_GPS_ALT_BP;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CELL) return (int16_t)TELEMETRY_MIN_CELL_VOLTAGE;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM) return (int16_t)frskyData.hub.cellsSum;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_VFAS) return (int16_t)frskyData.hub.vfas;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CURRENT) return (int16_t)frskyData.hub.current;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_CONSUMPTION) return frskyData.hub.currentConsumption;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_POWER) return frskyData.hub.power;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCx) return frskyData.hub.accelX;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCy) return frskyData.hub.accelY;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ACCz) return frskyData.hub.accelZ;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_HDG) return frskyData.hub.gpsCourse_bp;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_VSPEED) return frskyData.hub.varioSpeed;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_ASPEED) return frskyData.hub.airSpeed;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_DTE) return frskyData.hub.dTE;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1) return frskyData.analog[0].min;
|
||||
else if (i==MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2) return frskyData.analog[1].min;
|
||||
else if (i<=MIXSRC_FIRST_TELEM-1+TELEM_CSW_MAX) return *(((int16_t*)(&frskyData.hub.minAltitude))+i-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_ALT));
|
||||
|
||||
*/
|
||||
switch (src) {
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_TX_VOLTAGE:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_VFAS:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_CELLS_SUM:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_CURRENT:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_VSPEED:
|
||||
lua_pushnumber(L, getValue(src)/10.0);
|
||||
break;
|
||||
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_A1:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_A2:
|
||||
lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_A1), getValue(src))/100.0);
|
||||
break;
|
||||
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_MIN_A2:
|
||||
lua_pushnumber(L, applyChannelRatio(src-(MIXSRC_FIRST_TELEM-1+TELEM_MIN_A1), getValue(src))/100.0);
|
||||
break;
|
||||
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_CELL:
|
||||
case MIXSRC_FIRST_TELEM-1+TELEM_ALT:
|
||||
lua_pushnumber(L, getValue(src)/100.0);
|
||||
break;
|
||||
|
||||
default:
|
||||
lua_pushinteger(L, getValue(src));
|
||||
}
|
||||
}
|
||||
|
||||
static int luaGetValue(lua_State *L)
|
||||
{
|
||||
if (lua_isnumber(L, 1)) {
|
||||
int src = luaL_checkinteger(L, 1);
|
||||
lua_pushinteger(L, getValue(src));
|
||||
__luaGetValue(src);
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
|
@ -1065,7 +1122,8 @@ void luaTask(uint8_t evt)
|
|||
lua_rawgeti(L, LUA_REGISTRYINDEX, sid.run);
|
||||
for (int j=0; j<sid.inputsCount; j++) {
|
||||
if (sid.inputs[j].type == 1)
|
||||
lua_pushinteger(L, getValue((uint8_t)sd.inputs[j]));
|
||||
__luaGetValue((uint8_t)sd.inputs[j]);
|
||||
//lua_pushinteger(L, (uint8_t)sd.inputs[j]);
|
||||
else
|
||||
lua_pushinteger(L, sd.inputs[j]);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue