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-08
- Revision:
- 8:95a325df1f6b
- Parent:
- 6:6f002d202f59
- Child:
- 10:3c93db1cfb12
File content as of revision 8:95a325df1f6b:
#ifndef SN_SnCommWin
#define SN_SnCommWin
#include "mbed.h"
#include <stdint.h>
#include "SnConfigFrame.h"
class SnEventFrame;
class SnPowerFrame;
// 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
};
protected:
virtual ECommWinResult SendFileContents(FILE* inf,
const SnConfigFrame& curConf,
SnEventFrame& evt,
SnPowerFrame& pow,
char* const genBuf,
uint32_t nevts,
const uint32_t timeout_clock,
const uint32_t firstEvt=0);
virtual SnConfigFrame::EDatPackBit GetCommType() const=0;
virtual int32_t ReceiveAll(char* const buf, const uint32_t mlen,
const uint32_t timeout_clock)=0;
virtual int32_t SendAll(char* const data, const uint32_t length,
const uint32_t timeout_clock)=0;
public:
virtual ~SnCommWin() {}
virtual void Set(const SnConfigFrame& conf)=0;
virtual ECommWinResult OpenWindow(const uint32_t timeout,
const bool sendStatus,
const SnConfigFrame& conf,
const SnEventFrame& evt,
const SnPowerFrame& pow,
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);
ECommWinResult GetConfig(SnConfigFrame& conf,
const uint32_t timeOut,
char* const confBuf,
const uint32_t bsize);
ECommWinResult SendStatus(const SnConfigFrame& conf,
const SnEventFrame& evt,
const SnPowerFrame& pow,
char* const genBuf,
const uint32_t timeout_clock);
ECommWinResult SendFilename(const char* fn,
char* const genBuf,
const uint32_t timeout_clock);
ECommWinResult SendData(FILE* inf, const char* infn,
const SnConfigFrame& curConf,
SnEventFrame& evt,
SnPowerFrame& pow,
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,
SnPowerFrame& pow,
char* const genBuf,
const uint32_t bsize,
const uint32_t timeout);
};
#endif // SN_SnCommWin