This commit is contained in:
Aapo Talvensaari
2015-01-30 14:48:56 +02:00
4 changed files with 115 additions and 4 deletions

View File

@@ -860,7 +860,7 @@ if (COOLPROP_JAVASCRIPT_MODULE)
add_definitions(-s DISABLE_EXCEPTION_CATCHING=0)
add_definitions(-s ASSERTIONS=1)
add_definitions(-DEXTERNC)
set(CMAKE_EXE_LINKER_FLAGS "-DEXTERNC -s EXPORTED_FUNCTIONS=\"['_main','_F2K','_Props1SI','_PropsSI','_get_global_param_string','_HAProps']\"")
set(CMAKE_EXE_LINKER_FLAGS "-DEXTERNC -s ASSERTIONS=1 -s EXPORTED_FUNCTIONS=\"['_main','_F2K','_Props1SI','_PropsSI','_get_global_param_string','_HAProps']\"")
set(CMAKE_BUILD_TYPE Release)
list(APPEND APP_SOURCES "${CMAKE_SOURCE_DIR}/src/CoolPropLib.cpp")
@@ -869,6 +869,7 @@ if (COOLPROP_JAVASCRIPT_MODULE)
add_dependencies (coolprop generate_headers)
SET_TARGET_PROPERTIES(coolprop PROPERTIES PREFIX "" SUFFIX .js)
install (TARGETS coolprop DESTINATION ${CMAKE_INSTALL_PREFIX}/Javascript)
install (FILES "${CMAKE_SOURCE_DIR}/Web/coolprop/wrappers/Javascript/index.html" DESTINATION ${CMAKE_INSTALL_PREFIX}/Javascript)
endif()
if (COOLPROP_MATHEMATICA_MODULE)

View File

@@ -0,0 +1,99 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>CoolProp Javascript example</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.0/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<script>
//<link rel="stylesheet" href="/resources/demos/style.css" />
</script>
<script src="coolprop.js"></script>
<script>
PropsSI = Module.cwrap('PropsSI','number',['string','string','number','string','number','string'])
Props1 = Module.cwrap('Props1SI','number',['string','string'])
</script>
</head>
<body>
<div class="ui-widget">
<label>FluidName: </label>
<select id="FluidName">
<option>Nitrogen</option>
<option>R134a</option>
</select>
</div>
<div class="ui-widget">
<label>Input #1: </label>
<select id="Name1">
<option value="">Select one...</option>
<option value="Pressure">Pressure [Pa]</option>
<option value="Temperature">Temperature [K]</option>
<option value="Density">Density [kg/m&#179;]</option>
</select>
<input id ='Value1'></input>
</div>
<div class="ui-widget">
<label>Input #2: </label>
<select id="Name2">
<option value="">Select one...</option>
<option value="Pressure">Pressure [Pa]</option>
<option value="Temperature">Temperature [K]</option>
<option value="Density">Density [kg/m&#179;]</option>
</select>
<input id ='Value2'></input>
</div>
<button id="calc">Calculate</button>
<div class="ui-widget">
<label>Output: </label>
</div>
<div class="ui-widget">
<p id="output">
</div>
<script>
function text2key(text)
{
if (text == 'Pressure [Pa]')
return 'P';
else if (text == 'Temperature [K]')
return 'T';
else if (text == 'Density [kg/m&#179;]')
return 'D';
}
//using jQuery
$('#calc').click( function() {
var name = $('#FluidName :selected').text()
var key1 = text2key($('#Name1 :selected').text())
var key2 = text2key($('#Name2 :selected').text())
var val1 = parseFloat($('#Value1').val())
var val2 = parseFloat($('#Value2').val())
var T = PropsSI('T', key1, val1, key2, val2, name)
var rho = PropsSI('D', key1, val1, key2, val2, name)
var p = PropsSI('P', key1, val1, key2, val2, name)
var s = PropsSI('S', key1, val1, key2, val2, name)
var h = PropsSI('H', key1, val1, key2, val2, name)
var cp = PropsSI('C', key1, val1, key2, val2, name)
text = ''
text += 'T = ' + T + ' K\n' + '<br>'
text += 'rho = ' + rho + ' kg/m&#179; <br>'
text += 'p = ' + p + ' Pa<br>'
text += 's = ' + s + ' J/kg/K<br>'
text += 'h = ' + h + ' J/kg<br>'
text += 'cp = ' + cp + ' J/kg/K<br>'
$( "#output" ).html( text);
});
</script>
</body>
</html>

View File

@@ -146,7 +146,7 @@
EXPORT_CODE double CONVENTION K2F(double T_K);
/** \brief Get the index for a parameter "T", "P", etc.
*
* @returns index The index as a long
* @returns index The index as a long. If input is invalid, returns -1
*/
EXPORT_CODE long CONVENTION get_param_index(const char *param);
/** \brief Redirect all output that would go to console (stdout) to a file

View File

@@ -228,7 +228,12 @@ EXPORT_CODE void CONVENTION set_debug_level(int level){
CoolProp::set_debug_level(level);
}
EXPORT_CODE long CONVENTION get_param_index(const char * param){
return CoolProp::get_parameter_index(param);
try{
return CoolProp::get_parameter_index(param);
}
catch(std::exception &){
return -1;
}
}
EXPORT_CODE long CONVENTION get_global_param_string(const char *param, char * Output, int n)
{
@@ -249,7 +254,13 @@ EXPORT_CODE long CONVENTION get_global_param_string(const char *param, char * Ou
}
EXPORT_CODE long CONVENTION get_parameter_information_string(const char *param, char * Output, int n)
{
int key = CoolProp::get_parameter_index(param);
int key;
try{
key = CoolProp::get_parameter_index(param);
}
catch(std::exception &){
return 0;
}
if (key >= 0){
std::string s = CoolProp::get_parameter_information(key, Output);
if (s.size() < static_cast<unsigned int>(n)){