1
0
mirror of https://github.com/metrostroi-repo/MetrostroiAddon.git synced 2026-05-02 00:42:29 +00:00

Почти все работает, кроме контроля дверей при сборе на ход

This commit is contained in:
Moon Horse
2024-04-27 11:00:16 +03:00
parent a806be8f32
commit e9cc545f73
10 changed files with 118 additions and 122 deletions

View File

@@ -34,16 +34,27 @@ function TRAIN_SYSTEM:Initialize()
self.CCcurrent_sigma = 0
self.Dischar = false
self.ComputerCar = false
for k,v in pairs(self.Train.Systems) do
if v.hasCoil and not self.Consumers[v] then
print("Registering relay",v.Name, "Train: ", self.Train)
self.Consumers[v] = {0,v.coil_res,0}
end
end
print "------------------\n"
end
-- TODO: - разобраться, почему при сборе схемы на ход пропадает контроль дверей
-- - расставить параметры для всех оставшихся реле
-- self.Consumers is a table of relays with the next structure:
-- [<relay>] = {<relay.Value>, <relay.coil_res>, <relay.current>}
function TRAIN_SYSTEM:Inputs()
return { "Charge", "Dischargeable", "InitialVoltage", "CarType" }
return { "Charge", "Dischargeable", "InitialVoltage", "CarType", "Computer" }
end
function TRAIN_SYSTEM:Outputs()
return { "Capacity", "Charge", "Voltage" }
return { "Capacity", "Charge", "Voltage", "eds_eq" }
end
function TRAIN_SYSTEM:TriggerInput(name,value)
if name == "Charge" then self.Charging = value end
@@ -72,6 +83,11 @@ function TRAIN_SYSTEM:Think(dT)
end
self.IResistance = self.IResistance * self.ElementCount
for k,v in pairs(self.Consumers) do
v[1] = k.Value
v[3] = k.Current
end
if self.Train.ComputerCar then
local nodecurr_sum, branchcond_sum = 0, 0
local eds_eq = 0
@@ -121,7 +137,9 @@ function TRAIN_SYSTEM:Think(dT)
v.Battery.Ibatt_sigma = self.Ibatt_sigma
v.Battery.CCcurrent_sigma = self.CCcurrent_sigma
end
--print("БД = ", self.Train.BD.Value)
end
--print("Battery RD = ",self.Train.RD.Value)
-- Calculate discharge
if self.Dischar then
self.Train.BattCurrent = self.Ibatt*self.Train.A24.Value