From f3e456e7ea023ba38d6125a1834449708128d078 Mon Sep 17 00:00:00 2001 From: Paul Hollinsky Date: Fri, 11 Jun 2021 13:05:39 -0400 Subject: [PATCH] API: Legacy: Fix build issues caused by the merge --- api/icsneolegacy/icsneolegacy.cpp | 483 +----------------- .../icsneo/device/tree/neovired2/neovired2.h | 2 +- 2 files changed, 27 insertions(+), 458 deletions(-) diff --git a/api/icsneolegacy/icsneolegacy.cpp b/api/icsneolegacy/icsneolegacy.cpp index 893e3ce..c44450d 100644 --- a/api/icsneolegacy/icsneolegacy.cpp +++ b/api/icsneolegacy/icsneolegacy.cpp @@ -27,9 +27,9 @@ using namespace icsneo; typedef uint64_t legacymaphandle_t; static std::map neodevices; -std::map mp_netIDToVnetOffSet = {{NETID_HSCAN, 1}, {NETID_MSCAN, 2}, {NETID_HSCAN2, 18}, {NETID_HSCAN3, 19}, {NETID_HSCAN4, 32}, {NETID_HSCAN5, 33}, {NETID_HSCAN6, 47}, {NETID_HSCAN7, 48}}; -std::map mp_HWnetIDToCMnetID = {{NETID_HSCAN, 0}, {NETID_MSCAN, 1}, {NETID_HSCAN2, 5}, {NETID_HSCAN3, 8}, {NETID_HSCAN4, 14}, {NETID_HSCAN5, 15}, {NETID_HSCAN6, 32}, {NETID_HSCAN7, 33}}; -unsigned long vnet_table[] = {0, PLASMA_SLAVE1_OFFSET, PLASMA_SLAVE2_OFFSET}; +static std::map mp_netIDToVnetOffSet = {{NETID_HSCAN, 1}, {NETID_MSCAN, 2}, {NETID_HSCAN2, 18}, {NETID_HSCAN3, 19}, {NETID_HSCAN4, 32}, {NETID_HSCAN5, 33}, {NETID_HSCAN6, 47}, {NETID_HSCAN7, 48}}; +static std::map mp_HWnetIDToCMnetID = {{NETID_HSCAN, 0}, {NETID_MSCAN, 1}, {NETID_HSCAN2, 5}, {NETID_HSCAN3, 8}, {NETID_HSCAN4, 14}, {NETID_HSCAN5, 15}, {NETID_HSCAN6, 32}, {NETID_HSCAN7, 33}}; +static unsigned long vnet_table[] = {0, PLASMA_SLAVE1_OFFSET, PLASMA_SLAVE2_OFFSET}; static NeoDevice OldNeoDeviceFromNew(const neodevice_t *newnd) { @@ -92,431 +92,55 @@ static void NeoMessageToSpyMessage(const neodevice_t *device, const neomessage_t } } -inline bool Within(size_t value, size_t min, size_t max) +static inline bool Within(size_t value, size_t min, size_t max) { return ((min <= value) && (value < max)); } -inline bool IdIsSlaveARange1(size_t fullNetid) + +static inline bool IdIsSlaveARange1(size_t fullNetid) { return Within(fullNetid, PLASMA_SLAVE1_OFFSET, PLASMA_SLAVE1_OFFSET + PLASMA_SLAVE_NUM); } -inline bool IdIsSlaveARange2(size_t fullNetid) + +static inline bool IdIsSlaveARange2(size_t fullNetid) { return Within(fullNetid, PLASMA_SLAVE1_OFFSET_RANGE2, PLASMA_SLAVE2_OFFSET_RANGE2); } -inline bool IdIsSlaveBRange1(size_t fullNetid) + +static inline bool IdIsSlaveBRange1(size_t fullNetid) { return Within(fullNetid, PLASMA_SLAVE2_OFFSET, PLASMA_SLAVE2_OFFSET + PLASMA_SLAVE_NUM); } -inline bool IdIsSlaveBRange2(unsigned int fullNetid) + +static inline bool IdIsSlaveBRange2(unsigned int fullNetid) { return Within(fullNetid, PLASMA_SLAVE2_OFFSET_RANGE2, PLASMA_SLAVE3_OFFSET_RANGE2); } -/** @return 0 for main vnet, 1 for slave1, 2 for slave2 */ -inline EPlasmaIonVnetChannel_t GetVnetPos(size_t fullNetid) -{ - if (IdIsSlaveARange1(fullNetid) || IdIsSlaveARange2(fullNetid)) - { - return PlasmaIonVnetChannelA; - } - - if (IdIsSlaveBRange1(fullNetid) || IdIsSlaveBRange2(fullNetid)) - { - return PlasmaIonVnetChannelB; - } - return PlasmaIonVnetChannelMain; -} - -inline unsigned int GetVnetNetid(size_t simpleNetId, EPlasmaIonVnetChannel_t vnetSlot) +static inline unsigned int GetVnetNetid(size_t simpleNetId, EPlasmaIonVnetChannel_t vnetSlot) { if (vnetSlot == 0 || vnetSlot > 3) return simpleNetId; return mp_netIDToVnetOffSet[simpleNetId] + vnet_table[vnetSlot]; } + /** * So if you are passing in the offset from PLASMA_SLAVE1_OFFSET or * the offset from PLASMA_SLAVE1_OFFSET2, return the vnet agnostic * netid so caller can commonize handlers without caring about WHICH slave. */ -inline unsigned int OffsetToSimpleNetworkId(size_t offset) +static inline unsigned int OffsetToSimpleNetworkId(size_t offset) { - for (auto &it : mp_netIDToVnetOffSet) + for (const auto& it : mp_netIDToVnetOffSet) { if (it.second == offset) return it.first; } - return 0; //NETID_DEVICE + return NETID_DEVICE; } -inline unsigned int GetVnetAgnosticNetid(size_t fullNetid) -{ - if (IdIsSlaveARange1(fullNetid)) - { - unsigned int off = fullNetid - PLASMA_SLAVE1_OFFSET; - return OffsetToSimpleNetworkId(off); - } - else if (IdIsSlaveARange2(fullNetid)) - { - return fullNetid - PLASMA_SLAVE1_OFFSET_RANGE2; - } - else if (IdIsSlaveBRange1(fullNetid)) - { - unsigned int off = fullNetid - PLASMA_SLAVE2_OFFSET; - return OffsetToSimpleNetworkId(off); - } - else if (IdIsSlaveBRange2(fullNetid)) - { - return fullNetid - PLASMA_SLAVE2_OFFSET_RANGE2; - } - return fullNetid; -} - -/** - * So if you are passing in a simple net id such as NETID_LIN4, - * return the offset that we can add to PLASMA_SLAVE1_OFFSET or - * PLASMA_SLAVE2_OFFSET to compute the corresponding slave netids. - */ -inline bool NetworkIdToVnetOffset_Range1(size_t simpleNetId, size_t& offset) -{ - switch (simpleNetId) - { - case NETID_DEVICE: - offset = 0; - break; - case NETID_HSCAN: - offset = 1; - break; - case NETID_MSCAN: - offset = 2; - break; - case NETID_SWCAN: - offset = 3; - break; - case NETID_LSFTCAN: - offset = 4; - break; - case NETID_FORDSCP: - offset = 5; - break; - case NETID_J1708: - offset = 6; - break; - case NETID_AUX: - offset = 7; - break; - case NETID_JVPW: - offset = 8; - break; - case NETID_ISO: - offset = 9; - break; - case NETID_ISOPIC: - offset = 10; - break; - case NETID_MAIN51: - offset = 11; - break; - case NETID_RED: - offset = 12; - break; - case NETID_SCI: - offset = 13; - break; - case NETID_ISO2: - offset = 14; - break; - case NETID_ISO14230: - offset = 15; - break; - case NETID_LIN: - offset = 16; - break; - case NETID_ISO3: - offset = 17; - break; - case NETID_HSCAN2: - offset = 18; - break; - case NETID_HSCAN3: - offset = 19; - break; - case NETID_ISO4: - offset = 20; - break; - case NETID_LIN2: - offset = 21; - break; - case NETID_LIN3: - offset = 22; - break; - case NETID_LIN4: - offset = 23; - break; - case NETID_MOST: - offset = 24; - break; - case NETID_CGI: - offset = 25; - break; - case NETID_I2C1: - offset = 26; - break; - case NETID_SPI1: - offset = 27; - break; - case NETID_FLEXRAY1A: - offset = 28; - break; - case NETID_MOST25: - offset = 29; - break; - case NETID_MOST50: - offset = 30; - break; - case NETID_MOST150: - offset = 31; - break; - case NETID_HSCAN4: - offset = 32; - break; - case NETID_HSCAN5: - offset = 33; - break; - case NETID_RS232: - offset = 34; - break; - case NETID_UART: - offset = 35; - break; - case NETID_UART2: - offset = 36; - break; - case NETID_UART3: - offset = 37; - break; - case NETID_UART4: - offset = 38; - break; - case NETID_SWCAN2: - offset = 39; - break; - case NETID_FLEXRAY1B: - offset = 40; - break; - case NETID_FLEXRAY2A: - offset = 41; - break; - case NETID_FLEXRAY2B: - offset = 42; - break; - case NETID_LIN5: - offset = 43; - break; - case NETID_ETHERNET: - offset = 44; - break; - case NETID_ETHERNET_DAQ: - offset = 45; - break; - case NETID_RED_APP_ERROR: - offset = 46; - break; - case NETID_HSCAN6: - offset = 47; - break; - case NETID_HSCAN7: - offset = 48; - break; - case NETID_LIN6: - offset = 49; - break; - case NETID_LSFTCAN2: - offset = 50; - break; - default: - /* there is no decoding for the provided id */ - offset = 0; - return false; - } - return true; -} - -inline bool Within(size_t value, size_t min, size_t max) -{ - return ((min <= value) && (value < max)); -} -inline bool IdIsSlaveARange1(size_t fullNetid) -{ - return Within(fullNetid, PLASMA_SLAVE1_OFFSET, PLASMA_SLAVE1_OFFSET + PLASMA_SLAVE_NUM); -} -inline bool IdIsSlaveARange2(size_t fullNetid) -{ - return Within(fullNetid, PLASMA_SLAVE1_OFFSET_RANGE2, PLASMA_SLAVE2_OFFSET_RANGE2); -} -inline bool IdIsSlaveBRange1(size_t fullNetid) -{ - return Within(fullNetid, PLASMA_SLAVE2_OFFSET, PLASMA_SLAVE2_OFFSET + PLASMA_SLAVE_NUM); -} -inline bool IdIsSlaveBRange2(unsigned int fullNetid) -{ - return Within(fullNetid, PLASMA_SLAVE2_OFFSET_RANGE2, PLASMA_SLAVE3_OFFSET_RANGE2); -} - -/** @return 0 for main vnet, 1 for slave1, 2 for slave2 */ -inline EPlasmaIonVnetChannel_t GetVnetPos(size_t fullNetid) -{ - if (IdIsSlaveARange1(fullNetid) || IdIsSlaveARange2(fullNetid)) - { - return PlasmaIonVnetChannelA; - } - - if (IdIsSlaveBRange1(fullNetid) || IdIsSlaveBRange2(fullNetid)) - { - return PlasmaIonVnetChannelB; - } - return PlasmaIonVnetChannelMain; -} - -inline unsigned int GetVnetNetid(size_t simpleNetId, EPlasmaIonVnetChannel_t vnetSlot) -{ - if (vnetSlot > 3) - return simpleNetId; - - if (vnetSlot == 0) - return simpleNetId; - - unsigned int offset = 0; - if (NetworkIdToVnetOffset_Range1(simpleNetId, offset)) - { - /* simpleNetId was one of the original networks mapped to slaves */ - unsigned long table[] = { 0, PLASMA_SLAVE1_OFFSET, PLASMA_SLAVE2_OFFSET }; - return offset + table[vnetSlot]; - } - else - { - /* simpleNetid has the simpler offset scheme */ - unsigned long table[] = { 0, PLASMA_SLAVE1_OFFSET_RANGE2, PLASMA_SLAVE2_OFFSET_RANGE2 }; - return simpleNetId + table[vnetSlot]; - } -} -/** - * So if you are passing in the offset from PLASMA_SLAVE1_OFFSET or - * the offset from PLASMA_SLAVE1_OFFSET2, return the vnet agnostic - * netid so caller can commonize handlers without caring about WHICH slave. - */ -inline unsigned int OffsetToSimpleNetworkId(size_t offset) -{ - switch (offset) - { - default: - case 0: - return NETID_DEVICE; - case 1: - return NETID_HSCAN; - case 2: - return NETID_MSCAN; - case 3: - return NETID_SWCAN; - case 4: - return NETID_LSFTCAN; - case 5: - return NETID_FORDSCP; - case 6: - return NETID_J1708; - case 7: - return NETID_AUX; - case 8: - return NETID_JVPW; - case 9: - return NETID_ISO; - case 10: - return NETID_ISOPIC; - case 11: - return NETID_MAIN51; - case 12: - return NETID_RED; - case 13: - return NETID_SCI; - case 14: - return NETID_ISO2; - case 15: - return NETID_ISO14230; - case 16: - return NETID_LIN; - case 17: - return NETID_ISO3; - case 18: - return NETID_HSCAN2; - case 19: - return NETID_HSCAN3; - case 20: - return NETID_ISO4; - case 21: - return NETID_LIN2; - case 22: - return NETID_LIN3; - case 23: - return NETID_LIN4; - case 24: - return NETID_MOST; - case 25: - return NETID_CGI; - case 26: - return NETID_I2C1; - case 27: - return NETID_SPI1; - case 28: - return NETID_FLEXRAY1A; - case 29: - return NETID_MOST25; - case 30: - return NETID_MOST50; - case 31: - return NETID_MOST150; - case 32: - return NETID_HSCAN4; - case 33: - return NETID_HSCAN5; - case 34: - return NETID_RS232; - case 35: - return NETID_UART; - case 36: - return NETID_UART2; - case 37: - return NETID_UART3; - case 38: - return NETID_UART4; - case 39: - return NETID_SWCAN2; - case 40: - return NETID_FLEXRAY1B; - case 41: - return NETID_FLEXRAY2A; - case 42: - return NETID_FLEXRAY2B; - case 43: - return NETID_LIN5; - case 44: - return NETID_ETHERNET; - case 45: - return NETID_ETHERNET_DAQ; - case 46: - return NETID_RED_APP_ERROR; - case 47: - return NETID_HSCAN6; - case 48: - return NETID_HSCAN7; - case 49: - return NETID_LIN6; - case 50: - return NETID_LSFTCAN2; - } -} - -inline unsigned int GetVnetAgnosticNetid(size_t fullNetid) +static inline unsigned int GetVnetAgnosticNetid(size_t fullNetid) { if (IdIsSlaveARange1(fullNetid)) { @@ -548,7 +172,7 @@ int LegacyDLLExport icsneoFindDevices(NeoDeviceEx *devs, int *devCount, unsigned size_t Count = 0; - icsneoFindNeoDevices(NULL, Nd, &NumDevices); + icsneoFindNeoDevices(0, Nd, &NumDevices); if (NumDevices > 0) { @@ -1018,14 +642,16 @@ int LegacyDLLExport icsneoGetSerialNumber(void *hObject, unsigned int *iSerialNu return true; } -int LegacyDLLExport icsneoEnableDOIPLine(void* hObject, bool enable) { +int LegacyDLLExport icsneoEnableDOIPLine(void* hObject, bool enable) +{ if(!icsneoValidateHObject(hObject)) return false; neodevice_t* device = (neodevice_t*)hObject; return icsneo_setDigitalIO(device, ICSNEO_IO_ETH_ACTIVATION, 1, enable); } -int LegacyDLLExport icsneoStartSockServer(void* hObject, int iPort) { +int LegacyDLLExport icsneoStartSockServer(void* hObject, int iPort) +{ // TODO Implement return false; } @@ -1134,37 +760,6 @@ int LegacyDLLExport icsneoOpenNeoDeviceByChannels(NeoDevice *pNeoDevice, void ** return false; } -int LegacyDLLExport icsneoOpenDevice(NeoDeviceEx *pNeoDeviceEx, - void **hObject, - unsigned char *bNetworkIDs, - int bConfigRead, - int iOptions, - OptionsOpenNeoEx *stOptionsOpenNeoEx, - unsigned long reserved) -{ - if (pNeoDeviceEx == nullptr || hObject == nullptr) - return false; - - neodevice_t *device; - try - { - device = &neodevices.at(uint64_t(pNeoDeviceEx->neoDevice.Handle) << 32 | pNeoDeviceEx->neoDevice.SerialNumber); - } - catch (std::out_of_range &e) - { - (void)e; // Unused - return false; - } - - *hObject = device; - if (!icsneo_openDevice(device)) - return false; - - icsneo_setPollingMessageLimit(device, 20000); - icsneo_enableMessagePolling(device); - return icsneo_goOnline(device); -} - int LegacyDLLExport icsneoGetVCAN4Settings(void *hObject, SVCAN4Settings *pSettings, int iNumBytes) { if (!icsneoValidateHObject(hObject)) @@ -1196,9 +791,7 @@ int LegacyDLLExport icsneoGetDeviceSettingsType(void *hObject, EPlasmaIonVnetCha return 0; if ((PlasmaIonVnetChannelMain != vnetSlot) && (ulDeviceType != NEODEVICE_PLASMA) && (ulDeviceType != NEODEVICE_ION)) - { return 0; - } switch (ulDeviceType) { @@ -1415,17 +1008,8 @@ int LegacyDLLExport icsneoGetDLLFirmwareInfoEx(void *hObject, stAPIFirmwareInfo int LegacyDLLExport icsneoJ2534Cmd(void *hObject, unsigned char *CmdBuf, short Len, void *pVoid) { - bool bCurrentSetting, bHSSWCANRate, bRetVal, bTermination, bFormat; - unsigned long *pTmp, Baud; - int iRetVal = 0, NetworkID; - ISO9141NetworkParms* pISOParms; - EPlasmaIonVnetChannel_t pos; - - unsigned long *pTmp, Baud; - - int iRetVal = 0, NetworkID; - - ISO9141NetworkParms* pISOParms; + unsigned long *pTmp = nullptr; + int iRetVal = 0, iNumBytes = 0, NetworkID; if (!icsneoValidateHObject(hObject)) return false; @@ -1446,7 +1030,6 @@ int LegacyDLLExport icsneoJ2534Cmd(void *hObject, unsigned char *CmdBuf, short L case J2534NVCMD_GetNetworkBaudRate: - double dBaud; pTmp = (uint64_t *)&CmdBuf[1]; NetworkID = (uint16_t)*pTmp; pTmp = (uint64_t *)&CmdBuf[5]; @@ -1482,7 +1065,6 @@ int LegacyDLLExport icsneoJ2534Cmd(void *hObject, unsigned char *CmdBuf, short L NetworkID = (uint16_t)*pTmp; pTmp = (uint64_t *)&CmdBuf[5]; - pos = GetVnetPos(NetworkID); switch (device->type) { case NEODEVICE_FIRE2: @@ -1504,7 +1086,6 @@ int LegacyDLLExport icsneoJ2534Cmd(void *hObject, unsigned char *CmdBuf, short L NetworkID = (uint16_t)*pTmp; pTmp = (uint64_t *)&CmdBuf[5]; - pos = GetVnetPos(NetworkID); switch (device->type) { case NEODEVICE_FIRE2: @@ -1521,7 +1102,7 @@ int LegacyDLLExport icsneoJ2534Cmd(void *hObject, unsigned char *CmdBuf, short L else /*Termination OFF*/ Cs.termination_enables &= ~(1ull << CoremininetID); - iRetVal = icsneoSetFire2Settings(hObject, &Cs, iNumBytes, ConfigurationOptionDoNotSaveToEEPROM); + iRetVal = icsneoSetFire2Settings(hObject, &Cs, iNumBytes, 1 /* ConfigurationOptionDoNotSaveToEEPROM */); } break; } @@ -1575,14 +1156,6 @@ int LegacyDLLExport icsneoFirmwareUpdateRequired(void *hObject) return false; } -int LegacyDLLExport icsneoSetFDBitRate(void *hObject, int BitRate, int NetworkID) -{ - neodevice_t *device = (neodevice_t *)hObject; - if (!icsneo_setFDBaudrate(device, (uint16_t)NetworkID, BitRate)) - return false; - return icsneo_settingsApply(device); -} - void LegacyDLLExport icsneoGetDLLVersionEx(unsigned long *dwMSVersion, unsigned long *dwLSVersion) { return; @@ -1607,10 +1180,6 @@ int LegacyDLLExport icsneoSerialNumberFromString(unsigned long *serial, char *da return false; } -int LegacyDLLExport icsneoEnableDOIPLine(void *hObject, bool bActivate) -{ - return false; -} int LegacyDLLExport icsneoGetMiniportAdapterInfo(void *hObject, NETWORK_ADAPTER_INFO *aInfo) { return false; diff --git a/include/icsneo/device/tree/neovired2/neovired2.h b/include/icsneo/device/tree/neovired2/neovired2.h index 93cc464..fdb9df7 100644 --- a/include/icsneo/device/tree/neovired2/neovired2.h +++ b/include/icsneo/device/tree/neovired2/neovired2.h @@ -25,7 +25,7 @@ public: if (!fakedev->com->decoder->decode(msg, packet)) continue; // We failed to decode this packet - if(!msg || msg->type != Message::Type::Main51) + if(!msg || msg->network.getNetID() != Network::NetID::Main51) continue; // Not a message we care about auto sn = std::dynamic_pointer_cast(msg); if(!sn)