-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Non URI file scheme equal type name support #688
Merged
+127
−14
Merged
Changes from 21 commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
8e72c9b
Removed file scheme check
bd9e0c3
Merge branch 'master' into bug/proxy-fmu-equal-type-name
8fced5e
Allow proxyfmu URI scheme
fab82a6
Removed URI authority check
ae14c69
Check model relative path for OspModelDescription with fmuproxy
f3b2330
Fixed fmuproxy model path
4485b9f
File path fix
7433063
Added logging for debugging
555ca0b
Fix prototype
7173d9a
Absolute path query file support
b89fbdb
Merge branch 'master' into bug/proxy-fmu-equal-type-name
f3c80d6
Added some tests
3b3472a
Final testing implementation with logging
ebd8ace
Temporary removal of Linux file query uri tests
67312cc
Edited invalid tests
3fb00eb
Reintroduced non Windows tests
53f4f52
Non Windows tests corrections
f1937d8
UNIX filesystem compatible function rewrite
b9aba4a
Removed scheme assertion
42aecf7
Changed input parameter from baseUri to baseParentUri
6213f43
Moved file_query_uri_to_path function from uri to osp_config_parser
a5ae80c
Removed unused proxyfmu client dependency for tests
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
<?xml version="1.0" encoding="utf-8" ?> | ||
<OspSystemStructure | ||
xmlns="http://opensimulationplatform.com/MSMI/OSPSystemStructure" | ||
version="0.1"> | ||
<StartTime>0.0</StartTime> | ||
<BaseStepSize>1e-4</BaseStepSize> | ||
<Algorithm>fixedStep</Algorithm> | ||
<Simulators> | ||
<Simulator name="CraneController" source="proxyfmu://localhost?file=../ssp/demo/CraneController.fmu" stepSize="2e-4"> | ||
<InitialValues> | ||
<InitialValue variable="cl1_min"> | ||
<Real value="2.2"/> | ||
</InitialValue> | ||
<InitialValue variable="cl1_max"> | ||
<Real value="3.8"/> | ||
</InitialValue> | ||
</InitialValues> | ||
</Simulator> | ||
<Simulator name="KnuckleBoomCrane" source="proxyfmu://localhost?file=../ssp/demo/KnuckleBoomCrane.fmu" stepSize="2e-4"/> | ||
<Simulator name="TrueIdentity" source="proxyfmu://localhost?file=../fmi1/identity.fmu" stepSize="2.03e-4"> | ||
<InitialValues> | ||
<InitialValue variable="booleanIn"> | ||
<Boolean value="true"/> | ||
</InitialValue> | ||
</InitialValues> | ||
</Simulator> | ||
<Simulator name="OneIdentity" source="proxyfmu://localhost?file=../fmi1/identity.fmu" stepSize="2.03e-4"> | ||
<InitialValues> | ||
<InitialValue variable="booleanIn"> | ||
<Boolean value="1"/> | ||
</InitialValue> | ||
</InitialValues> | ||
</Simulator> | ||
</Simulators> | ||
<Connections> | ||
<VariableGroupConnection> | ||
<VariableGroup simulator="KnuckleBoomCrane" name="actuatorLimits"/> | ||
<VariableGroup simulator="CraneController" name="actuatorLimits"/> | ||
</VariableGroupConnection> | ||
<VariableGroupConnection> | ||
<VariableGroup simulator="KnuckleBoomCrane" name="linear mechanical port"/> | ||
<VariableGroup simulator="CraneController" name="linear mechanical port"/> | ||
</VariableGroupConnection> | ||
</Connections> | ||
</OspSystemStructure> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
#include <cosim/algorithm/fixed_step_algorithm.hpp> | ||
#include <cosim/fs_portability.hpp> | ||
#include <cosim/log/simple.hpp> | ||
#include <cosim/observer/last_value_observer.hpp> | ||
#include <cosim/orchestration.hpp> | ||
#include <cosim/osp_config_parser.hpp> | ||
|
||
#include <cstdlib> | ||
#include <exception> | ||
|
||
|
||
#define REQUIRE(test) \ | ||
if (!(test)) throw std::runtime_error("Requirement not satisfied: " #test) | ||
|
||
void test(const cosim::filesystem::path& configPath, size_t expectedNumConnections) | ||
{ | ||
auto resolver = cosim::default_model_uri_resolver(); | ||
const auto config = cosim::load_osp_config(configPath, *resolver); | ||
auto execution = cosim::execution( | ||
config.start_time, | ||
std::make_shared<cosim::fixed_step_algorithm>(config.step_size)); | ||
|
||
const auto entityMaps = cosim::inject_system_structure( | ||
execution, config.system_structure, config.initial_values); | ||
REQUIRE(entityMaps.simulators.size() == 4); | ||
REQUIRE(boost::size(config.system_structure.connections()) == expectedNumConnections); | ||
|
||
auto obs = std::make_shared<cosim::last_value_observer>(); | ||
execution.add_observer(obs); | ||
|
||
auto result = execution.simulate_until(cosim::to_time_point(1e-3)); | ||
REQUIRE(result.get()); | ||
|
||
const auto simIndex = entityMaps.simulators.at("CraneController"); | ||
const auto varReference = | ||
config.system_structure.get_variable_description({"CraneController", "cl1_min"}).reference; | ||
double realValue = -1.0; | ||
obs->get_real(simIndex, gsl::make_span(&varReference, 1), gsl::make_span(&realValue, 1)); | ||
|
||
double magicNumberFromConf = 2.2; | ||
REQUIRE(std::fabs(realValue - magicNumberFromConf) < 1e-9); | ||
} | ||
|
||
int main() | ||
{ | ||
try { | ||
cosim::log::setup_simple_console_logging(); | ||
cosim::log::set_global_output_level(cosim::log::info); | ||
|
||
const auto testDataDir = std::getenv("TEST_DATA_DIR"); | ||
REQUIRE(testDataDir); | ||
test(cosim::filesystem::path(testDataDir) / "msmi" / "OspSystemStructure_proxyfmu.xml", 9); | ||
} catch (const std::exception& e) { | ||
std::cerr << "Error: " << e.what(); | ||
return 1; | ||
} | ||
return 0; | ||
} |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line does nothing as
dependencies
is not used.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed in latest commit