openpilot is an open source driver assistance system. openpilot performs the functions of Automated Lane Centering and Adaptive Cruise Control for over 200 supported car makes and models.
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.
 
 
 
 
 
 

65 lines
1.6 KiB

#pragma once
#include <string>
#include "J2534Connection.h"
#include "J2534Connection_CAN.h"
#include "MessageTx_ISO15765.h"
#include "MessageRx.h"
class MessageTx_ISO15765;
typedef struct {
std::string dispatched_msg;
std::string remaining_payload;
} PRESTAGED_WRITE;
class J2534Connection_ISO15765 : public J2534Connection {
public:
J2534Connection_ISO15765(
std::shared_ptr<PandaJ2534Device> panda_dev,
unsigned long ProtocolID,
unsigned long Flags,
unsigned long BaudRate
);
virtual long PassThruStartMsgFilter(unsigned long FilterType, PASSTHRU_MSG * pMaskMsg, PASSTHRU_MSG * pPatternMsg, PASSTHRU_MSG * pFlowControlMsg, unsigned long * pFilterID);
int get_matching_out_fc_filter_id(const std::string & msgdata, unsigned long flags, unsigned long flagmask);
int get_matching_in_fc_filter_id(const J2534Frame& msg, unsigned long flagmask);
virtual unsigned long validateTxMsg(PASSTHRU_MSG* msg);
virtual std::shared_ptr<MessageTx> parseMessageTx(PASSTHRU_MSG& msg);
virtual void processMessage(const J2534Frame& msg);
virtual void setBaud(unsigned long baud);
virtual void processIOCTLSetConfig(unsigned long Parameter, unsigned long Value);
virtual unsigned long processIOCTLGetConfig(unsigned long Parameter);
virtual unsigned long getMinMsgLen() {
return 4;
}
virtual unsigned long getMaxMsgLen() {
return 4099;
};
virtual unsigned long getMaxMsgSingleFrameLen() {
return 11;
}
virtual bool _is_29bit() {
return (this->Flags & CAN_29BIT_ID) == CAN_29BIT_ID;
}
virtual bool isProtoCan() {
return TRUE;
}
private:
std::array<std::shared_ptr<MessageRx>, 10> rxConversations;
unsigned int wftMax;
};