42 lines
1.4 KiB
C++
42 lines
1.4 KiB
C++
#ifndef PMAC_PVT_H
|
|
#define PMAC_PVT_H
|
|
|
|
#include "asynPortDriver.h"
|
|
#include "pmacEthernetCmd.h"
|
|
|
|
#include <string>
|
|
|
|
class PmacPvt : public asynPortDriver {
|
|
public:
|
|
PmacPvt(const char *portName, int maxAddr, int interfaceMask,
|
|
int interruptMask, int asynFlags, int autoConnect, int priority,
|
|
int stackSize)
|
|
: asynPortDriver(portName, maxAddr, interfaceMask, interruptMask,
|
|
asynFlags, autoConnect, priority, stackSize);
|
|
|
|
int addr;
|
|
asynInterface int32Interface;
|
|
asynInt32 *pint32; /* The methods we're overriding */
|
|
void *int32Pvt;
|
|
asynInterface octetInterface;
|
|
asynOctet *poctet; /* The methods we're overriding */
|
|
void *octetPvt;
|
|
asynUser *pasynUser; /* For connect/disconnect reporting */
|
|
EthernetCommand poutCmd;
|
|
EthernetCommand pinCmd;
|
|
char *inBuf;
|
|
unsigned int inBufHead;
|
|
unsigned int inBufTail;
|
|
|
|
asynStatus writeOctet(asynUser *pasynUser, const char *value,
|
|
size_t maxChars, size_t *nActual) override;
|
|
asynStatus readOctet(asynUser *pasynUser, char *value, size_t maxChars,
|
|
size_t *nActual, int *eomReason) override;
|
|
asynStatus flushOctet(asynUser *pasynUser) override;
|
|
|
|
private:
|
|
asynStatus readResponse(asynUser *pasynUser, size_t maxchars,
|
|
size_t *nbytesTransfered, int *eomReason);
|
|
};
|
|
|
|
#endif |