blob: b31a13883f51d10cb7e01728e87809b7bf91900d [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2017 ACIN, fortiss GmbH
* 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, Alois Zoitl - initial API and implementation and/or initial documentation
*******************************************************************************/
#include <winsock2.h> //to ensure that this is first included in the commlayermanager
#include <windows.h>
#include "../../../core/cominfra/serialcomlayerbase.h"
#ifndef CWIN32SERCOMLAYER_H_
#define CWIN32SERCOMLAYER_H_
class CWin32SerComLayer : public CSerialComLayerBase<HANDLE>{
public:
CWin32SerComLayer(forte::com_infra::CComLayer* paUpperLayer, forte::com_infra::CBaseCommFB * paFB);
virtual ~CWin32SerComLayer ();
/*! \brief Perform send to serial interface
* \param pa_pvData Sendable payload
* \param pa_unSize Payload size in bytes
*
* \return ComLayer response
*/
virtual forte::com_infra::EComResponse sendData(void *paData, unsigned int paSize);
/*! \brief Perform reading from serial interface
*
* @return if not e_Nothing something was read and the FB should get an external event
*/
virtual forte::com_infra::EComResponse recvData(const void *paData, unsigned int paSize);
protected:
private:
virtual forte::com_infra::EComResponse openSerialConnection(const SSerialParameters& paSerialParameters, CSerialComLayerBase<HANDLE>::TSerialHandleType* paHandleResult);
virtual void closeConnection();
};
#endif /* CWIN32SERCOMLAYER_H_ */