| /******************************************************************************* |
| * Copyright (c) 2019 fortiss GmbH |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Jose Cabral - initial implementation and rework communication infrastructure |
| *******************************************************************************/ |
| |
| #include <opcua_helper.h> |
| #ifdef FORTE_ENABLE_GENERATED_SOURCE_CPP |
| #include "opcua_types_gen.cpp" |
| #endif |
| ${FORTE_OPCUA_EXTERNAL_TYPES_INCLUDE} |
| |
| const COPC_UA_Helper::UA_TypeConvert_external COPC_UA_Helper::scmExternalMapForteTypeIdToOpcUa[] = { |
| ${FORTE_OPCUA_EXTERNAL_TYPES_MAP_INSERT} |
| }; |
| |
| const UA_DataType *COPC_UA_Helper::getExternalOPCUATypeFromAny(const CIEC_ANY &paAnyType) { |
| CIEC_ANY::EDataTypeID typeId = paAnyType.getDataTypeID(); |
| if(CIEC_ANY::e_STRUCT == typeId) { |
| CStringDictionary::TStringId typeOfStructure = static_cast<const CIEC_STRUCT&>(paAnyType).getStructTypeNameID(); |
| for(size_t i = 0; i < sizeof(scmExternalMapForteTypeIdToOpcUa) / sizeof(UA_TypeConvert_external); i++) { |
| if(scmExternalMapForteTypeIdToOpcUa[i].mStringId == typeOfStructure) { |
| return scmExternalMapForteTypeIdToOpcUa[i].mType; |
| } |
| } |
| } |
| return 0; |
| } |
| |