blob: dcc01846aea3778b067224bc9c4a00ab4de8a738 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 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:
* Alois Zoitl - initial API and implementation and/or initial documentation
*******************************************************************************/
#ifndef _SERCOMMLAYER_H_
#define _SERCOMMLAYER_H_
#include "../../core/cominfra/serialcomlayerbase.h"
#include "../gensockhand.h"
#include <termios.h>
class CPosixSerCommLayer : public CSerialComLayerBase<FORTE_SOCKET_TYPE, FORTE_INVALID_SOCKET>{
public:
CPosixSerCommLayer(forte::com_infra::CComLayer* paUpperLayer, forte::com_infra::CBaseCommFB * paFB);
virtual ~CPosixSerCommLayer();
virtual forte::com_infra::EComResponse sendData(void *paData, unsigned int paSize);
virtual forte::com_infra::EComResponse recvData(const void *paData, unsigned int paSize);
protected:
private:
virtual forte::com_infra::EComResponse openSerialConnection(const SSerialParameters& paSerialParameters, CSerialComLayerBase<FORTE_SOCKET_TYPE, FORTE_INVALID_SOCKET>::TSerialHandleType* paHandleResult);
virtual void closeConnection();
struct termios mOldTIO; //!< buffer for the existing sercom settings
};
#endif /* CSERCOMMLAYER_H_ */