Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
44b4309
Инициализация автопилота сразу с обратной связью
ArepMM May 12, 2026
2222476
Явная пометка override функций и неиспользуемых переменных
avilkinnick May 14, 2026
d9ff657
Рефактор alsn-ukbm:
avilkinnick May 14, 2026
ed19a79
ampermeters-state:
avilkinnick May 14, 2026
e991a93
Включение StepSwitch через forward-declare
avilkinnick May 14, 2026
528a7a8
Включение PuskRez через forward-declare
avilkinnick May 14, 2026
25611a8
Включение Motor и OverloadRelay через forward-declare
avilkinnick May 14, 2026
e7edef5
Включение ElectroPneumoValveEmergency и ElectroPneumoValveRelease чер…
avilkinnick May 14, 2026
e7c719c
Включение Dako и Generator через forward-declare
avilkinnick May 14, 2026
6611b7f
Включение PulseConverter и BrakeRegulator через forward-declare
avilkinnick May 14, 2026
156a616
Включение HandleEDT, DCMotorFan и Blinds через forward-declare
avilkinnick May 14, 2026
c2f5078
Включение PhysToModbus и SL2M через forward-declare
avilkinnick May 14, 2026
e278b2c
Включение EnergyCounter и SafetyDevice через forward-declare
avilkinnick May 14, 2026
beebea8
Вместо vehicle-api только отдельные нужные заголовки. Включение Regis…
avilkinnick May 14, 2026
d701f0e
Включение SpeedMap и SandingSystem через forward-declare
avilkinnick May 14, 2026
a77dc11
Включение Reservoir и ProtectiveDevice через forward-declare
avilkinnick May 14, 2026
bf33f58
Включение PressureRegulator и SwitchingValve через forward-declare
avilkinnick May 14, 2026
4eae355
Включение PneumoSplitter и PneumoShutoffValve через forward-declare
avilkinnick May 14, 2026
ae1092e
Включение PneumoRelay и PneumoHose через forward-declare
avilkinnick May 14, 2026
b6adfa2
Включение PneumoCombineCrane и PneumoAnglecock через forward-declare
avilkinnick May 14, 2026
8e05206
Включение Pantograph и DCMotorFan через forward-declare
avilkinnick May 14, 2026
22146cf
Включение DCMotorCompressor и LocoCrane через forward-declare
avilkinnick May 14, 2026
0e6866a
Включение EPBControl и EPBConverter через forward-declare
avilkinnick May 14, 2026
9de03f1
Включение ElectroAirDistributor и OperatingRod через forward-declare
avilkinnick May 14, 2026
d0f592a
Включение Coupling и BrakeMech через forward-declare
avilkinnick May 14, 2026
2b2add7
Включение BrakeCrane и AutoTrainStop через forward-declare
avilkinnick May 14, 2026
86d10a9
Включение DecoderALSN и CoilALSN через forward-declare
avilkinnick May 14, 2026
e645786
Включение AirDistributor через forward-declare
avilkinnick May 14, 2026
a15619e
Заменил загрузку AirDistrubutor
avilkinnick May 18, 2026
c51deaf
Заменил загрузку AutoTrainStop
avilkinnick May 18, 2026
e086631
Заменил загрузку Autopilot
avilkinnick May 18, 2026
d79d884
Убрал лишний QObject
avilkinnick May 18, 2026
fdd9c9a
Заменил загрузку Coupling
avilkinnick May 19, 2026
38fbb8e
Заменил загрузку BrakeCrane
avilkinnick May 19, 2026
7f140f7
Заменил загрузку ElectroAirDistributor
avilkinnick May 19, 2026
0169d97
Заменил загрузку LocoCrane
avilkinnick May 19, 2026
2f6f059
Заменил загрузку PneumoHoseEPB
avilkinnick May 19, 2026
59d7c48
Заменил загрузку Vehicle
avilkinnick May 19, 2026
795eedf
УКБМ проверяет скорость с запасом 1 кмч
ArepMM May 19, 2026
85c2c13
Вернул alsn-ukbm как было
avilkinnick May 20, 2026
97d92ab
Merge branch 'arepmm-dev-for-rrs1.1.10' of https://github.com/ArepMM/…
avilkinnick May 20, 2026
9b7de24
registrator теперь unique_ptr
avilkinnick May 21, 2026
36e2d9d
Revert "registrator теперь unique_ptr"
avilkinnick May 21, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions chs2t-autopilot/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ find_package(Journal ${RRS_VERSION} REQUIRED)
find_package(filesystem ${RRS_VERSION} REQUIRED)
find_package(device ${RRS_VERSION} REQUIRED)
find_package(vehicle ${RRS_VERSION} REQUIRED)
find_package(core ${RRS_VERSION} REQUIRED)

