Skip to content

Commit e9bd6bb

Browse files
committed
Refactor Simulink Core API Parameter & fix precommit-ci & update clang-format
1 parent 5916e4c commit e9bd6bb

40 files changed

Lines changed: 1233 additions & 657 deletions

IO/Core/SimulinkArrayWriter.cxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "SimulinkArrayWriter.h"
22
#include "DataObject.h"
33
#include "SimulinkArray.h"
4+
#include "ErrorCode.h"
45

56
namespace slxio
67
{

IO/Core/SimulinkWriter.h

Lines changed: 11 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -8,58 +8,42 @@
88
#include "ApiExportMacro.h"
99
#include "PlatformTypes.h"
1010

11-
class DataObject;
12-
class Logger;
13-
1411
namespace slxio
1512
{
1613
SLXIO_ABI_NAMESPACE_BEGIN
1714

15+
class DataObject;
16+
class Logger;
17+
1818
/**
1919
* @class SimulinkWriter
2020
* @brief Abstract class to write Simulink data to files
2121
*/
2222
class SLXIO_APIEXPORT SimulinkWriter
2323
{
2424
public:
25-
/**
26-
* Create a new instance of the writer
27-
*/
25+
/** Create a new instance of the writer */
2826
virtual SimulinkWriter* New() = 0;
2927

30-
/**
31-
* Virtual destructor for cleanup
32-
*/
28+
/** Virtual destructor for cleanup */
3329
virtual ~SimulinkWriter() = default;
3430

35-
/**
36-
* Write the current input data to output
37-
*/
31+
/** Write the current input data to output */
3832
virtual ReturnType Write() = 0;
3933

40-
/**
41-
* Set single input data object for writing
42-
*/
34+
/** Set single input data object for writing */
4335
virtual ReturnType SetInputData(const DataObject& data) = 0;
4436

45-
/**
46-
* Set indexed input data object for writing
47-
*/
37+
/** Set indexed input data object for writing */
4838
virtual ReturnType SetInputData(IdType idx, const DataObject& data) = 0;
4939

50-
/**
51-
* Get the single input data object
52-
*/
40+
/** Get the single input data object*/
5341
DataObject* GetInputData() const;
5442

55-
/**
56-
* Get the indexed input data object
57-
*/
43+
/** Get the indexed input data object */
5844
DataObject* GetInputData(IdType idx) const;
5945

60-
/**
61-
* Access the logger instance
62-
*/
46+
/** Access the logger instance*/
6347
Logger& GetLogger();
6448

6549
protected:

Simulink/Configuration/SimulinkConfigSet.cxx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@ SimulinkConfigSet::SimulinkConfigSet()
1717
, hardware(nullptr)
1818
, modelReference(nullptr)
1919
, rtw(nullptr)
20-
, l(Logger::GetInstance())
20+
, logger(Logger::GetInstance())
2121
{
2222
}
2323

2424
SimulinkConfigSet::SimulinkConfigSet(const SimulinkObject& obj)
2525
: object(std::make_shared<SimulinkObject>(obj))
26-
, l(Logger::GetInstance())
26+
, logger(Logger::GetInstance())
2727
{
2828
}
2929

@@ -42,34 +42,34 @@ const char* SimulinkConfigSet::getParameter(const char* name)
4242

4343
if (name == nullptr)
4444
{
45-
// l.log(Logger::V_ERROR, "SimulinkConfigSet parameter name null");
45+
// logger.log(Logger::V_ERROR, "SimulinkConfigSet parameter name null");
4646
return "";
4747
}
48-
std::shared_ptr<SimulinkParameter> cfgParam = getParameterObject(std::string(name));
49-
return cfgParam->getValue();
48+
std::shared_ptr<SimulinkParameterBase> cfgParam = getParameterObject(std::string(name));
49+
return cfgParam->ToString().c_str();
5050
}
5151

52-
std::shared_ptr<SimulinkParameter> SimulinkConfigSet::getParameterObject(const std::string& name)
52+
std::shared_ptr<SimulinkParameterBase> SimulinkConfigSet::getParameterObject(const std::string& name)
5353
{
54-
auto param = object->getParameter(name);
54+
auto param = object->GetParameter(name);
5555
if (param)
5656
{
5757
return param;
5858
}
59-
// l.log(Logger::V_WARNING, "SimulinkConfigSet Parameter ", name,
59+
// logger.log(Logger::V_WARNING, "SimulinkConfigSet Parameter ", name,
6060
// " not found in configuration set.");
6161
return nullptr;
6262
}
6363

6464
ReturnType SimulinkConfigSet::setParameter(const char* name, const char* value)
6565
{
66-
auto param = object->getParameter(std::string(name));
66+
auto param = object->GetParameter(std::string(name));
6767
if (param)
6868
{
69-
param->setValue(value);
69+
//param->SetValue(value);
7070
return E_OK;
7171
}
72-
// l.log(Logger::V_WARNING, "SimulinkConfigSet Parameter ", name,
72+
// logger.log(Logger::V_WARNING, "SimulinkConfigSet Parameter ", name,
7373
//" not found in configuration set. Cannot set value.");
7474
return E_OK;
7575
}
@@ -101,7 +101,7 @@ ReturnType SimulinkConfigSet::detach(SimulinkModel& model)
101101

102102
std::string SimulinkConfigSet::getName()
103103
{
104-
return object->getName();
104+
return object->GetName();
105105
}
106106

107107
std::shared_ptr<SimulinkObject> SimulinkConfigSet::getObject() const
@@ -133,7 +133,7 @@ void SimulinkConfigSet::activate()
133133
{
134134
if (status)
135135
{
136-
// l.log(Logger::V_INFO, "Activating Simulink configuration set ",
136+
// logger.log(Logger::V_INFO, "Activating Simulink configuration set ",
137137
// object->getName());
138138
}
139139
status = true;
@@ -143,7 +143,7 @@ void SimulinkConfigSet::deactivate()
143143
{
144144
if (!status)
145145
{
146-
// l.log(Logger::V_INFO, "Deactivating Simulink configuration set ",
146+
// logger.log(Logger::V_INFO, "Deactivating Simulink configuration set ",
147147
// object->getName());
148148
}
149149
status = false;

Simulink/Configuration/SimulinkConfigSet.h

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,15 @@
99
#include "PlatformTypes.h"
1010
#include "SimulinkModel.h"
1111
#include "SimulinkObject.h"
12-
#include "SimulinkParameter.h"
12+
#include "SimulinkParameterBase.h"
1313
#include <memory>
1414
#include <string>
1515
#include <vector>
1616

17+
namespace slxio
18+
{
19+
SLXIO_ABI_NAMESPACE_BEGIN
20+
1721
class SimulinkSolver;
1822
class SimulinkOptimization;
1923
class SimulinkSFSim;
@@ -23,20 +27,15 @@ class SimulinkModelReference;
2327
class SimulinkRTW;
2428
class Logger;
2529

26-
namespace slxio
27-
{
28-
SLXIO_ABI_NAMESPACE_BEGIN
29-
3030
/**
3131
* @brief SimulinkConfigSet represents a configuration set in a Simulink model
3232
*/
3333
class SLXIO_APIEXPORT SimulinkConfigSet final
3434
{
3535
public:
36+
/** Default Constructor */
3637
SimulinkConfigSet();
3738

38-
~SimulinkConfigSet() = default;
39-
4039
/// @brief disbale copy constructor
4140
/// @note instead use clone to create a copy of the configuration set
4241
SimulinkConfigSet(const SimulinkConfigSet&);
@@ -53,7 +52,7 @@ class SLXIO_APIEXPORT SimulinkConfigSet final
5352
const char* getParameter(const char* name);
5453

5554
/// @brief Retuens the parameter object by name.
56-
std::shared_ptr<SimulinkParameter> getParameterObject(const std::string& name);
55+
std::shared_ptr<SimulinkParameterBase> getParameterObject(const std::string& name);
5756

5857
/// @brief Sets a parameter value by name.
5958
ReturnType setParameter(const char* name, const char* value);
@@ -106,8 +105,10 @@ class SLXIO_APIEXPORT SimulinkConfigSet final
106105
/// @brief Get a Pointer to Solver Configuration struct
107106
std::shared_ptr<SimulinkSolver> getSolver();
108107

108+
/** Default destructor */
109+
~SimulinkConfigSet() = default;
109110
private:
110-
Logger& l;
111+
Logger& logger;
111112
bool status = false;
112113
std::shared_ptr<SimulinkObject> object;
113114
std::shared_ptr<SimulinkSolver> solver;

Simulink/Core/SimulinkArray.cxx

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include "SimulinkArray.h"
2+
#include "ErrorCode.h"
23
#include "Logger.h"
34
#include "SimulinkParameter.h"
45
#include <algorithm>
@@ -86,7 +87,7 @@ ReturnType SimulinkArray::Insert(const std::shared_ptr<SimulinkElementBase>& ele
8687

8788
for (const auto& arraysPtr : SubArrays)
8889
{
89-
if (subArrayPtr->GetArrayName() == arraysPtr->GetArrayName())
90+
if (subArrayPtr->GetName() == arraysPtr->GetName())
9091
{
9192
logger.SendLogMessage({ Logger::LOG, Logger::LOG_WARN, SimulinkArrayLogApp, 3 },
9293
{ "SubArray already exists in the base array" });
@@ -160,7 +161,7 @@ ReturnType SimulinkArray::Erase(const std::shared_ptr<SimulinkElementBase>& elem
160161
for (const auto& arr : SubArrays)
161162
{
162163

163-
if (arr->GetArrayName() == arrayPtr->GetArrayName())
164+
if (arr->GetName() == arrayPtr->GetName())
164165
{
165166
SubArrays.erase(remove(SubArrays.begin(), SubArrays.end(), arr), SubArrays.end());
166167
return E_OK;
@@ -255,12 +256,12 @@ Logger& SimulinkArray::GetLogger()
255256
return logger;
256257
}
257258

258-
std::shared_ptr<SimulinkParameter> SimulinkArray::GetArrayParameter(std::string ArrayName)
259+
std::shared_ptr<SimulinkParameterBase> SimulinkArray::GetParameter(std::string name)
259260
{
260261

261262
for (const auto& param : ArrayParameters)
262263
{
263-
if (param && param->getName() == ArrayName)
264+
if (param && param->GetName() == name)
264265
{
265266
return param;
266267
}
@@ -270,7 +271,7 @@ std::shared_ptr<SimulinkParameter> SimulinkArray::GetArrayParameter(std::string
270271
{
271272
if (SubArray)
272273
{
273-
auto result = SubArray->GetArrayParameter(ArrayName);
274+
auto result = SubArray->GetParameter(name);
274275
if (result)
275276
{
276277
return result;
@@ -282,12 +283,23 @@ std::shared_ptr<SimulinkParameter> SimulinkArray::GetArrayParameter(std::string
282283
return nullptr;
283284
}
284285

285-
std::string SimulinkArray::GetArrayName()
286+
ReturnType SimulinkArray::SetParameter(
287+
std::string name, std::shared_ptr<SimulinkParameterBase> parameter)
288+
{
289+
return E_OK;
290+
}
291+
292+
ReturnType SimulinkArray::AddParameter(std::shared_ptr<SimulinkParameterBase> parameter)
293+
{
294+
return E_OK;
295+
}
296+
297+
std::string SimulinkArray::GetName()
286298
{
287299
return ArrayName;
288300
}
289301

290-
std::string SimulinkArray::GetArrayDimension()
302+
std::string SimulinkArray::GetDimension()
291303
{
292304
return ArrayDimension;
293305
}

Simulink/Core/SimulinkArray.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,14 @@ class SLXIO_APIEXPORT SimulinkArray final : public SimulinkElementBase
8585
std::string GetArrayType();
8686

8787
/** Return the parameter with the given name. */
88-
std::shared_ptr<SimulinkParameter> GetParameter(std::string name) override;
88+
std::shared_ptr<SimulinkParameterBase> GetParameter(std::string name) override;
89+
90+
/** Sets the element specifc parameter to given one */
91+
ReturnType SetParameter(
92+
std::string name, std::shared_ptr<SimulinkParameterBase> parameter) override;
93+
94+
/* Adds a Parameter to the array */
95+
ReturnType AddParameter(std::shared_ptr<SimulinkParameterBase> parameter) override;
8996

9097
/** Return the class logger. */
9198
Logger& GetLogger();

Simulink/Core/SimulinkAtomicSubsystem.cxx

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,49 @@ std::string SimulinkAtomicSubsystem::ToString() const
2525
return std::string();
2626
}
2727

28+
std::string SimulinkAtomicSubsystem::GetName()
29+
{
30+
return std::string();
31+
}
32+
33+
std::string SimulinkAtomicSubsystem::GetDimension()
34+
{
35+
return std::string();
36+
}
37+
38+
ReturnType SimulinkAtomicSubsystem::SetParameter(
39+
std::string name, std::shared_ptr<SimulinkParameterBase> parameter)
40+
{
41+
return E_OK;
42+
}
43+
44+
ReturnType SimulinkAtomicSubsystem::AddParameter(std::shared_ptr<SimulinkParameterBase> parameter)
45+
{
46+
return E_OK;
47+
}
48+
2849
bool SimulinkAtomicSubsystem::Contains(const IdType& id) const
2950
{
3051
return false;
3152
}
3253

3354
void SimulinkAtomicSubsystem::Clear() {}
3455

56+
ReturnType SimulinkAtomicSubsystem::Insert(const std::shared_ptr<SimulinkElementBase>& element)
57+
{
58+
return E_OK;
59+
}
60+
61+
ReturnType SimulinkAtomicSubsystem::Erase(const IdType& id)
62+
{
63+
return ReturnType();
64+
}
65+
66+
ReturnType SimulinkAtomicSubsystem::Erase(const std::shared_ptr<SimulinkElementBase>& element)
67+
{
68+
return ReturnType();
69+
}
70+
3571
std::shared_ptr<SimulinkElementBase> SimulinkAtomicSubsystem::at(IdType index)
3672
{
3773
return std::shared_ptr<SimulinkElementBase>();

0 commit comments

Comments
 (0)