2 Copyright (C) 2012 Modelon AB
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the BSD style license.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 FMILIB_License.txt file for more details.
12 You should have received a copy of the FMILIB_License.txt file
13 along with this program. If not, contact Modelon AB <http://www.modelon.com>.
16 #include "fmi1_import_impl.h"
18 fmi1_import_unit_t* fmi1_import_get_unit(fmi1_import_unit_definitions_t* ud, unsigned int index) {
19 return fmi1_xml_get_unit(ud, index);
22 const char* fmi1_import_get_unit_name(fmi1_import_unit_t* u) {
23 return fmi1_xml_get_unit_name(u);
26 unsigned int fmi1_import_get_unit_display_unit_number(fmi1_import_unit_t* u) {
27 return fmi1_xml_get_unit_display_unit_number(u);
30 fmi1_import_display_unit_t* fmi1_import_get_unit_display_unit(fmi1_import_unit_t* u, size_t index) {
31 return fmi1_xml_get_unit_display_unit(u, index);
34 fmi1_import_unit_t* fmi1_import_get_base_unit(fmi1_import_display_unit_t* du) {
35 return fmi1_xml_get_base_unit(du);
38 const char* fmi1_import_get_display_unit_name(fmi1_import_display_unit_t* du) {
39 return fmi1_xml_get_display_unit_name(du);
42 fmi1_real_t fmi1_import_get_display_unit_gain(fmi1_import_display_unit_t* du) {
43 return fmi1_xml_get_display_unit_gain(du);
46 fmi1_real_t fmi1_import_get_display_unit_offset(fmi1_import_display_unit_t* du) {
47 return fmi1_xml_get_display_unit_offset(du);
50 fmi1_real_t fmi1_import_convert_to_display_unit(fmi1_real_t val , fmi1_import_display_unit_t* du, int isRelativeQuantity) {
51 double gain = fmi1_import_get_display_unit_gain(du);
52 double offset = fmi1_import_get_display_unit_offset(du);
53 if(isRelativeQuantity)
56 return (val*gain + offset);
59 fmi1_real_t fmi1_import_convert_from_display_unit(fmi1_real_t val, fmi1_import_display_unit_t* du, int isRelativeQuantity) {
60 double gain = fmi1_import_get_display_unit_gain(du);
61 double offset = fmi1_import_get_display_unit_offset(du);
62 if(isRelativeQuantity)
65 return (val - offset)/gain;