# Пути к заголовкам и сорцам
file (GLOB INCLUDES "./include/*.h")
Expand All @@ -42,3 +43,4 @@ target_link_libraries (${TARGET} physics)
target_link_libraries (${TARGET} vehicle)
target_link_libraries (${TARGET} device)
target_link_libraries (${TARGET} filesystem)
target_link_libraries (${TARGET} core)
9 changes: 8 additions & 1 deletion chs2t-autopilot/src/chs2t-autopilot.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
#include <chs2t-autopilot.h>

#include <core/get_module.h>

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
Expand Down Expand Up @@ -48,6 +50,8 @@ void CHS2TAutopilot::initAutoBrakeControl(const QString &config_name,
//------------------------------------------------------------------------------
void CHS2TAutopilot::preStep(state_vector_t &Y, double t)
{
(void)t;

auto_feedback = dynamic_cast<chs2t_feedback_t *>(feedback);

if (auto_feedback == nullptr)
Expand Down Expand Up @@ -163,6 +167,9 @@ void CHS2TAutopilot::ode_system(const state_vector_t &Y,
state_vector_t &dYdt,
double t)
{
(void)Y;
(void)t;

dYdt[0] = Ki * dv;
}

Expand Down Expand Up @@ -280,4 +287,4 @@ void CHS2TAutopilot::slotPosDelay()
}
}

GET_AUTOPILOT(CHS2TAutopilot)
GET_MODULE(CHS2TAutopilot)
6 changes: 3 additions & 3 deletions chs2t-equipment/include/alsn-ukbm.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,11 @@ class SafetyDevice : public Device

Timer *safety_timer;

void preStep(state_vector_t &Y, double t);
virtual void preStep(state_vector_t &Y, double t) override;

void ode_system(const state_vector_t &Y, state_vector_t &dYdt, double t);
virtual void ode_system(const state_vector_t &Y, state_vector_t &dYdt, double t) override;

void load_config(CfgReader &cfg);
virtual void load_config(CfgReader &cfg) override;

void alsn_process(int code_alsn);

Expand Down
18 changes: 5 additions & 13 deletions chs2t-equipment/include/ampermeters-state.h
Original file line number Diff line number Diff line change
@@ -1,22 +1,14 @@
#ifndef AMPERMETERS_STATE_H
#define AMPERMETERS_STATE_H
#ifndef AMPERMETERS_STATE_H
#define AMPERMETERS_STATE_H

//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
struct ampermeters_state_t
{
bool is12on;
bool is34on;
bool is56on;

ampermeters_state_t()
: is12on(false)
, is34on(false)
, is56on(false)
{

}
bool is12on{false};
bool is34on{false};
bool is56on{false};
};

#endif // AMPERMETERS_STATE_H
8 changes: 4 additions & 4 deletions chs2t-equipment/src/alsn-ukbm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ void SafetyDevice::preStep(state_vector_t &Y, double t)
return;
}

if (is_red.getState() && v_kmh > 20.0)
if (is_red.getState() && v_kmh > 21.0)
return;

if (code_alsn < old_code_alsn)
Expand All @@ -71,7 +71,7 @@ void SafetyDevice::preStep(state_vector_t &Y, double t)
epk_state.reset();
lamp_on(RED_LAMP);

if (v_kmh > 20.0)
if (v_kmh > 21.0)
{
return;
}
Expand Down Expand Up @@ -106,7 +106,7 @@ void SafetyDevice::preStep(state_vector_t &Y, double t)

