BPNGClientLib
Library for accessing the Telemotive data logger devices
IBPNGClient.h
Go to the documentation of this file.
1 //******************************************************************************
2 //******************************************************************************
10 //******************************************************************************
11 //******************************************************************************
12 
13 #ifndef IBPNGCLIENT_H
14 #define IBPNGCLIENT_H
15 
16 #include "BPNGDefines.h"
17 #include "RdbDefines.h"
18 #include "IClientProperties.h"
19 #include "IBPNGClientListener.h"
20 
21 extern "C" {
22  //==================================================================================================
38  //==================================================================================================
39 
40 
41  struct IBPNGClient
42  {
43  //==================================================================================================
44  // Connection functions
45 
47 
58  virtual void WINAPI scanNetworkForLogger() = 0;
59 
61 
67  virtual void WINAPI activateGatewayLoggerDetection() = 0;
68 
70 
85  virtual void WINAPI setDevice(const OnlineLoggerInfo &device) = 0;
86 
88 
106  virtual void WINAPI setTSLCluster(TSLCluster cluster) = 0;
107 
109 
114  virtual BOOL WINAPI setOfflineData(const char* path) = 0;
115 
117  virtual BOOL WINAPI connect() = 0;
118 
119 
121 
134  virtual BOOL WINAPI connectLogger(int numLogger, OnlineLoggerInfo* devices) = 0;
135 
137  virtual void WINAPI disconnectLogger() = 0;
138 
140  virtual BOOL WINAPI isConnected() = 0;
141 
142 
143  //==================================================================================================
144  // Initialization
145 
147  virtual void WINAPI registerAll() = 0;
148 
150 
162  virtual BOOL WINAPI initialize() = 0;
163 
164  //==================================================================================================
165  // Download functions
166 
168 
185  virtual int WINAPI downloadDataSpans(uint16_t numSpans, DataSpan* dataSpans, const char* target, BOOL doSorting ) = 0;
186 
187  // Download trace data
196  virtual int WINAPI startLiveDownload(uint64_t startTimeStamp, const char* target) = 0;
197 
198  //==================================================================================================
199  // Conversion functions
200 
202  virtual IConversionSet* WINAPI createNewConversionSet() = 0;
203 
205 
221  virtual int WINAPI convertData(IConversionSet* conversionSet, const char* target) = 0;
222 
223 
224  //==================================================================================================
225  // config functions
226 
228 
248  virtual BOOL WINAPI getConfig(const char* path) = 0;
249 
251 
277  virtual BOOL WINAPI reconfigLogger(int numLogger, OnlineLoggerInfoStringPair *loggerConfigPathPairs, const char* xsdVersionOfConfig = nullptr) = 0;
278 
280 
287  virtual BOOL WINAPI setDefaultConfig() = 0;
288 
289 
290  //==================================================================================================
291  // miscellaneous functions
292 
294 
298  virtual IRdbEventList* WINAPI getEventList() = 0;
299 
301 
304  virtual IRdbTraceBlockList* WINAPI getTraceBlockList() = 0;
305 
307 
311  virtual BOOL WINAPI synchronizeRdb() = 0;
312 
314  virtual const char* WINAPI getInstanceName() = 0;
315 
317  virtual int WINAPI getInstanceId() = 0;
318 
320 
329  virtual const char* WINAPI getReferenceDataBasePath() = 0;
330 
332 
343  virtual const char* WINAPI getConfigPath() = 0;
344 
346 
352  virtual const char* WINAPI getDeviceName() = 0;
353 
355 
362  virtual const IChannelList* WINAPI getLoggerChannels() = 0;
363 
364  /*
365  * Deliver BMW information and associated channels.
366  * The list contains channels only if their containerId >= 0 and therefor configured.
367  * The channelList delivered by IBPNGClient::getLoggerChannels() exists at this moment
368  @sa ITesttoolsChannelList
369  */
370  virtual const ITesttoolsChannelList* WINAPI getLoggerTesttoolsChannels() = 0;
371 
373 
382  virtual BOOL WINAPI getVersions(OnlineLoggerInfoStringPair *versionPairs) = 0;
383 
385  virtual const char* WINAPI getTMTVersion() = 0;
386 
388 
397  virtual BOOL WINAPI updateFirmware(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair, BOOL force) = 0;
398 
399  virtual BOOL WINAPI updatePBFirmware(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair, BOOL force) = 0;
400 
401  virtual const char* WINAPI getInternalPBVersion(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair) = 0;
402 
403  //function used for user's authentification.
404  virtual BOOL WINAPI isUserAuthentificated(PwdPrivilegesFuncId actionName) = 0;
405 
407 
413  virtual BOOL WINAPI updateLicenses(OnlineLoggerInfoStringPair *loggerLicenseFilePair) = 0;
414 
416 
420  virtual const char* WINAPI getLicenses(unsigned deviceMbnr) = 0;
421 
423 
428  virtual BOOL WINAPI removeAllLicenses() = 0;
429 
430 
432 
445  virtual int WINAPI deleteSectionsByStartUpIds(uint16_t numStartUpIds, uint64_t* startupIds) = 0;
446 
448 
452  virtual int WINAPI deleteAllData() = 0;
453 
455 
461  virtual BOOL WINAPI setInfoEvent(const char* msg) = 0;
462 
464 
470  virtual BOOL WINAPI setMarker() = 0;
471 
473  virtual int WINAPI getCurrentLoggerTime() = 0;
474 
476 
481  virtual int WINAPI setTime(int time) = 0;
482 
484 
496  virtual void WINAPI keepLoggerAlive(const char* ip) = 0;
497 
499  virtual void WINAPI stopKeepLoggerAlive(const char* ip) = 0;
500 
501 
503  virtual OnlineLoggerInfo* WINAPI getOnlineLoggerInfo(const char* ip) = 0;
504 
506 
510  virtual IFormatList* WINAPI getAvailableFormats() = 0;
511 
513 
518  virtual void WINAPI flashDeviceLED() = 0;
519 
521  virtual int WINAPI createCCPXCPSeqFile(const char* xsdDir, const char* xmlDir, bool forceFlag) = 0;
522 
524  virtual int WINAPI createCCPXCPDbcFiles(const char* dbcDir, const char* xsdDir, const char* xmlDir) = 0;
525 
527 
533  virtual const IFalseMeasureSignalList* WINAPI getFalseMeasureSignals() = 0;
534 
536  virtual void WINAPI addListener(IBPNGClientListener* listener) = 0;
537 
539  virtual void WINAPI removeListener(IBPNGClientListener* listener) = 0;
540 
542 
548  virtual BPNGError WINAPI getLastError() = 0;
549 
551 
559  virtual int WINAPI getNumConversionErrors() = 0;
560 
562 
566  virtual BPNGError WINAPI getConversionError(int index) = 0;
567 
569 
577  virtual int WINAPI getNumDownloadErrors() = 0;
578 
580 
584  virtual BPNGError WINAPI getDownloadError(int index) = 0;
585 
587  virtual const char* WINAPI getFWVersion() = 0;
588 
590 
597  virtual void WINAPI release() = 0;
598 
599  // Returns a copy of the current client properties
603  virtual IClientProperties* WINAPI getClientProperties() = 0;
604 
605  // Set client properties
611  virtual void WINAPI setClientProperties(IClientProperties* properties) = 0;
612 
614  virtual void WINAPI saveProperties(const char* pathToIniFile) = 0;
615 
617  virtual void WINAPI loadProperties(const char* pathToIniFile) = 0;
618 
620 
625  virtual void WINAPI clearDBCFileAssignments() = 0;
626 
628  virtual void WINAPI clearDatabaseFileAssignments() = 0;
629 
631 
639  virtual void WINAPI assignDBCFile(int channelIndexCAN, const char* dbcFilePath) = 0;
640 
642 
650  virtual void WINAPI assignDatabaseFile(ChannelType channelType, int channelIndex, const char* databaseFilePath) = 0;
651 
653  virtual int WINAPI resetMarkerCounter() = 0;
654 
662  virtual int WINAPI setPwdFile(const char* path, unsigned targetMbnr) = 0;
663 
670  virtual const char* WINAPI getPwdFile(unsigned sourceMbnr) = 0;
671 
678  virtual BOOL WINAPI isPasswordProtectionSupported(unsigned deviceMbnr) = 0;
679 
681 
691  virtual int WINAPI downloadBugReport(const char* targetPath, BPNGBugreportMode mode, uint64_t startTime, uint64_t endTime) = 0;
692 
694 
698  virtual int WINAPI restartDevice(BOOL waitForRestart) = 0;
699 
701 
704  virtual int WINAPI shutdownDevice() = 0;
705 
707 
713  virtual BOOL WINAPI getMemoryFillLevel(MemoryFillLevel* fillLevel) = 0;
714 
716  virtual BOOL WINAPI convertFileNameTimeStampsToLocalTime(const char* pathToOfflineDataSet) = 0;
717 
719 
725  virtual BOOL WINAPI filterSignals(const char* pathToFilterSettings, const char* targetPath) = 0;
726 
728 
735  virtual BOOL WINAPI filterSignalsFromOfflineData(const char* pathToOfflineDataSet, const char* pathToFilterSettings, const char* targetPath) = 0;
736 
737 
739 
747  virtual int WINAPI createTestReport(IConversionSet* conversionSet, const char* target) = 0;
748 
750 
753  virtual void WINAPI enableClientLogOutput() = 0;
754  };
755 
757  DECLDIR const char* WINAPI getLibVersion();
758 
759 
761 
766  DECLDIR IBPNGClient* WINAPI getBPNGClient(const char* name = "");
767 
771  DECLDIR BPNGErrCode WINAPI getNumTSLMemberFromOfflineDataSet(const char* offlinePath, int* numMember);
772 
773 
775  DECLDIR void WINAPI setTempDir(const char* tmp);
776  DECLDIR const char* WINAPI getTempDir();
777 
779  DECLDIR void WINAPI setLanguageID(LanguageID id);
780 
782  DECLDIR IConversionSet* WINAPI createNewConversionSet();
783 
787  DECLDIR void WINAPI freeConversionSetMemory(IConversionSet* convSet);
788 
789  // Creates and returns a pointer to a new ClientProperties object with default settings
796 
800  DECLDIR void WINAPI freeClientPropertiesMemory(IClientProperties* prop);
801 
806  DECLDIR void WINAPI writeLogFile(const char* path, int maxSizeInByte, int numBackupFiles);
807 
810  DECLDIR void WINAPI writeLogToCout(bool flag);
811 
812  // For debug purpose all logs can also be forwarded to the microsoft OutputDebugString() functions.
813  // Those outputs can be catched from the SYSINTERNALS SOFTWARE DebugView.exe (www.sysinternals.com)
814  DECLDIR void WINAPI writeLogToDebugView(bool flag);
815 
817 
827  DECLDIR void WINAPI addLogListener(onLogRequest logFunc);
828 
830  DECLDIR void WINAPI removeLogListener(onLogRequest logFunc);
831 
841 
842 } // end of extern_C
843 
844 #endif // IBPNGCLIENT_H
virtual BPNGError WINAPI getConversionError(int index)=0
Returns the conversion error at index.
virtual BOOL WINAPI connect()=0
Connect to device or TSL set by setDevice() or setTSLCluster()
Channel list interface.
Definition: BPNGDefines.h:478
virtual const char *WINAPI getDeviceName()=0
Get name of device.
ChannelType
Currently supported interfaces.
Definition: BPNGDefines.h:302
virtual int WINAPI deleteSectionsByStartUpIds(uint16_t numStartUpIds, uint64_t *startupIds)=0
Delete trace data.
The IClientProperties interface replaces the deprecated ClientProperties struct.
Definition: IClientProperties.h:22
virtual void WINAPI scanNetworkForLogger()=0
Scan network for logger.
virtual BOOL WINAPI getVersions(OnlineLoggerInfoStringPair *versionPairs)=0
Get the firmware and hardware version.
Struct with information about a logger found in LAN/WLAN used to notify IBPNGClientListener about det...
Definition: BPNGDefines.h:655
virtual int WINAPI deleteAllData()=0
Delete all trace data on the logger.
virtual void WINAPI activateGatewayLoggerDetection()=0
Activates the detection of devices connected to a different subnet.
virtual const char *WINAPI getConfigPath()=0
Get path to the config directory (after calling one of the init functions)
virtual IClientProperties *WINAPI getClientProperties()=0
virtual BOOL WINAPI updateLicenses(OnlineLoggerInfoStringPair *loggerLicenseFilePair)=0
Update licenses.
virtual const char *WINAPI getPwdFile(unsigned sourceMbnr)=0
virtual int WINAPI createTestReport(IConversionSet *conversionSet, const char *target)=0
easy track test report creation
virtual int WINAPI downloadDataSpans(uint16_t numSpans, DataSpan *dataSpans, const char *target, BOOL doSorting)=0
Download trace data.
virtual void WINAPI assignDatabaseFile(ChannelType channelType, int channelIndex, const char *databaseFilePath)=0
Assign a database file to a channel. Multiple files for one channel are allowed, but double used mess...
DECLDIR const char *WINAPI getLibVersion()
Returns the current client library version.
virtual BOOL WINAPI removeAllLicenses()=0
Removes the current license file from the logger.
Definition: IBPNGClientListener.h:25
virtual BOOL WINAPI isConnected()=0
Check the logger connection, returns 1 for valid connection and 0 for no or broken connection...
DECLDIR void WINAPI writeLogFile(const char *path, int maxSizeInByte, int numBackupFiles)
virtual int WINAPI restartDevice(BOOL waitForRestart)=0
restarts the device or TSL
virtual void WINAPI release()=0
Free memory of this IBPNGClient instance.
DECLDIR IBPNGClient *WINAPI getBPNGClient(const char *name="")
Factory function that creates instances of BPNGClient giving away ownership.
virtual int WINAPI setTime(int time)=0
Set logger time and date to the passed UTC time stamp.
virtual const char *WINAPI getLicenses(unsigned deviceMbnr)=0
Returns the license file's content of the specified device as string.
Interface for client properties.
virtual BOOL WINAPI getMemoryFillLevel(MemoryFillLevel *fillLevel)=0
get memory fill level of device
Interface class for the BPNGClient listener.
DECLDIR BPNGErrCode WINAPI getNumTSLMemberFromOfflineDataSet(const char *offlinePath, int *numMember)
LanguageID
Languages.
Definition: BPNGDefines.h:282
virtual void WINAPI clearDBCFileAssignments()=0
Remove all DBC file assignments.
virtual const IChannelList *WINAPI getLoggerChannels()=0
Returns pointer to a channel list interface.
virtual int WINAPI downloadBugReport(const char *targetPath, BPNGBugreportMode mode, uint64_t startTime, uint64_t endTime)=0
Download bug report.
virtual BOOL WINAPI filterSignalsFromOfflineData(const char *pathToOfflineDataSet, const char *pathToFilterSettings, const char *targetPath)=0
Signal filtering.
virtual void WINAPI clearDatabaseFileAssignments()=0
Remove all database file assignments.
virtual BPNGError WINAPI getDownloadError(int index)=0
Returns the download error at index.
Defines for Telemotive Client Library.
BPNGBugreportMode
Mode for the IBPNG::downloadBugReport() function.
Definition: BPNGDefines.h:290
virtual IRdbEventList *WINAPI getEventList()=0
Get list of all events from the RDB.
False measure signal list interface.
Definition: BPNGDefines.h:418
Representation of a chain of Telemotive devices combined via Telemotive System Link (TSL) ...
Definition: BPNGDefines.h:685
virtual void WINAPI addListener(IBPNGClientListener *listener)=0
Add a listener.
virtual int WINAPI getNumConversionErrors()=0
Returns the number of errors occured during the last conversion process.
virtual BPNGError WINAPI getLastError()=0
Get last error code.
virtual void WINAPI registerAll()=0
Static registration of all messages and formats.
virtual void WINAPI keepLoggerAlive(const char *ip)=0
Call this to keep logger alive.
DECLDIR void WINAPI setLanguageID(LanguageID id)
Sets the language for status messages.
virtual BOOL WINAPI convertFileNameTimeStampsToLocalTime(const char *pathToOfflineDataSet)=0
Converts all time stamps in an offline data set's file names to local time.
Definition: BPNGDefines.h:701
virtual void WINAPI assignDBCFile(int channelIndexCAN, const char *dbcFilePath)=0
Assign a DBC file to a CAN channel. Multiple files for one CAN channel are allowed, but double used message IDs will ignored.
virtual void WINAPI loadProperties(const char *pathToIniFile)=0
Load properties from ini file.
virtual int WINAPI createCCPXCPSeqFile(const char *xsdDir, const char *xmlDir, bool forceFlag)=0
Parse CCPXCPMeasurement.xml and CCPXCPConfiguration.xml and create CCPXCPSequence.xml.
Interface class for the Telemotive Client Library.
Definition: IBPNGClient.h:41
virtual void WINAPI setDevice(const OnlineLoggerInfo &device)=0
Sets the device, the IBPNGClient instance should operate with (download data, change configuration...
virtual BOOL WINAPI setMarker()=0
Set a marker on the connected logger. Returns 0 on error.
virtual const char *WINAPI getTMTVersion()=0
Get the current tmt version string.
a helper object for configuration, license update or firmwareupdate: a key value pair for assigning a...
Definition: BPNGDefines.h:744
virtual BOOL WINAPI setInfoEvent(const char *msg)=0
Set an info event with the passed string on the connected logger.
DECLDIR void WINAPI setTempDir(const char *tmp)
Sets the directory where all temporary files are created. If not called, the default system's tmp dir...
virtual BOOL WINAPI setOfflineData(const char *path)=0
Sets the path to offline data set the IBPNGClient instance should operate with (conversion) ...
Definition: RdbDefines.h:130
virtual BOOL WINAPI updateFirmware(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair, BOOL force)=0
Update firmware.
virtual const char *WINAPI getFWVersion()=0
Returns the current fw version.
virtual BOOL WINAPI connectLogger(int numLogger, OnlineLoggerInfo *devices)=0
Connect to passed loggers.
DECLDIR OnlineLoggerInfo createEmptyOnlineLoggerInfo()
DECLDIR void WINAPI removeLogListener(onLogRequest logFunc)
Removes a log listener from the library.
stores memory fill level of a device
Definition: BPNGDefines.h:729
virtual void WINAPI saveProperties(const char *pathToIniFile)=0
Save properties to ini file.
virtual OnlineLoggerInfo *WINAPI getOnlineLoggerInfo(const char *ip)=0
Retreive an OnlineLoggerInfo for a particular IP address.
void(WINAPI * onLogRequest)(const char *logRecord)
Pointer to a function named onLogRequest with one parameter and no return value.
Definition: BPNGDefines.h:751
virtual IFormatList *WINAPI getAvailableFormats()=0
Return pointer to a format list interface. Returns null in case of error.
DECLDIR void WINAPI addLogListener(onLogRequest logFunc)
Adds a log listener to the library.
DECLDIR void WINAPI writeLogToCout(bool flag)
virtual BOOL WINAPI isPasswordProtectionSupported(unsigned deviceMbnr)=0
virtual BOOL WINAPI reconfigLogger(int numLogger, OnlineLoggerInfoStringPair *loggerConfigPathPairs, const char *xsdVersionOfConfig=nullptr)=0
Reconfig logger with the zipped new configuration.
virtual int WINAPI getCurrentLoggerTime()=0
Returns the current loggertime in seconds since 01.01.1970 UTC.
BPNGErrCode
enum Error codes
Definition: BPNGDefines.h:52
virtual int WINAPI setPwdFile(const char *path, unsigned targetMbnr)=0
Public interfaces for Telemotive Reference Database access.
virtual IConversionSet *WINAPI createNewConversionSet()=0
Returns the pointer to a new conversion set.
virtual BOOL WINAPI synchronizeRdb()=0
Synchronizes the RDB.
virtual IRdbTraceBlockList *WINAPI getTraceBlockList()=0
Get list of all trace blocks from the RDB.
virtual int WINAPI resetMarkerCounter()=0
Reset marker counter.
virtual int WINAPI startLiveDownload(uint64_t startTimeStamp, const char *target)=0
virtual BOOL WINAPI getConfig(const char *path)=0
Download the current logger configuration to the passed path.
Format list interface.
Definition: BPNGDefines.h:529
virtual const char *WINAPI getInstanceName()=0
Return the instance name passed to the getBPNGClient() function.
virtual void WINAPI setClientProperties(IClientProperties *properties)=0
virtual const char *WINAPI getReferenceDataBasePath()=0
Get path to the reference data base.
virtual BOOL WINAPI initialize()=0
Initialization of download and conversion process.
virtual const IFalseMeasureSignalList *WINAPI getFalseMeasureSignals()=0
Return pointer to a false measure signal list interface.
A conversion set stores all conversion relevant settings.
Definition: BPNGDefines.h:547
Error struct with error code and optional error message.
Definition: BPNGDefines.h:711
virtual void WINAPI stopKeepLoggerAlive(const char *ip)=0
Called to stop sending keep alive pings to the logger specified via the passed ip.
virtual void WINAPI setTSLCluster(TSLCluster cluster)=0
Sets the TSL cluster, the IBPNGClient instance should operate with (download data, change configuration, update firmware, etc.)
virtual BOOL WINAPI setDefaultConfig()=0
Reconfig logger/TSL with the default configuration.
virtual void WINAPI removeListener(IBPNGClientListener *listener)=0
Remove a listener.
virtual int WINAPI convertData(IConversionSet *conversionSet, const char *target)=0
Convert all data specified by conversionSet.
DECLDIR IClientProperties *WINAPI createNewClientProperties()
DECLDIR void WINAPI freeClientPropertiesMemory(IClientProperties *prop)
Interface to a list of rdb events.
Definition: RdbDefines.h:96
virtual int WINAPI getNumDownloadErrors()=0
Returns the number of errors occured during the last download process.
virtual int WINAPI createCCPXCPDbcFiles(const char *dbcDir, const char *xsdDir, const char *xmlDir)=0
Parse CCPXCPMeasurement.xml and CCPXCPConfiguration.xml and create a Vector DBC file for each device...
TesttoolsChannel list interface.
Definition: BPNGDefines.h:488
virtual void WINAPI flashDeviceLED()=0
Let the connected device blink its front LEDs for identification.
DECLDIR void WINAPI freeConversionSetMemory(IConversionSet *convSet)
virtual int WINAPI getInstanceId()=0
Returns the instance ID that is unique for all IBPNGClient instances in one process.
virtual void WINAPI enableClientLogOutput()=0
enable ClientLogUtil output
virtual int WINAPI shutdownDevice()=0
shut down the device or TSL
virtual BOOL WINAPI filterSignals(const char *pathToFilterSettings, const char *targetPath)=0
Signal filtering.
virtual void WINAPI disconnectLogger()=0
Disconnect the currently connected logger.