37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
#include <QString>
|
|
#include "canconfactory.h"
|
|
#include "serialbusconnection.h"
|
|
#include "gvretserial.h"
|
|
#include "mqtt_bus.h"
|
|
#include "socketcand.h"
|
|
#include "lawicel_serial.h"
|
|
#include "canserver.h"
|
|
|
|
using namespace CANCon;
|
|
|
|
CANConnection* CanConFactory::create(type pType, QString pPortName, QString pDriverName, int pSerialSpeed, int pBusSpeed, bool pCanFd, int pDataRate)
|
|
{
|
|
switch(pType) {
|
|
case SERIALBUS:
|
|
return new SerialBusConnection(pPortName, pDriverName);
|
|
case GVRET_SERIAL:
|
|
if(pPortName.contains(".") && !pPortName.contains("tty") && !pPortName.contains("serial"))
|
|
return new GVRetSerial(pPortName, true);
|
|
else
|
|
return new GVRetSerial(pPortName, false);
|
|
case REMOTE:
|
|
return new GVRetSerial(pPortName, true); //it's a special case of GVRET connected over TCP/IP so it uses the same class
|
|
case LAWICEL:
|
|
return new LAWICELSerial(pPortName, pSerialSpeed, pBusSpeed, pCanFd, pDataRate);
|
|
case KAYAK:
|
|
return new SocketCANd(pPortName);
|
|
case MQTT:
|
|
return new MQTT_BUS(pPortName);
|
|
case CANSERVER:
|
|
return new CANserver(pPortName);
|
|
default: {}
|
|
}
|
|
|
|
return nullptr;
|
|
}
|