if (code_alsn == 1)
{
if (v_kmh > 60.0)
if (v_kmh > 61.0)
{
epk_state.reset();
return;
Expand All @@ -124,7 +124,7 @@ void SafetyDevice::preStep(state_vector_t &Y, double t)

if (code_alsn == 2)
{
if (v_kmh > 60.0)
if (v_kmh > 61.0)
{
if (!safety_timer->isStarted())
safety_timer->start();
Expand Down
2 changes: 2 additions & 0 deletions chs2t/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ find_package(Journal ${RRS_VERSION} REQUIRED)
find_package(filesystem ${RRS_VERSION} REQUIRED)
find_package(device ${RRS_VERSION} REQUIRED)
find_package(vehicle ${RRS_VERSION} REQUIRED)
find_package(core ${RRS_VERSION} REQUIRED)

file (GLOB INCLUDES "./include/*.h")
file (GLOB EQP_INCLUDES "../chs2t-equipment/include/*.h")
Expand All @@ -32,3 +33,4 @@ target_link_libraries (${TARGET} Journal)
target_link_libraries (${TARGET} filesystem)
target_link_libraries (${TARGET} device)
target_link_libraries (${TARGET} vehicle)
target_link_libraries (${TARGET} core)
70 changes: 50 additions & 20 deletions chs2t/include/chs2t.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,61 @@
#ifndef CHS2T_H
#define CHS2T_H

#include "vehicle-api.h"
#include <vehicle.h>
#include <datetime.h>

#include "switchers-panel.h"
#include "km-21kr2.h"
#include "stepswitch.h"
#include "pusk-rez.h"
#include "motor.h"
#include "overload-relay.h"
#include "electropneumovalve-emergency.h"
#include "electropneumovalve-release.h"
#include "dako.h"
#include "generator.h"
#include "pulse-converter.h"
#include "brake-regulator.h"
#include "handle-edt.h"
#include "motor-fan-dc.h"
#include "blinds.h"
#include "hardware-signals.h"
#include "convert-physics-to-modbus.h"
#include "sl2m.h"
#include "energy-counter.h"
#include "alsn-ukbm.h"

#include <chs2t-autopilot-types.h>

class AirDistributor;
class AutoTrainStop;
class Blinds;
class BrakeCrane;
class BrakeMech;
class BrakeRegulator;
class CoilALSN;
class Coupling;
class DCMotorCompressor;
class DCMotorFan;
class Dako;
class DecoderALSN;
class EPBControl;
class EPBConverter;
class ElectroAirDistributor;
class ElectroPneumoValveEmergency;
class ElectroPneumoValveRelease;
class EnergyCounter;
class Generator;
class HandleEDT;
class LocoCrane;
class Motor;
class OperatingRod;
class OverloadRelay;
class Pantograph;
class PhysToModbus;
class PneumoAngleCock;
class PneumoCombineCrane;
class PneumoHose;
class PneumoHoseEPB;
class PneumoRelay;
class PneumoShutoffValve;
class PneumoSplitter;
class PressureRegulator;
class ProtectiveDevice;
class PulseConverter;
class PuskRez;
class Registrator;
class Reservoir;
class SL2M;
class SafetyDevice;
class SandingSystem;
class SwitchingValve;
class SpeedMap;
class StepSwitch;
class TrainHorn;

/*!
* \class
* \brief Основной класс, описывающий весь электровоз
Expand All @@ -56,7 +86,7 @@ class CHS2T : public Vehicle
~CHS2T();

/// Инициализация тормозных приборов
void initBrakeDevices(double p0, double pBP, double pFL) override;
virtual void initBrakeDevices(double p0, double pBP, double pFL) override;

private:

Expand Down
20 changes: 13 additions & 7 deletions chs2t/src/chs2t-init-autopilot.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
#include <chs2t.h>

#include <epb-2line-control.h>
#include <core/load_module.h>

#include <QDir>

//------------------------------------------------------------------------------
Expand All @@ -10,9 +14,10 @@ void CHS2T::initAutopilot(const QString &modules_dir,
// Модули автоведения
for (auto cab_idx : {CAB1, CAB2})
{
Autopilot *autopilot = loadAutopilot(modules_dir + QDir::separator()
+ custom_modules_dir + QDir::separator() +
autopilot_module_name);
Autopilot* autopilot = LOAD_MODULE(Autopilot,
modules_dir + QDir::separator() +
custom_modules_dir + QDir::separator() +
autopilot_module_name);

if (autopilot != nullptr)
{
Expand All @@ -25,15 +30,16 @@ void CHS2T::initAutopilot(const QString &modules_dir,
autopilot_switcher[cab_idx].setKeySymbolOff(KEY_F);
autopilot_switcher[cab_idx].setControl(&pressed_keys);

auto_feedback[cab_idx] = new chs2t_feedback_t();
autopilot->setFeedback(auto_feedback[cab_idx]);

connect(autopilot, &Autopilot::sigInitTrainParams, this, &CHS2T::slotInitTrainForAutopilot);

this->autopilot.push_back(autopilot);

auto_feedback[cab_idx] = new chs2t_feedback_t();

connect(pantCtrlTimer, &Timer::process, this, &CHS2T::slotPantCtrl);
}
}
}
}
}

//------------------------------------------------------------------------------
Expand Down
6 changes: 5 additions & 1 deletion chs2t/src/chs2t-init-autostart.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
#include <chs2t.h>

#include <automatic-train-stop.h>
#include <pantograph.h>
#include <protective-device.h>

//------------------------------------------------------------------------------
//
//------------------------------------------------------------------------------
Expand Down Expand Up @@ -162,7 +166,7 @@ void CHS2T::slotAutostart()

if (auto_start_autopilot)
{
autopilot_switcher[autostart_cab].set();
autopilot_switcher[autostart_cab].set();
}
}

Expand Down
11 changes: 11 additions & 0 deletions chs2t/src/chs2t-init-brake-devices.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,16 @@
#include "chs2t.h"

#include <airdistributor.h>
#include <automatic-train-stop.h>
#include <brake-crane.h>
#include <electro-airdistributor.h>
#include <loco-crane.h>
#include <pneumo-anglecock.h>
#include <pneumo-combine-crane.h>
#include <pneumo-hose.h>
#include <pneumo-hose-epb.h>
#include <reservoir.h>

#include "filesystem.h"

//------------------------------------------------------------------------
Expand Down
19 changes: 17 additions & 2 deletions chs2t/src/chs2t-init-brakes-control.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,20 @@
#include "chs2t.h"

#include "dako.h"
#include "electropneumovalve-emergency.h"
#include "electropneumovalve-release.h"
#include "handle-edt.h"

#include <brake-crane.h>
#include <loco-crane.h>
#include <pneumo-combine-crane.h>
#include <pneumo-relay.h>
#include <pneumo-shutoff-valve.h>
#include <pneumo-splitter.h>
#include <pneumo-switching-valve.h>
#include <reservoir.h>
#include <core/load_module.h>

#include <QDir>

//------------------------------------------------------------------------
Expand All @@ -18,12 +33,12 @@ void CHS2T::initBrakesControl(const QString& modules_dir, const QString& custom_
combine_crane[cab_idx]->read_config("pneumo-combine-crane");

// Поездной кран машиниста
brake_crane[cab_idx] = loadBrakeCrane(
brake_crane[cab_idx] = LOAD_MODULE(BrakeCrane,
modules_dir + QDir::separator() + brake_crane_module_name);
brake_crane[cab_idx]->read_config(brake_crane_config_name);

// Кран вспомогательного тормоза
loco_crane[cab_idx] = loadLocoCrane(
loco_crane[cab_idx] = LOAD_MODULE(LocoCrane,
modules_dir + QDir::separator() + loco_crane_module_name);
loco_crane[cab_idx]->read_config(loco_crane_config_name);

Expand Down
3 changes: 3 additions & 0 deletions chs2t/src/chs2t-init-brakes-epb.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
#include "chs2t.h"

#include <epb-2line-control.h>
#include <epb-converter.h>

//------------------------------------------------------------------------
//
//------------------------------------------------------------------------
Expand Down
19 changes: 15 additions & 4 deletions chs2t/src/chs2t-init-brakes-equipment.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
#include "chs2t.h"

#include <airdistributor.h>
#include <brake-mech.h>
#include <electro-airdistributor.h>
#include <pneumo-anglecock.h>
#include <pneumo-hose-epb.h>
#include <reservoir.h>
#include <core/load_module.h>

#include <QDir>

//------------------------------------------------------------------------
Expand All @@ -13,11 +21,12 @@ void CHS2T::initBrakesEquipment(const QString& modules_dir, const QString& custo
brakepipe->setLeakCoeff(3e-6);

// Воздухораспределитель
air_dist = loadAirDistributor(modules_dir + QDir::separator() + airdist_module_name);
air_dist = LOAD_MODULE(AirDistributor, modules_dir + QDir::separator() + airdist_module_name);
air_dist->read_config(airdist_config_name);

// Электровоздухораспределитель
electro_air_dist = loadElectroAirDistributor(modules_dir + QDir::separator() + electro_airdist_module_name);
electro_air_dist = LOAD_MODULE(ElectroAirDistributor,
modules_dir + QDir::separator() + electro_airdist_module_name);
electro_air_dist->read_config(electro_airdist_config_name);

// Запасный резервуар
Expand Down Expand Up @@ -45,11 +54,13 @@ void CHS2T::initBrakesEquipment(const QString& modules_dir, const QString& custo
anglecock_bp_bwd->setPipeVolume(volume_bp);

// Рукава тормозной магистрали
hose_bp_fwd = loadPneumoHoseEPB(modules_dir + QDir::separator() + "hose369a");
hose_bp_fwd = LOAD_MODULE(PneumoHoseEPB,
modules_dir + QDir::separator() + "hose369a");
hose_bp_fwd->read_config("pneumo-hose-BP369a-loco");
forward_connectors.push_back(hose_bp_fwd);

hose_bp_bwd = loadPneumoHoseEPB(modules_dir + QDir::separator() + "hose369a");
hose_bp_bwd = LOAD_MODULE(PneumoHoseEPB,
modules_dir + QDir::separator() + "hose369a");
hose_bp_bwd->read_config("pneumo-hose-BP369a-loco");
backward_connectors.push_back(hose_bp_bwd);
}
Loading