Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SDFileSystemFilinfo AriSnProtocol NetServicesMin AriSnComm MODSERIAL PowerControlClkPatch DS1820OW
SnCommWin.h
- Committer:
- uci1
- Date:
- 2012-08-03
- Revision:
- 6:6f002d202f59
- Parent:
- 3:24c5f0f50bf1
- Child:
- 8:95a325df1f6b
File content as of revision 6:6f002d202f59:
#ifndef SN_SnCommWin
#define SN_SnCommWin
#include "mbed.h"
#include <stdint.h>
class SnConfigFrame;
class SnEventFrame;
// ABC for communication types
class SnCommWin {
public:
enum ECommWinResult {
kUndefFail, // undefined fail type
kCanNotConnect, // unable to connect to port
kFailTimeout, // timed out but message required
kFailNoneSent, // none of the message sent
kFailPartSent, // only part of the message sent
kUnexpectedRec, // unexpected / unhandled message received
kAllFails, // to be used for "if (ret > kAllFails) ==> success"
// only successes should go below
kConnected, // connection established, no messaging attempted
kOkMsgSent, // message sent without waiting for "received" handshake
kOkNoMsg, // timed out with no message, but that is ok
kOkWithMsg // successfully received message
};
private:
//bool fWinOpen; // whether this comm should listen
protected:
virtual SnCommWin::ECommWinResult SendFileContents(FILE* inf,
const SnConfigFrame& curConf,
SnEventFrame& evt,
char* const genBuf,
uint32_t nevts,
const uint32_t timeout_clock,
const uint32_t firstEvt=0)=0;
public:
virtual ~SnCommWin() {}
virtual ECommWinResult OpenWindow(const uint32_t timeout,
const bool sendStatus,
const SnConfigFrame& conf,
const SnEventFrame& evt,
char* const genBuf)=0;
virtual bool Connect(const uint32_t timeout)=0;
virtual ECommWinResult WaitHandshake(const uint32_t timeout,
char* const buf,
const uint32_t bsize,
uint8_t& hndShkCode)=0;
virtual ECommWinResult GetConfig(SnConfigFrame& conf,
const uint32_t timeOut,
char* const confBuf,
const uint32_t bsize)=0;
virtual ECommWinResult SendStatus(const SnConfigFrame& conf,
const SnEventFrame& evt,
char* const genBuf,
const uint32_t timeout_clock)=0;
virtual SnCommWin::ECommWinResult SendFilename(const char* fn,
char* const genBuf,
const uint32_t timeout_clock)=0;
ECommWinResult SendData(FILE* inf, const char* infn,
const SnConfigFrame& curConf,
SnEventFrame& evt,
char* const genBuf,
const uint32_t bsize,
const uint32_t nevts,
const uint32_t timeout_clock,
const uint32_t firstEvt=0);
ECommWinResult SendData(SnConfigFrame& conf,
SnEventFrame& evt,
char* const genBuf,
const uint32_t bsize,
const uint32_t timeout);
};
#endif // SN_SnCommWin