Program Listing for File SimOneServiceAPI.h

Return to documentation for file ( api\Cpp_API_Reference\SimOneServiceAPI.h )

// ==========================================================================
// Copyright (C) 2018 - 2021 Beijing 51WORLD Digital Twin Technology Co., Ltd.
// , and/or its licensors.  All rights reserved.
//
// The coded instructions, statements, computer programs, and/or related
// material (collectively the "Data") in these files contain unpublished
// information proprietary to Beijing 51WORLD Digital Twin Technology Co., Ltd.
// ("51WORLD") and/or its licensors,  which is protected by the People's
// Republic of China and/or other countries copyright law and by
// international treaties.
//
// The Data may not be disclosed or distributed to third parties or be
// copied or duplicated, in whole or in part, without the prior written
// consent of 51WORLD.
//
// The copyright notices in the Software and this entire statement,
// including the above license grant, this restriction and the following
// disclaimer, must be included in all copies of the Software, in whole
// or in part, and all derivative works of the Software, unless such copies
// or derivative works are solely in the form of machine-executable object
// code generated by a source language processor.

// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
// 51WORLD DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED
// WARRANTIES INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF
// NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE,
// OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO
// EVENT WILL 51WORLD AND/OR ITS LICENSORS BE LIABLE FOR ANY LOST
// REVENUES, DATA, OR PROFITS, OR SPECIAL, DIRECT, INDIRECT, OR
// CONSEQUENTIAL DAMAGES, EVEN IF 51WORLD AND/OR ITS LICENSORS HAS
// BEEN ADVISED OF THE POSSIBILITY OR PROBABILITY OF SUCH DAMAGES.
// ==========================================================================
#pragma once

#ifdef BUILD_SIMONE_API
#if defined(WIN32) || defined(_WIN32)
#define SIMONE_API __declspec(dllexport)
#elif defined(__linux__) || defined(__linux)
#define SIMONE_API __attribute__((visibility("default")))
#endif
#else
#define SIMONE_API
#endif

#include <string>
#include "Service/SimOneIOStruct.h"

#ifdef __cplusplus
extern "C"
{
#endif

    namespace SimOneAPI{

        SIMONE_API const char *GetVersion();

        SIMONE_API bool SendRouteMessage(int length, void* pBuffer, int msgId, int toNodeId, ESimOne_Client_Type toNodeType);

        SIMONE_API bool ReceiveRouteMessageCB(void(*cb)(int fromId, ESimOne_Client_Type fromType, int length, const void* pBuffer, int commandId));

        SIMONE_API bool SetLogOut(ESimOne_LogLevel_Type level, const char *format, ...);


        SIMONE_API bool InitSimOneAPI(const char* mainVehicleId = "0", bool isFrameSync = false, const char *serverIP = "127.0.0.1", int port = 23789, void(*startCase)()=0, void(*endCase)()=0, int registerNodeId=0);



        SIMONE_API bool InitSimOneAPIEx(char** mainVehicleIdList, int count, bool isFrameSync = false, const char *serverIP = "127.0.0.1", int port = 23789, void(*startCase)() = 0, void(*endCase)() = 0, int registerNodeId = 0);

        SIMONE_API bool InitSimOneAPIWithTimeOut(const char* mainVehicleId = "0", bool isFrameSync = false, const char *serverIP = "127.0.0.1", int port = 23789, int timeOutMS = -1, void(*startCase)() = 0, void(*endCase)() = 0, int registerNodeId = 0);

        SIMONE_API bool InitSimOneAPIExWithTimeOut(char** mainVehicleIdList, int count, bool isFrameSync = false, const char *serverIP = "127.0.0.1", int port = 23789, int timeOutMS = -1, void(*startCase)() = 0, void(*endCase)() = 0, int registerNodeId = 0);

        SIMONE_API bool TerminateSimOneAPI();

        SIMONE_API bool GetCaseInfo(SimOne_Data_CaseInfo *pCaseInfo);

        SIMONE_API ESimOne_Case_Status GetCaseRunStatus();

        SIMONE_API bool GetMainVehicleList(SimOne_Data_MainVehicle_Info *pMainVehicleInfo);


        SIMONE_API int Wait();

        SIMONE_API void NextFrame(int frame);

        SIMONE_API int Pause();

        SIMONE_API int Continue();

        SIMONE_API bool SetFrameCB(void(*FrameStart)(int frame), void(*FrameEnd)(int frame));

        SIMONE_API bool GetMainVehicleStatus(const char* mainVehicleId, SimOne_Data_MainVehicle_Status *pMainVehicleStatus);

        SIMONE_API bool SetMainVehicleStatusUpdateCB(void(*cb)(const char* mainVehicleId, SimOne_Data_MainVehicle_Status *pMainVehicleStatus));

        SIMONE_API bool GetHDMapData(SimOne_Data_Map* hdMap);

    }
#ifdef __cplusplus
}
#endif