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 
282  virtual BOOL WINAPI reconfigLogger(int numLogger, OnlineLoggerInfoStringPair *loggerConfigPathPairs, const char* xsdVersionOfConfig = nullptr) = 0;
283 
285 
292  virtual BOOL WINAPI setDefaultConfig() = 0;
293 
294 
295  //==================================================================================================
296  // miscellaneous functions
297 
299 
303  virtual IRdbEventList* WINAPI getEventList() = 0;
304 
306 
309  virtual IRdbTraceBlockList* WINAPI getTraceBlockList() = 0;
310 
312 
316  virtual BOOL WINAPI synchronizeRdb() = 0;
317 
319  virtual const char* WINAPI getInstanceName() = 0;
320 
322  virtual int WINAPI getInstanceId() = 0;
323 
325 
334  virtual const char* WINAPI getReferenceDataBasePath() = 0;
335 
337 
348  virtual const char* WINAPI getConfigPath() = 0;
349 
351 
357  virtual const char* WINAPI getDeviceName() = 0;
358 
360 
367  virtual const IChannelList* WINAPI getLoggerChannels() = 0;
368 
369  /*
370  * Deliver BMW information and associated channels.
371  * The list contains channels only if their containerId >= 0 and therefor configured.
372  * The channelList delivered by IBPNGClient::getLoggerChannels() exists at this moment
373  @sa ITesttoolsChannelList
374  */
375  virtual const ITesttoolsChannelList* WINAPI getLoggerTesttoolsChannels() = 0;
376 
378 
387  virtual BOOL WINAPI getVersions(OnlineLoggerInfoStringPair *versionPairs) = 0;
388 
390  virtual const char* WINAPI getTMTVersion() = 0;
391 
393 
402  virtual BOOL WINAPI updateFirmware(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair, BOOL force) = 0;
403 
404  virtual BOOL WINAPI updatePBFirmware(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair, BOOL force) = 0;
405 
406  virtual const char* WINAPI getInternalPBVersion(OnlineLoggerInfoStringPair *loggerFirmwareUpdatePacketPair) = 0;
407 
408  //function used for user's authentification.
409  virtual BOOL WINAPI isUserAuthentificated(PwdPrivilegesFuncId actionName) = 0;
410 
412 
418  virtual BOOL WINAPI updateLicenses(OnlineLoggerInfoStringPair *loggerLicenseFilePair) = 0;
419 
421 
425  virtual const char* WINAPI getLicenses(unsigned deviceMbnr) = 0;
426 
428 
433  virtual BOOL WINAPI removeAllLicenses() = 0;
434 
435 
437 
450  virtual int WINAPI deleteSectionsByStartUpIds(uint16_t numStartUpIds, uint64_t* startupIds) = 0;
451 
453 
457  virtual int WINAPI deleteAllData() = 0;
458 
460 
466  virtual BOOL WINAPI setInfoEvent(const char* msg) = 0;
467 
469 
475  virtual BOOL WINAPI setMarker() = 0;
476 
478  virtual int WINAPI getCurrentLoggerTime() = 0;
479 
481 
486  virtual int WINAPI setTime(int time) = 0;
487 
489 
501  virtual void WINAPI keepLoggerAlive(const char* ip) = 0;
502 
504  virtual void WINAPI stopKeepLoggerAlive(const char* ip) = 0;
505 
506 
508  virtual OnlineLoggerInfo* WINAPI getOnlineLoggerInfo(const char* ip) = 0;
509 
511 
515  virtual IFormatList* WINAPI getAvailableFormats() = 0;
516 
518 
523  virtual void WINAPI flashDeviceLED() = 0;
524 
526  virtual int WINAPI createCCPXCPSeqFile(const char* xsdDir, const char* xmlDir, bool forceFlag) = 0;
527 
529  virtual int WINAPI createCCPXCPDbcFiles(const char* dbcDir, const char* xsdDir, const char* xmlDir) = 0;
530 
532 
538  virtual const IFalseMeasureSignalList* WINAPI getFalseMeasureSignals() = 0;
539 
541  virtual void WINAPI addListener(IBPNGClientListener* listener) = 0;
542 
544  virtual void WINAPI removeListener(IBPNGClientListener* listener) = 0;
545 
547 
553  virtual BPNGError WINAPI getLastError() = 0;
554 
556 
564  virtual int WINAPI getNumConversionErrors() = 0;
565 
567 
571  virtual BPNGError WINAPI getConversionError(int index) = 0;
572 
574 
582  virtual int WINAPI getNumDownloadErrors() = 0;
583 
585 
589  virtual BPNGError WINAPI getDownloadError(int index) = 0;
590 
592  virtual const char* WINAPI getFWVersion() = 0;
593 
595 
602  virtual void WINAPI release() = 0;
603 
604  // Returns a copy of the current client properties
608  virtual IClientProperties* WINAPI getClientProperties() = 0;
609 
610  // Set client properties
616  virtual void WINAPI setClientProperties(IClientProperties* properties) = 0;
617 
619  virtual void WINAPI saveProperties(const char* pathToIniFile) = 0;
620 
622  virtual void WINAPI loadProperties(const char* pathToIniFile) = 0;
623 
625 
630  virtual void WINAPI clearDBCFileAssignments() = 0;
631 
633  virtual void WINAPI clearDatabaseFileAssignments() = 0;
634 
636 
644  virtual void WINAPI assignDBCFile(int channelIndexCAN, const char* dbcFilePath) = 0;
645 
647 
655  virtual void WINAPI assignDatabaseFile(ChannelType channelType, int channelIndex, const char* databaseFilePath) = 0;
656 
658  virtual int WINAPI resetMarkerCounter() = 0;
659 
667  virtual int WINAPI setPwdFile(const char* path, unsigned targetMbnr) = 0;
668 
675  virtual const char* WINAPI getPwdFile(unsigned sourceMbnr) = 0;
676 
683  virtual BOOL WINAPI isPasswordProtectionSupported(unsigned deviceMbnr) = 0;
684 
686 
696  virtual int WINAPI downloadBugReport(const char* targetPath, BPNGBugreportMode mode, uint64_t startTime, uint64_t endTime) = 0;
697 
699 
703  virtual int WINAPI restartDevice(BOOL waitForRestart) = 0;
704 
706 
709  virtual int WINAPI shutdownDevice() = 0;
710 
712 
718  virtual BOOL WINAPI getMemoryFillLevel(MemoryFillLevel* fillLevel) = 0;
719 
721  virtual BOOL WINAPI convertFileNameTimeStampsToLocalTime(const char* pathToOfflineDataSet) = 0;
722 
724 
730  virtual BOOL WINAPI filterSignals(const char* pathToFilterSettings, const char* targetPath) = 0;
731 
733 
740  virtual BOOL WINAPI filterSignalsFromOfflineData(const char* pathToOfflineDataSet, const char* pathToFilterSettings, const char* targetPath) = 0;
741 
742 
744 
752  virtual int WINAPI createTestReport(IConversionSet* conversionSet, const char* target) = 0;
753 
755 
758  virtual void WINAPI enableClientLogOutput() = 0;
759  };
760 
762  DECLDIR const char* WINAPI getLibVersion();
763 
764 
766 
771  DECLDIR IBPNGClient* WINAPI getBPNGClient(const char* name = "");
772 
776  DECLDIR BPNGErrCode WINAPI getNumTSLMemberFromOfflineDataSet(const char* offlinePath, int* numMember);
777 
778 
780  DECLDIR void WINAPI setTempDir(const char* tmp);
781  DECLDIR const char* WINAPI getTempDir();
782 
784  DECLDIR void WINAPI setLanguageID(LanguageID id);
785 
787  DECLDIR IConversionSet* WINAPI createNewConversionSet();
788 
792  DECLDIR void WINAPI freeConversionSetMemory(IConversionSet* convSet);
793 
794  // Creates and returns a pointer to a new ClientProperties object with default settings
801 
805  DECLDIR void WINAPI freeClientPropertiesMemory(IClientProperties* prop);
806 
811  DECLDIR void WINAPI writeLogFile(const char* path, int maxSizeInByte, int numBackupFiles);
812 
815  DECLDIR void WINAPI writeLogToCout(bool flag);
816 
817  // For debug purpose all logs can also be forwarded to the microsoft OutputDebugString() functions.
818  // Those outputs can be catched from the SYSINTERNALS SOFTWARE DebugView.exe (www.sysinternals.com)
819  DECLDIR void WINAPI writeLogToDebugView(bool flag);
820 
822 
832  DECLDIR void WINAPI addLogListener(onLogRequest logFunc);
833 
835  DECLDIR void WINAPI removeLogListener(onLogRequest logFunc);
836 
846 
847 } // end of extern_C
848 
849 #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:482
virtual const char *WINAPI getDeviceName()=0
Get name of device.
ChannelType
Definition: BPNGDefines.h:303
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:663
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
Definition: BPNGDefines.h:278
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
Definition: BPNGDefines.h:289
virtual IRdbEventList *WINAPI getEventList()=0
Get list of all events from the RDB.
False measure signal list interface.
Definition: BPNGDefines.h:422
Representation of a chain of Telemotive devices combined via Telemotive System Link (TSL) ...
Definition: BPNGDefines.h:693
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.
structure of a data span
Definition: BPNGDefines.h:709
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:751
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:736
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:758
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
Definition: BPNGDefines.h:45
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:533
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:551
Error struct with error code and optional error message.
Definition: BPNGDefines.h:719
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:492
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.