You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.2 KiB
54 lines
1.2 KiB
#pragma once
|
|
#include "MessageTxTimeout.h"
|
|
#include "J2534Connection_ISO15765.h"
|
|
|
|
class J2534Connection_ISO15765;
|
|
|
|
/**
|
|
A specialized message type that can handle J2534 single and multi
|
|
frame (with flow control) writes.
|
|
*/
|
|
class MessageTx_ISO15765 : public MessageTxTimeoutable
|
|
{
|
|
public:
|
|
MessageTx_ISO15765(
|
|
std::shared_ptr<J2534Connection> connection,
|
|
PASSTHRU_MSG& to_send,
|
|
std::shared_ptr<J2534MessageFilter> filter
|
|
);
|
|
|
|
unsigned int addressLength();
|
|
|
|
virtual void execute();
|
|
|
|
virtual BOOL checkTxReceipt(J2534Frame frame);
|
|
|
|
virtual BOOL isFinished();
|
|
|
|
virtual BOOL txReady();
|
|
|
|
virtual void reset();
|
|
|
|
virtual void onTimeout();
|
|
|
|
//Functions for ISO15765 flow control
|
|
|
|
void MessageTx_ISO15765::flowControlContinue(uint8_t block_size, std::chrono::microseconds separation_time);
|
|
void MessageTx_ISO15765::flowControlWait(unsigned long N_WFTmax);
|
|
void MessageTx_ISO15765::flowControlAbort();
|
|
|
|
std::shared_ptr<J2534MessageFilter> filter;
|
|
unsigned long frames_sent;
|
|
unsigned long consumed_count;
|
|
uint8_t block_size;
|
|
unsigned long CANid;
|
|
std::string data_prefix;
|
|
std::string payload;
|
|
BOOL isMultipart;
|
|
std::vector<std::string> framePayloads;
|
|
BOOL txInFlight;
|
|
BOOL sendAll;
|
|
unsigned int numWaitFrames;
|
|
BOOL didtimeout;
|
|
BOOL issuspended;
|
|
};
|
|
|