Browse Source

send packet

master
n0m1s 4 years ago
parent
commit
0c0c301ce0
1 changed files with 60 additions and 5 deletions
  1. +60
    -5
      game_bindings/beamng/DashExt/lua/vehicle/extensions/auto/extdash.lua

+ 60
- 5
game_bindings/beamng/DashExt/lua/vehicle/extensions/auto/extdash.lua View File

@ -1,29 +1,83 @@
local M = {}
local cbor = require("cbor");
-- Connection settings
local ip = "127.0.0.1"
local port = 4444
local udpSocket = nil
local cbor = require("cbor");
-- Car settings
local minOilTemp = 50
local maxOilTemp = 90
local coldOilRPMCoef = 0.5
local function sendPackage(ip, port, id)
if not electrics.value.watertemp then
if not electrics.values.watertemp then
-- vehicle not completly initialized, skip sending package
return
end
local data = {
app = "beamNG"
app = "beamNG",
car = {
brand = "none", --FIXME: value
model = "none" --FIXME: value
},
gear = electrics.values.gearIndex,
speed = electrics.values.wheelspeed or electrics.values.airspeed,
axis = {
t = electrics.values.throttle,
b = electrics.values.brake,
c = electrics.values.clutch
}
}
log("I", "ExtDash", "data: " .. tostring(data) )
if electrics.values.rpm then
data.rpm = {
cur = electrics.values.rpm
}
if electrics.values.maxrpm then
data.rpm.max = electrics.values.maxrpm
local currentTempRedlineCoef = linearScale(electrics.values.oiltemp or 0, minOilTemp, maxOilTemp, coldOilRPMCoef, 1)
data.rpm.rl = electrics.values.maxrpm * currentTempRedlineCoef
end
end
if electrics.values.oiltemp then
data.oil = {
p = 0, --FIXME: value
t = electrics.values.oiltemp
}
end
if electrics.values.fuel then
data.fuel = electrics.values.fuel
end
--TODO: lights
-- lights = {
-- dash = 0, --FIXME: value
-- on = 0 --FIXME: value
-- },
--log("I", "ExtDash", "data: " .. tostring(data) )
local packet = cbor.encode( data )
udpSocket:sendto(packet, ip, port)
end
local function updateGFX(dt)
if not playerInfo.firstPlayerSeated then
return
end
sendPackage(ip, port, 0)
end
local function init(jbeamData)
minOilTemp = jbeamData.minOilTemp or minOilTemp
maxOilTemp = jbeamData.maxOilTemp or maxOilTemp
coldOilRPMCoef = jbeamData.coldOilRPMCoef or coldOilRPMCoef
end
local function onExtensionLoaded()
@ -48,6 +102,7 @@ end
-- public interface
M.onExtensionLoaded = onExtensionLoaded
M.onExtensionUnloaded = onExtensionUnloaded
M.init = init
M.updateGFX = updateGFX
-- other functions


Loading…
Cancel
Save