/******************************************************************************* | |
* Copyright (c) 2012 AIT, ACIN | |
* This program and the accompanying materials are made available under the | |
* terms of the Eclipse Public License 2.0 which is available at | |
* http://www.eclipse.org/legal/epl-2.0. | |
* | |
* SPDX-License-Identifier: EPL-2.0 | |
* | |
* Contributors: | |
* Filip Andren, Alois Zoitl - initial API and implementation and/or initial documentation | |
*******************************************************************************/ | |
#ifndef OPCPROCESSVAR_H_ | |
#define OPCPROCESSVAR_H_ | |
#include "windows.h" | |
#include "Variant.h" | |
#include "fortelist.h" | |
#include <forte_sync.h> | |
class COPCItem; | |
class COpcProcessVar{ | |
public: | |
enum EOpcProcessVarFunctions{ | |
e_FBInput, e_FBOutput | |
}; | |
COpcProcessVar(const char* pa_acItemGroupName, const char* pa_acItemName, EOpcProcessVarFunctions pa_eFunction); | |
~COpcProcessVar(){ | |
} | |
const char* getItemName() const { | |
return m_acItemName; | |
} | |
const char* getItemGroupName() const { | |
return m_acItemGroupName; | |
} | |
EOpcProcessVarFunctions getItemFunction() const { | |
return m_eFunction; | |
} | |
void setOpcItem(COPCItem* pa_pOpcItem){ | |
m_pOpcItem = pa_pOpcItem; | |
} | |
void sendItemData(); | |
void setNewValue(Variant pa_oNewValue); | |
Variant peekNewValue(); | |
Variant updateValue(); | |
bool getIsActive() const { | |
return m_bActive; | |
} | |
void setIsActive(bool pa_bActive){ | |
m_bActive = pa_bActive; | |
} | |
private: | |
COPCItem* m_pOpcItem; | |
const char* m_acItemGroupName; | |
const char* m_acItemName; | |
bool m_bActive; | |
Variant m_oCurrentValue; | |
typedef CSinglyLinkedList<Variant> TVariantList; | |
TVariantList m_lNewValueQueue; | |
Variant m_oNewValue; | |
CSyncObject m_oSync; | |
EOpcProcessVarFunctions m_eFunction; | |
}; | |
#endif // OPCPROCESSVAR_H_ |