blob: e25a76aa595c97bd4ea6aa224858c3647d91291b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 TU Wien/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:
* Martin Melik-Merkumians - initial contribution
* Martin Melik-Merkumians - adds Byte and LWord functions
*******************************************************************************/
#ifndef SRC_MODULES_ADS_CADSPROCESSINTERFACE_H_
#define SRC_MODULES_ADS_CADSPROCESSINTERFACE_H_
#include "../../stdfblib/io/processinterfacebase.h"
#include "CAdsConnectionManager.h"
namespace forte {
namespace ads {
class CAdsProcessInterface : public CProcessInterfaceBase{
public:
CAdsProcessInterface(CResource *paSrcRes, const SFBInterfaceSpec *paInterfaceSpec, const CStringDictionary::TStringId paInstanceNameId, TForteByte *paFBConnData, TForteByte *paFBVarsData);
virtual ~CAdsProcessInterface();
protected:
bool initialise(bool paIsInput);
bool deinitialise();
bool writePin();
bool readPin();
bool writeByte();
bool readByte();
bool writeWord();
bool readWord();
bool writeDWord();
bool readDWord();
#ifdef FORTE_USE_64BIT_DATATYPES
bool writeLWord();
bool readLWord();
#endif /* FORTE_USE_64BIT_DATATYPES */
private:
std::string mFriendlyAdsServerName;
std::string mAdsVariableName;
uint32_t mAdsHandle;
};
}
}
#endif /* SRC_MODULES_ADS_CADSPROCESSINTERFACE_H_ */