Skip to content
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

Fix #5030 - C++ CLI: run.log is huge and missing the runner.registerWarning messages #5035

Merged
merged 11 commits into from
Nov 15, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions resources/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -418,3 +418,6 @@ CREATE_SRC_GROUPS("${airflow_resources_src}")
file(COPY "Examples" DESTINATION .)
# And install
install(DIRECTORY "Examples" DESTINATION . COMPONENT "CLI")

# Copy it for testing
file(COPY "workflow" DESTINATION .)
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,14 @@ def run(runner, user_arguments)
return false
end

# Register some constant values, so we can only do it during post
# processing
runner.registerInfo("runner.registerInfo called")
runner.registerWarning("runner.registerWarning called")

# Register some constant values, so we can also do it with postprocessing only
runner.registerValue("FakeReport", true)
runner.registerValue("net_site_energy", "Net Site Energy", 167.1, "GJ")
runner.registerValue("something!with.invalid_chars_", "Test Sanitizing", 1, "")
runner.registerFinalCondition("Goodbye.")

return true

end
Expand Down
36 changes: 36 additions & 0 deletions resources/workflow/measures/ModelMeasureRegistersError/measure.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
class ModelMeasureRegistersError < OpenStudio::Measure::ModelMeasure

def name
return 'Model Measure Registers Error'
end

def description
return 'Model Measure Registers Error'
end

def modeler_description
return 'The Model Measure, in the run method does runner.registerError'
end

def arguments(model)
args = OpenStudio::Measure::OSArgumentVector.new

return args
end

def run(model, runner, user_arguments)
super(model, runner, user_arguments) # Do **NOT** remove this line

# use the built-in error checking
if !runner.validateUserArguments(arguments(model), user_arguments)
return false
end

runner.registerValue("ModelMeasureRegistersError", true)
runner.registerError("runner.registerError called")
return false
end
end

# register the measure to be used by the application
ModelMeasureRegistersError.new.registerWithApplication
44 changes: 44 additions & 0 deletions resources/workflow/measures/ModelMeasureRegistersError/measure.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
<?xml version="1.0"?>
<measure>
<schema_version>3.1</schema_version>
<name>model_measure_registers_error</name>
<uid>7866c698-5e29-45dd-927a-224c9b04f787</uid>
<version_id>6cfc3278-99d9-4c2a-8ff6-d6fb0b5cf93f</version_id>
<version_modified>2023-11-15T13:31:26Z</version_modified>
<xml_checksum>82D8F881</xml_checksum>
<class_name>ModelMeasureRegistersError</class_name>
<display_name>Model Measure Registers Error</display_name>
<description>Model Measure Registers Error</description>
<modeler_description>The Model Measure, in the run method does runner.registerError</modeler_description>
<arguments />
<outputs />
<provenances />
<tags>
<tag>Envelope.Form</tag>
</tags>
<attributes>
<attribute>
<name>Measure Type</name>
<value>ModelMeasure</value>
<datatype>string</datatype>
</attribute>
<attribute>
<name>Measure Language</name>
<value>Ruby</value>
<datatype>string</datatype>
</attribute>
</attributes>
<files>
<file>
<version>
<software_program>OpenStudio</software_program>
<identifier>3.7.0</identifier>
<min_compatible>3.7.0</min_compatible>
</version>
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>E3BB8474</checksum>
</file>
</files>
</measure>
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
require 'openstudio'

class ReportingMeasureRegistersError < OpenStudio::Measure::ReportingMeasure

def name
return "Reporting Measure Registers Error"
end

def modeler_description
return "The Reporting Measure, in the run method does runner.registerError"
end

#define the arguments that the user will input
def arguments(model = nil)
args = OpenStudio::Measure::OSArgumentVector.new

return args
end #end the arguments method

def outputs
result = OpenStudio::Measure::OSOutputVector.new
result << OpenStudio::Measure::OSOutput.makeDoubleOutput('net_site_energy', false)
return result
end

#define what happens when the measure is run
def run(runner, user_arguments)
super(runner, user_arguments)

#use the built-in error checking
if not runner.validateUserArguments(arguments(), user_arguments)
return false
end

runner.registerValue("ReportingMeasureRegistersError", true)
runner.registerError("runner.registerError called")
return false
end

end

ReportingMeasureRegistersError.new.registerWithApplication
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0"?>
<measure>
<schema_version>3.1</schema_version>
<name>reporting_measure_registers_error</name>
<uid>cb6ba362-ea57-4236-b803-17e37b0c0817</uid>
<version_id>cf96487c-311a-4c07-99e9-8694a5a6248b</version_id>
<version_modified>2023-11-15T11:08:57Z</version_modified>
<xml_checksum>B2AD275E</xml_checksum>
<class_name>ReportingMeasureRegistersError</class_name>
<display_name>Reporting Measure Registers Error</display_name>
<description>Change me</description>
<modeler_description>The Reporting Measure, in the run method does runner.registerError</modeler_description>
<arguments />
<outputs>
<output>
<name>net_site_energy</name>
<display_name>net_site_energy</display_name>
<short_name>net_site_energy</short_name>
<type>Double</type>
<model_dependent>false</model_dependent>
</output>
</outputs>
<provenances />
<tags>
<tag>Reporting.QAQC</tag>
</tags>
<attributes>
<attribute>
<name>Measure Type</name>
<value>ReportingMeasure</value>
<datatype>string</datatype>
</attribute>
<attribute>
<name>Measure Language</name>
<value>Ruby</value>
<datatype>string</datatype>
</attribute>
<attribute>
<name>Uses SketchUp API</name>
<value>false</value>
<datatype>boolean</datatype>
</attribute>
</attributes>
<files>
<file>
<version>
<software_program>OpenStudio</software_program>
<identifier>1.1.2</identifier>
<min_compatible>1.1.2</min_compatible>
</version>
<filename>measure.rb</filename>
<filetype>rb</filetype>
<usage_type>script</usage_type>
<checksum>B2934521</checksum>
</file>
</files>
</measure>
8 changes: 8 additions & 0 deletions resources/workflow/measures/new_measure.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
$os_build/Products/openstudio measure new \
--class-name ModelMeasureRegistersError \
--type ModelMeasure \
--language Ruby \
--name "Model Measure Registers Error" \
--description "Model Measure Registers Error" \
--modeler-description "The Model Measure, in the run method does runner.registerError" \
--taxonomy-tag "Envelope.Form" ./ModelMeasureRegistersError
Loading