• 大小: 43.61MB
    文件类型: .zip
    金币: 2
    下载: 3 次
    发布日期: 2023-07-29
  • 语言: 其他
  • 标签: C++  DoIp  源码  

资源简介

oIP技术,在UDS诊断服务基础上,通过TCP/IP及以太网来进行远程车辆诊断,协议定义在ISO 13400,文档中详细描述了外部测试及刷新设备如何与整车内部ECU通过以太网及TCP/IP协议进行通讯。 文档目前分三份: — Part 1: General information and use case definition — Part 2: Transport protocol and network layer services — Part 3: Wired vehicle interface based on IEEE 802.3

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include “DoIP_pc.h“

// #include “mytest.h“

int sfdVehicleIdentification = 0;
int multicastSfd = 0;
int tcpClientSfd = 0;

bool isRoutingActivation = false;
pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;

char pcIp[DOIP_IPV6_ADDR_LEN] = { 0 };
char remoteVehicleIp[DOIP_IPV6_ADDR_LEN] = { 0 };
char recvBuffer[DOIP_UDP_MESSAGE_MAX_SIZE] = { 0 };

bool getRoutingActivation()
{
    pthread_mutex_lock(&mutex);
    bool ret = isRoutingActivation;
    pthread_mutex_unlock(&mutex);
    return ret;
}

void setRoutingActivation(bool status)
{
    pthread_mutex_lock(&mutex);
    isRoutingActivation = status;
    pthread_mutex_unlock(&mutex);
}

void convertHeaderDisplay(const struct DoIPHeader& header struct HeaderDisplay& headerDisplay)
{
    char protocolVersion[UINT8_HEX + OTHER_HEX] = { 0 };
    char inverseProtocolVersion[UINT8_HEX + OTHER_HEX] = { 0 };
    char payloadType[UINT16_HEX + OTHER_HEX] = { 0 };
    char payloadLength[UINT32_HEX + OTHER_HEX] = { 0 };

    snprintf(protocolVersion UINT8_HEX + OTHER_HEX - 1 “0x%x“ header.protocolVersion);
    snprintf(inverseProtocolVersion UINT8_HEX + OTHER_HEX - 1 “0x%x“ header.inverseProtocolVersion);
    snprintf(payloadType UINT16_HEX + OTHER_HEX - 1 “0x%x“ header.payloadType);
    snprintf(payloadLength UINT32_HEX + OTHER_HEX - 1 “0x%x“ header.payloadLength);

    headerDisplay.protocolVersion = protocolVersion;
    headerDisplay.inverseProtocolVersion = inverseProtocolVersion;
    headerDisplay.payloadType = payloadType;
    headerDisplay.payloadLength = payloadLength;
}

void convertSendDisplayPort(const uint16_t srcPort const uint16_t dstPort struct SendInfoDisplay& sendDisplay)
{
    char srcPortStr[6] = { 0 };
    char dstPortStr[6] = { 0 };
    snprintf(srcPortStr 5 “%d“ srcPort);
    snprintf(dstPortStr 5 “%d“ dstPort);

    sendDisplay.srcPort = srcPortStr;
    sendDisplay.dstPort = dstPortStr;
}

bool createUdpSocket()
{
    printf(“PCDoIP::createUdpSocket create udp socket start\n“);
    sfdVehicleIdentification = socket(AF_INET6 SOCK_DGRAM IPPROTO_UDP);
    if (sfdVehicleIdentification < 0) {
        printf(“PCDoIP::createUdpSocket create udp socket failed\n“);
        return false;
    }
    
    return true;
}

bool createTcpSocket()
{
    tcpClientSfd = socket(AF_INET6 SOCK_STREAM 0);
    if (tcpClientSfd < 0) {
        printf(“VehicleDoIP::createTcpSocket create socket failed \n“);
        return false;
    }

    return true;
}

bool createMulticastSocket(const char* multicastIp uint16_t multicastPort)
{
    printf(“PCDoIP::createMulticastSocket start Multcast IP [%s] Multicast Port [%d]!\n“ multicastIp multicastPort);
    multicastSfd = socket(AF_INET6 SOCK_DGR

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-04-16 10:00  DoIP_Demo-master\
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\
     文件       39095  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\DoIP_pc.cpp
     文件        6548  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\DoIP_pc.h
     文件         456  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\Vehicle.pro
     文件       18344  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\Vehicle.pro.user
     文件          90  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\image.qrc
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\image\
     文件       77117  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\image\1.jpg
     文件         202  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\main.cpp
     文件       23699  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\mainwindow.cpp
     文件        1097  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\mainwindow.h
     文件        3015  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\mainwindow.ui
     文件        3620  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\mytest.cpp
     文件        2858  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\Vehicle\mytest.h
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\
     文件       38695  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\DoIP_pc.cpp
     文件        6548  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\DoIP_pc.h
     文件       19765  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\DoIP_vehicle.cpp
     文件         123  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\config
     文件       44224  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\pctest
     文件       23368  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo1\do_ip_Mac_02\vehicletest
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\
     文件       39095  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\DoIP_pc.cpp
     文件        6548  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\DoIP_pc.h
     文件         456  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\Vehicle.pro
     文件       18344  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\Vehicle.pro.user
     文件          90  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\image.qrc
     目录           0  2019-04-16 10:00  DoIP_Demo-master\DoIP_Demo2\Vehicle\image\
............此处省略147个文件信息

评论

共有 条评论