Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members

YModemTx Class Reference
[Comms - Y-Modem (and X-Modem) transmission protocol]

#include <ymodem_tx.h>

Inheritance diagram for YModemTx:

YModem List of all members.

Detailed Description

Y-Modem transmiter object.

Definition at line 38 of file ymodem_tx.h.

Public Types

enum  TxError {
  ErrorInputStreamError = -300,
  ErrorReceiverNotBehaving = -301,
  ErrorTranferTerminatedByReceiver = -302,
  ErrorFileNameTooLong = -303
}

Public Member Functions

 YModemTx (SerialPort &port)
int SendX (InStream &in, unsigned timeout, bool kMode)
int SendY (const char *fileName, size_t size, InStream &in, unsigned timeout)

Private Member Functions

int SendInitialise (unsigned timeout)
int SendBlock (const uint8_t *data, size_t size)
int SendData (const uint8_t *data, size_t size)
int SendAll (InStream &in)
int MakeBlock0 (uint8_t *buffer, const char *fileName, size_t fileSize)
int ProcessResponse (int c)

Private Attributes

size_t BlockNumber
bool SendCRC
bool WaitForBlockACK
bool Use1KBlocks
uint8_t ModeChar
int CancelCount

Classes

class  InStream


Member Enumeration Documentation

enum YModemTx::TxError
 

Enumeration of possible error values.

Enumerator:
ErrorInputStreamError  Error with input stream
ErrorReceiverNotBehaving  Unexpected data received
ErrorTranferTerminatedByReceiver  Transfer was terminated by receiver
ErrorFileNameTooLong  File name was too long to be transmitted

Definition at line 95 of file ymodem_tx.h.


Constructor & Destructor Documentation

YModemTx::YModemTx SerialPort port  ) 
 

Construct a Y-Modem object which will transmit data over the given port.

Parameters:
port The port.

Definition at line 369 of file ymodem_tx.cpp.


Member Function Documentation

int YModemTx::SendX InStream in,
unsigned  timeout,
bool  kMode
 

Send data using X-Modem.

Parameters:
in The stream of data to send.
timeout Time in milliseconds to wait receiver to become ready.
kMode False to use 128 byte blocks, true to use 1kB blocks
Returns:
Zero if transfer was successful, or a negative error value if failed.

Definition at line 375 of file ymodem_tx.cpp.

int YModemTx::SendY const char *  fileName,
size_t  size,
InStream in,
unsigned  timeout
 

Send data using Y-Modem.

Parameters:
fileName The name of the file being transferred.
size The size of the data being transferred.
in The stream of data to send.
timeout Time in milliseconds to wait receiver to become ready.
Returns:
Zero if transfer was successful, or a negative error value if failed.

Definition at line 385 of file ymodem_tx.cpp.

int YModemTx::SendInitialise unsigned  timeout  )  [private]
 

Begin the Y-Modem transfer.

Parameters:
timeout Time in milliseconds to wait receiver to become ready.
Returns:
Zero if transfer initialisation was successful, or an error code on failure.

Definition at line 78 of file ymodem_tx.cpp.

int YModemTx::SendBlock const uint8_t data,
size_t  size
[private]
 

Send a single block of data. A zero sized block terminates the transfer.

Parameters:
data The data to transfer.
size Size of data.
Returns:
The number of transfered, or an error code on failure. The number of bytes may be less than size.
Precondition:
SendInitialise() must have been successful.

Definition at line 135 of file ymodem_tx.cpp.

int YModemTx::SendData const uint8_t data,
size_t  size
[private]
 

Send data. A zero sized block terminates the transfer.

Parameters:
data The data to transfer.
size Size of data.
Returns:
Zero if successful, or a negative error value if failed.
Precondition:
SendInitialise() must have been successful.

Definition at line 270 of file ymodem_tx.cpp.

int YModemTx::SendAll InStream in  )  [private]
 

Send an entire stread of data.

Parameters:
in The stream of data to send.
Returns:
Zero if successful, or a negative error value if failed.
Precondition:
SendInitialise() must have been successful.

Definition at line 294 of file ymodem_tx.cpp.

int YModemTx::MakeBlock0 uint8_t buffer,
const char *  fileName,
size_t  fileSize
[private]
 

Construct the data for the first block of a Y-Modem transfer.

Parameters:
[out] buffer The buffer to store the constructed block. Size must be >=128 bytes.
fileName The name of the file being transferred.
fileSize The size of the file being transferred.
Returns:
Zero if successful, or a negative error value if failed.

Definition at line 326 of file ymodem_tx.cpp.

int YModemTx::ProcessResponse int  c  )  [private]
 

Process response from receiver.

Parameters:
c Value received from InChar.
Returns:
One if received an ACKnowledge, zero if received a Negative AcKnowledge, or a negative error value.

Definition at line 54 of file ymodem_tx.cpp.


The documentation for this class was generated from the following files:
Generated by  doxygen 1.4.4