summaryrefslogtreecommitdiffstats
path: root/vehicleservice/positioning_base_library/library/include/vehicle_service/WPF_STD.h
diff options
context:
space:
mode:
Diffstat (limited to 'vehicleservice/positioning_base_library/library/include/vehicle_service/WPF_STD.h')
-rw-r--r--vehicleservice/positioning_base_library/library/include/vehicle_service/WPF_STD.h1653
1 files changed, 1653 insertions, 0 deletions
diff --git a/vehicleservice/positioning_base_library/library/include/vehicle_service/WPF_STD.h b/vehicleservice/positioning_base_library/library/include/vehicle_service/WPF_STD.h
new file mode 100644
index 00000000..085640ab
--- /dev/null
+++ b/vehicleservice/positioning_base_library/library/include/vehicle_service/WPF_STD.h
@@ -0,0 +1,1653 @@
+/*
+ * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_WPF_STD_H_
+#define POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_WPF_STD_H_
+
+/**
+ * @file WPF_STD.h
+ * @brief Header file for system standard definitions
+ */
+
+/** @addtogroup BaseSystem
+ * @{
+ */
+/** @addtogroup vehicle_service
+ * @ingroup BaseSystem
+ * @{
+ */
+/** @addtogroup positioning_base_library
+ * @ingroup vehicle_service
+ * @{
+ */
+
+/*---------------------------------------------------------------------------------*
+ * Incluce *
+ *---------------------------------------------------------------------------------*/
+#include <string.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <unistd.h>
+#include <pthread.h>
+#include <wchar.h>
+#include <sys/prctl.h>
+#include <sys/stat.h>
+#include <native_service/wpf_legacy.h>
+#include <vehicle_service/std_types.h>
+#include <vehicle_service/pos_message_header.h>
+#include <vehicle_service/sys_timerapi.h>
+#include <vehicle_service/positioning_positioningbaselibrarylog.h>
+
+/*---------------------------------------------------------------------------------*
+ * Definition *
+ *---------------------------------------------------------------------------------*/
+#define POS_THREAD_NAME "Positioning" //!< \~english Positioning thread name
+
+#ifdef UNICODE
+#define __TEXT(quote) L##quote
+#else /* UNICODE */
+#define __TEXT(quote) (quote) /* r_winnt */
+#endif /* UNICODE */
+
+#define D_LTEXT(x) __TEXT(x)
+#define LTEXT(x) D_LTEXT(x)
+
+#define DEBUG_DUMP_MAX_SIZE 4096
+//!< \~english FrameworkunifiedOnDebugDump max size
+
+/* Sensor Log Type */
+#define POS_SENSLOG_TYPE_NONE 0 //!< \~english sensor log type NONE
+#define POS_SENSLOG_TYPE_SYS 1 //!< \~english sensor log type SYS
+#define POS_SENSLOG_TYPE_GPS 2 //!< \~english sensor log type GPS
+#define POS_SENSLOG_TYPE_NAV 3 //!< \~english sensor log type NAV
+#define POS_SENSLOG_TYPE_CMD 4 //!< \~english sensor log type CMD
+
+#define POS_SENSLOG_GET_ZONE(typ) \
+ (((typ) == (POS_SENSLOG_TYPE_SYS))?(ZONE_POS_SYS_IN):\
+ ((typ) == (POS_SENSLOG_TYPE_GPS))?(ZONE_POS_GPS_IN):\
+ ((typ) == (POS_SENSLOG_TYPE_NAV))?(ZONE_POS_NAV_IN):\
+ ((typ) == (POS_SENSLOG_TYPE_CMD))?(ZONE_POS_CMD_IN):\
+ (0))
+//!< \~english get sensor log zone code
+
+#define POS_WRITE_SENSLOG(zone, data, len) (((zone) != (0))?((void)((FRAMEWORKUNIFIEDLOG_DATA(zone, data, len)))):((void)(0)))
+//!< \~english write sensor log output
+#define POS_SENSLOG(typ, data, len) (POS_WRITE_SENSLOG(POS_SENSLOG_GET_ZONE(typ), data, len))
+
+/* HW configuration type */
+/*
+ * Note.
+ * This feature needs to be defined by the vendor.
+ */
+#define UNIT_TYPE_NONE 0x00000000UL //!< \~english type none
+#define UNIT_TYPE_UNKNOWN 0x00000001UL //!< \~english type unknown
+#define UNIT_TYPE_GRADE1 0x00000002UL //!< \~english type Grade1
+#define UNIT_TYPE_GRADE2 0x00000004UL //!< \~english type Grade2
+
+#define MAX_NAME_LEN 32 //!< \~english name max length
+#define _CWORD31__NO_SIZE 16 //!< \~english _CWORD31_ No size
+#define RESERVE1_SIZE 16 //!< \~english reserve 1
+#define HELPNET_ID_SIZE 21 //!< \~english helpnet ID size
+#define RESERVE2_SIZE 11 //!< \~english reserve 2
+#define DATE_SIZE 32 //!< \~english make time size
+#define SERIAL_NO_SIZE 3 //!< \~english serial No size
+#define PRODUCT_NAME_SIZE 1 //!< \~english product name size
+
+#define _pb_memcpy memcpy
+#define _pb_memset memset
+
+/* RET_API define */
+#define RET_NORMAL 0 //!< \~english normal return
+#define RET_ERROR (-1) //!< \~english error return
+#define RET_ERRPARAM (-2) //!< \~english parameter error
+
+#define SAPI_EVSET_ABSOLUTE 1 //!< \~english absolute vale set
+#define SAPI_EVWAIT_VAL 1 //!< \~english event wait value set
+
+/* sys common commandID definition */
+#define CID_GPS_BASE (CID)0xF030
+//!< \~english GPS
+
+#define CID_TIMER_BASE (CID)0xF040
+//!< \~english timer management
+
+#define CID_INITIAL_BASE (CID)0xF100
+//!< \~english initial
+
+/* ResourceManager/CID definition */
+#define CID_GPS_SERIAL0 (CID)0x0100
+//!< \~english GPS reset request func definition
+
+#define CID_GPS_REQRESET (CID)(CID_GPS_BASE | CID_GPS_SERIAL0)
+//!< \~english GPS reset request CID
+
+
+/* sys common commandID detail definition */
+#define CID_COM_SERIAL4 (CID)0x0004
+//!< \~english serial command ID 4
+
+#define CID_COM_SERIAL6 (CID)0x0006
+//!< \~english serial command ID 6
+
+#define CID_COM_SERIAL7 (CID)0x0007
+//!< \~english serial command ID 7
+
+/* initial CID definition */
+#define CID_INI_SYSTEMERR (CID)(CID_INITIAL_BASE | CID_COM_SERIAL6)
+//!< \~english system abnormality notify
+
+#define CID_INI_INTERNAL_ACCOFF_START (CID)(CID_INITIAL_BASE | CID_COM_SERIAL7)
+//!< \~english internal ACC-OFF start Indication
+
+/* timer control CID definition */
+#define CID_TIMER_TOUT (CID)(CID_TIMER_BASE | CID_COM_SERIAL4)
+//!< \~english timeout notify
+
+
+/* PNO definition */
+#define PNO_NONE 0x0000 //!< \~english initial value
+
+#define PNO__CWORD88___CWORD23_ 0x0100
+//!< \~english _CWORD23_ primary thread
+#define PNO_GINI_MAIN 0x0300
+//!< \~english G initial
+#define PNO_CLK_GPS 0x0316
+//!< \~english clock GPS thread
+#define PNO_VEHICLE_SENSOR 0x0363
+//!< \~english vehicle sensor thread
+#define PNO_LINE_SENS_DRV 0x0364
+//!< \~english line sensor driver thread
+#define PNO_NAVI_GPS_MAIN 0x0440
+//!< \~english GPS communication manager thread
+#define PNO_NAVI_GPS_RCV 0x0441
+//!< \~english GPS receive thread
+#define PNO__CWORD83_ 0x0900
+//!< \~english _CWORD83_(Intersystem Communication Message)thread
+
+#define SYS_PNO_MIN PNO__CWORD88___CWORD23_
+//!< \~english minimum PNO.(normal process)
+#define SYS_PNO_MAX PNO__CWORD83_
+//!< \~english maximum PNO.(normal process)
+
+/*---------------------------------------------------------------------------------*
+ * Typedef declaration *
+ *---------------------------------------------------------------------------------*/
+typedef u_int32 EventID;
+typedef int32 RET_API; //!< \~english _CWORD64_API return code
+typedef u_int32 event_id;
+typedef event_id SemID; //!< \~english semaphore ID
+typedef u_int16 CID; //!< \~english command ID
+
+typedef uint32_t UNIT_TYPE; //!< \~english unit type data type define
+typedef int32 ANA_RET_API;
+
+typedef char TCHAR;
+
+/**
+ * @enum _RcvMsgMode
+ * \~english mode of receive message
+ */
+typedef enum {
+ RM_WAIT, //!< \~english wait until received message
+ RM_CHECKRCV //!< \~english do not wait message, return
+} _RcvMsgMode;
+
+/**
+ * @enum
+ * \~english definition of event reset mode
+ */
+enum {
+ _CWORD64_EVENT_MANUALRESET_OFF = 0, //!< \~english manual reset off
+ _CWORD64_EVENT_MANUALRESET_ON, //!< \~english manual reset on
+ _CWORD64_EVENT_MANUALRESET_MAX //!< \~english manual reset max value
+};
+
+
+/*---------------------------------------------------------------------------------*
+ * Struct declaration *
+ *---------------------------------------------------------------------------------*/
+/**
+ * @struct _SECURITY_ATTRIBUTES
+ * \~english security attribute
+ */
+typedef struct _SECURITY_ATTRIBUTES {
+ DWORD nLength; //!< \~english length
+ LPVOID lpSecurityDescriptor; //!< \~english data pointer
+ BOOL bInheritHandle; //!< \~english inherited handle
+} SECURITY_ATTRIBUTES;
+typedef SECURITY_ATTRIBUTES *PSECURITY_ATTRIBUTES; //!< \~english security attribute
+typedef SECURITY_ATTRIBUTES *LPSECURITY_ATTRIBUTES; //!< \~english security attribute
+
+/*---------------------------------------------------------------------------------*
+ * Prototype Declaration *
+ *---------------------------------------------------------------------------------*/
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Create event by specified name
+///
+/// \~english @param [in] ucManualReset
+/// - u_int8 manual reset mode
+/// \~english @param [in] lInitData
+/// - int32 event value
+/// \~english @param [in] cpEventName
+/// - char* event name
+///
+/// \~english @par
+/// - manual reset mode(ucManualReset)
+/// - _CWORD64_EVENT_MANUALRESET_OFF manual reset OFF
+/// - _CWORD64_EVENT_MANUALRESET_ON manual reset ON
+///
+/// \~english @retval 0 event create failed
+/// \~english @retval not 0 created event ID
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter cpEventName is NULL
+/// - The parameter ucManualReset is more than or equal _CWORD64_EVENT_MANUALRESET_MAX
+/// - The string of parameter cpEventName has no text
+/// - The string length of parameter cpEventName is longer than MAX_EVENT_NAME_LEN
+/// - The event is created in same process, but the count of thread reference to the event is reach to the max
+/// - The event is created in system, but the count of process reference to the event is reach to the max
+/// - Memory allocate failed for creating event table
+/// - During create the event table, the event flag register failed
+/// - The event table is full
+///
+/// \~english @par Detail
+/// - Call this API to create event and return the created event ID.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+EventID _pb_CreateEvent(u_int8 ucManualReset, int32 lInitData, char *cpEventName);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Wait for the event specified by ID
+///
+/// \~english @param [in] eventID
+/// - EventID event ID
+/// \~english @param [in] lWaitMode
+/// - int32 event wait mode
+/// \~english @param [in] lMinVal
+/// - int32 event wait min value
+/// \~english @param [in] lMaxVal
+/// - int32 event wait max value
+/// \~english @param [out] plEventVal
+/// - int32* event wait value output pointer
+/// \~english @param [in] ulMillSecTime
+/// - u_int32 timeout time(ms)
+///
+/// \~english @par
+/// - event wait mode(lWaitMode)
+/// - SAPI_EVWAIT_VAL
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_EV_NONE parameter error or specified event not exist
+/// \~english @retval RET_ERRTIMEOUT timeout
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter plEventVal is NULL
+/// - The parameter eventID is more than MAX_PB_EVENTS
+/// - The specified event has not been registered in event table
+/// - The count of threads which is waiting this event is reach max
+/// - The parameter ulMillSecTime is 0
+/// - The parameter ulMillSecTime is INFINITE, and wait event flag failed
+/// - The parameter ulMillSecTime is not INFINITE, and timeout
+/// - The parameter ulMillSecTime is not INFINITE, and get event flag failed
+///
+/// \~english @par Detail
+/// - Call this API to wait event.
+/// - This API will return after timeout or this event been set.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_WaitEvent(EventID eventID, int32 lWaitMode, int32 lMinVal,
+ int32 lMaxVal, int32* plEventVal, u_int32 ulMillSecTime);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Set the value of event specified by ID
+///
+/// \~english @param [in] eventID
+/// - EventID event ID
+/// \~english @param [in] lSetMode
+/// - int32 event value set mode
+/// \~english @param [in] iVal
+/// - int32 event value
+///
+/// \~english @par
+/// - event value set mode(lSetMode)
+/// - SAPI_EVSET_ABSOLUTE absolute value set(set parameter value)
+/// - SAPI_EVSET_RELATE offset set(offset of current value set)
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_EV_NONE specified event not exist
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter eventID is more than MAX_PB_EVENTS
+/// - The specified event has not been registered in event table
+/// - The parameter lSetMode is neither SAPI_EVSET_ABSOLUTE nor SAPI_EVSET_RELATE
+///
+/// \~english @par Detail
+/// - Call this API to set event value.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_SetEvent(EventID eventID, int32 lSetMode, int32 lval);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Destroy the event specified by ID
+///
+/// \~english @param [in] eventID
+/// - EventID event ID
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERROR event flag destroy failed
+/// \~english @retval RET_EV_NONE specified event not exist
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter eventID is more than MAX_PB_EVENTS
+/// - The specified event has not been registered in event table
+/// - Event flag destroy failed
+///
+/// \~english @par Detail
+/// - Call this API to destroy specified event.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_DeleteEvent(EventID eventID);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Initialization before call Base API(every process used Base API should call this API firstly).
+///
+/// \~english @param [in] hApp
+/// - HANDLE app Handle
+///
+/// \~english @retval RET_NORMAL normal return
+///
+/// \~english @par Precondition
+/// - The creation/initialization(FrameworkunifiedCreateDispatcherWithoutLoop and etc.) of the dispatcher for App are completed.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to initialize Base API.
+/// - Every process used Base API should call this API firstly.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_Setup_CWORD64_API(HANDLE hApp);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Terminate current thread.
+///
+/// \~english @param [in] dwExitCode
+/// - DWORD exit code(not used)
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - None
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to terminate current thread.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+VOID _pb_ExitThread(DWORD dwExitCode);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Create the message queue
+///
+/// \~english @param [in] eventID
+/// - EventID process No
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter pno is 0
+/// - The name length of thread called this API is longer than MAX_QUEUE_NAME_SIZE
+///
+/// \~english @par Detail
+/// - Call this API to create the message queue.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_CreateMsg(PNO pno);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Send message in process
+///
+/// \~english @param [in] pno
+/// - PNO process No
+/// \~english @param [in] size
+/// - u_int16 message size
+/// \~english @param [in] msgbuf
+/// - void* message buffer
+/// \~english @param [in] mode
+/// - u_int16 not used
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter msgbuf is NULL
+/// - The parameter pno is 0
+/// - The message queue specified by parameter pno has not been created
+/// - Get sender Handle failed
+/// - Send message failed
+///
+/// \~english @par Detail
+/// - Call this API to send message in process.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_SndMsg(PNO pno, u_int16 size, void* msgbuf, u_int16 mode);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Send message between process
+///
+/// \~english @param [in] name
+/// - PCSTR destination process name
+/// \~english @param [in] cid
+/// - CID command ID
+/// \~english @param [in] size
+/// - u_int16 message size
+/// \~english @param [in] msgbuf
+/// - const void* message buffer
+/// \~english @param [in] mode
+/// - u_int16 not used
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter name is NULL
+/// - The parameter msgbuf is NULL
+/// - The length of parameter name is longer than MAX_QUEUE_NAME_SIZE
+/// - Get sender Handle failed
+/// - Send message failed
+///
+/// \~english @par Detail
+/// - Call this API to send message between process.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_SndMsg_Ext(PCSTR name, CID cid, u_int16 size, const void* msgbuf, u_int16 mode);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Create semaphore by specified name
+///
+/// \~english @param [in] semName
+/// - char* semaphore name
+///
+/// \~english @retval 0 semaphore create failed
+/// \~english @retval not 0 created semaphore ID
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter semName is NULL
+/// - The string of parameter semName has no text
+/// - The string length of parameter semName is longer than MAX_SEMAPHORE_NAME_LEN
+/// - Memory allocate failed for creating semaphore table
+/// - The semaphore table is full
+///
+/// \~english @par Detail
+/// - Call this API to create semaphore and return the created semaphore ID.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+SemID _pb_CreateSemaphore(char* semName);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Semaphore lock
+///
+/// \~english @param [in] semID
+/// - SemID semaphore ID
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_OSERROR error return
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter semName is 0
+/// - The parameter semName is more than MAX_PB_SEMAPHORES
+/// - The specified semaphore has not been registered in semaphore table
+/// - The specified semaphore's mutex has not been created
+/// - The specified semaphore's mutex lock failed
+///
+/// \~english @par Detail
+/// - Call this API to get semaphore.
+/// - This API will return after got semaphore.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_SemLock(SemID semID);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Semaphore unlock
+///
+/// \~english @param [in] semID
+/// - SemID semaphore ID
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_OSERROR error return
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter semName is 0
+/// - The parameter semName is more than MAX_PB_SEMAPHORES
+/// - The specified semaphore has not been registered in semaphore table
+/// - The specified semaphore's mutex has not been created
+/// - The specified semaphore's mutex release failed
+///
+/// \~english @par Detail
+/// - Call this API to relesae semaphore.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_SemUnlock(SemID semID);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Create Share Data
+///
+/// \~english @param [in] area_name
+/// - char* share data name
+/// \~english @param [in] size
+/// - u_int32 data size
+/// \~english @param [out] mem_ptr
+/// - void** share memory pointer
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERROR error return
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter area_name is NULL
+/// - The parameter mem_ptr is NULL
+/// - The string of parameter area_name has no text
+/// - The string length of parameter area_name is longer than MAX_AREA_NAME_LEN
+/// - The parameter size is 0
+/// - The specified share data has already been created
+/// - Memory allocate failed for creating share data
+/// - The specified share data file create failed
+///
+/// \~english @par Detail
+/// - Call this API to create share data.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_CreateShareData(char* area_name, u_int32 size, void** mem_ptr);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Link Share Data
+///
+/// \~english @param [in] area_name
+/// - char* share data name
+/// \~english @param [out] mem_ptr
+/// - void** share memory pointer
+/// \~english @param [in] size
+/// - u_int32* data size
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERROR error return
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter area_name is NULL
+/// - The parameter mem_ptr is NULL
+/// - The string of parameter area_name has no text
+/// - The string length of parameter area_name is longer than MAX_AREA_NAME_LEN
+/// - The parameter size is NULL
+/// - Memory allocate failed for linking share data
+/// - The specified share data file open failed
+///
+/// \~english @par Detail
+/// - Call this API to link share data.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_LinkShareData(char* area_name, void** mem_ptr, u_int32* size);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Start timer
+///
+/// \~english @param [in] SndPno
+/// - PNO source process No
+/// \~english @param [in] TimerSeq
+/// - u_int16 timer sequence No
+/// \~english @param [in] TimerType
+/// - u_int8 timer type
+/// \~english @param [in] TimeOut
+/// - u_int32 timeout time
+///
+/// \~english @par
+/// - timer type(TimerType)
+/// - TIMER_TYPE_SYN fixed term timer
+/// - TIMER_TYPE_USN asynchronous timer
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - Initialization of positioning_base_library has not been done in current process
+/// - The parameter TimerType is neither TIMER_TYPE_SYN nor TIMER_TYPE_USN
+/// - The parameter TimeOut is 0
+/// - The same timer has already been started
+/// - Timer start failed
+///
+/// \~english @par Detail
+/// - Call this API to start timer.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_ReqTimerStart(PNO SndPno, u_int16 TimerSeq, u_int8 TimeType, u_int32 TimeOut);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Stop timer
+///
+/// \~english @param [in] SndPno
+/// - PNO source process No
+/// \~english @param [in] TimerSeq
+/// - u_int16 timer sequence No
+/// \~english @param [in] TimerType
+/// - u_int8 timer type
+///
+/// \~english @par
+/// - timer type(TimerType)
+/// - TIMER_TYPE_SYN fixed term timer
+/// - TIMER_TYPE_USN asynchronous timer
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERROR error return
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - Initialization of positioning_base_library has not been done in current process
+/// - Timer stop failed
+///
+/// \~english @par Detail
+/// - Call this API to stop timer.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_TimerStop(PNO SndPno, u_int16 TimerSeq, u_int8 TimeType);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Create mutex
+///
+/// \~english @param [in] lpMutexAttributes
+/// - LPSECURITY_ATTRIBUTES not used
+/// \~english @param [in] bInitialOwner
+/// - BOOL not used
+/// \~english @param [in] lpName
+/// - LPCTSTR mutex name
+///
+/// \~english @retval NULL error return
+/// \~english @retval Except NULL created mutex Handle
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter lpName is NULL
+/// - The string length of pamareter lpName is longer than NAME_MAX
+/// - Mutex lock map failed
+///
+/// \~english @par Detail
+/// - Call this API to create mutex.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+HANDLE _pb_CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get message management table dump info.
+///
+/// \~english @param [out] pBuf
+/// - void* output buffer
+/// \~english @param [in/out] pLen
+/// - uint8_t* output buffer size
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get message management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_GetDebugMsgMngTbl(void* pBuf, uint8_t* pLen);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get mutex management table dump info.
+///
+/// \~english @param [out] pBuf
+/// - void* output buffer
+/// \~english @param [in/out] pLen
+/// - uint8_t* output buffer size
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get mutex management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_GetDebugMutexMngTbl(void* pBuf, uint8_t* pLen);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get timer management table dump info.
+///
+/// \~english @param [out] pBuf
+/// - void* output buffer
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get timer management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_GetDebugTimerMngTbl(void* pBuf);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get event management table dump info.
+///
+/// \~english @param [out] pBuf
+/// - void* output buffer
+/// \~english @param [in/out] pLen
+/// - uint8_t* output buffer size
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get event management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_GetDebugEventMngTbl(void* pBuf, uint8_t* pLen);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get memory management table dump info.
+///
+/// \~english @param [out] pBuf
+/// - void* output buffer
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get memory management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_GetDebugMemoryMngTbl(void* pBuf);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get common info management table dump info.
+///
+/// \~english @param [out] pBuf
+/// - void* output buffer
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get common info management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_GetDebugOtherMngTbl(void* pBuf);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get current app Handle.
+///
+/// \~english @param None
+///
+/// \~english @retval 0 get Handle failed
+/// \~english @retval not 0 Handle
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - Current app Handle has not been registered
+///
+/// \~english @par Detail
+/// - Call this API to get current app Handle.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+HANDLE _pb_GetAppHandle(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Set current app Handle.
+///
+/// \~english @param [in] hApp
+/// - HANDLE app Handle
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get common info management table dump info.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_SetAppHandle(HANDLE hApp);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Base API stop process(every process used Base API should call this API before stop).
+///
+/// \~english @param None
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to stop Base API.
+/// - Every process used Base API should call this API before stop.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_Teardown_CWORD64_API(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Terminate current process.
+///
+/// \~english @param [in] pFunc
+/// - char* source function
+/// \~english @param [in] line
+/// - int source line
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - None
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to terminate current process.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_Exit_d(const char* pFunc, int line);
+#define _pb_Exit() _pb_Exit_d(__func__, __LINE__)
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Receive message.
+///
+/// \~english @param [in] pno
+/// - PNO process No
+/// \~english @param [in] size
+/// - u_int16 message size
+/// \~english @param [out] msgbuf
+/// - void* message buffer
+/// \~english @param [in] mode
+/// - u_int16 not used
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter msgbuf is NULL
+/// - The parameter pno is 0
+/// - The message queue specified by parameter pno has not been created
+/// - Receive message failed
+/// - Receive message successrully, but the received message size is longer than parameter size
+/// - Get received message data failed
+///
+/// \~english @par Detail
+/// - Call this API to receive message of specified pno.
+/// - This API will return after received message.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_RcvMsg(PNO pno, u_int16 size, void** msgbuf, u_int16 mode);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get send buffer for message transferring in process
+///
+/// \~english @param [in] pno
+/// - PNO process No
+/// \~english @param [out] pSndBuf
+/// - void** send buffer
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter pno is 0
+/// - The message queue specified by parameter pno has not been created
+/// - Get sender Handle failed
+/// - Get send buffer failed
+///
+/// \~english @par Detail
+/// - Call this API to get send buffer for message transferring in process.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_GetZcSndBuf(PNO pno, void** pSndBuf);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Send message in process
+///
+/// \~english @param [in] pno
+/// - PNO process No
+/// \~english @param [in] size
+/// - u_int16 message size
+/// \~english @param [in] mode
+/// - u_int16 not used
+///
+/// \~english @retval RET_NORMAL normal return
+/// \~english @retval RET_ERRPARAM parameter error
+/// \~english @retval RET_ERROR other error
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter pno is 0
+/// - The message queue specified by parameter pno has not been created
+/// - Get sender Handle failed
+/// - Get send buffer failed
+/// - Set send buffer failed
+/// - Send message failed
+///
+/// \~english @par Detail
+/// - Call this API to send message in process.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+RET_API _pb_ZcSndMsg(PNO pno, u_int16 size, u_int16 mode);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Convert process name to pno
+///
+/// \~english @param [in] name
+/// - PCSTR process name
+///
+/// \~english @retval 0 convert failed
+/// \~english @retval not 0 converted PNO
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter name is NULL
+/// - The size of parameter name is longer than THREAD_NAME_LEN_MAX
+///
+/// \~english @par Detail
+/// - Call this API to convert process name to pno.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+PNO _pb_CnvName2Pno(PCSTR name);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Convert pno to process name
+///
+/// \~english @param [in] pno
+/// - PNO process No
+///
+/// \~english @retval NULL convert failed
+/// \~english @retval not NULL converted process name
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Failure condition
+/// - The parameter pno has not been registered(not the return pno of _pb_CnvName2Pno).
+///
+/// \~english @par Detail
+/// - Call this API to convert pno to process name.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Sync
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+PCSTR _pb_CnvPno2Name(PNO pno);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get message resource
+///
+/// \~english @param None
+///
+/// \~english @retval TRUE normal return
+/// \~english @retval FALSE error(lack of resource)
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get message resource.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+BOOL _pb_GetMsgResource(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get mutex resource
+///
+/// \~english @param None
+///
+/// \~english @retval TRUE normal return
+/// \~english @retval FALSE error(lack of resource)
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get mutex resource.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+BOOL _pb_GetMutexResource(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Get common resource
+///
+/// \~english @param None
+///
+/// \~english @retval TRUE normal return
+/// \~english @retval FALSE error(lack of resource)
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to get common resource.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+BOOL _pb_GetOtherResource(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Release message resource
+///
+/// \~english @param None
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to release message resource.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_ReleaseMsgResource(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Release mutex resource
+///
+/// \~english @param None
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to release mutex resource.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_ReleaseMutexResource(void);
+
+////////////////////////////////////////////////////////////////////////////////////////////
+/// \ingroup positioning_base_library
+/// \~english @par Brief
+/// - Release common resource
+///
+/// \~english @param None
+///
+/// \~english @retval None
+///
+/// \~english @par Precondition
+/// - positioning_base_library initialization are completed \n
+/// (_pb_Setup_CWORD64_API has already been called) in current process.
+///
+/// \~english @par changes of the internal status
+/// - There is no changes of the internal status by this API
+///
+/// \~english @par Detail
+/// - Call this API to release common resource.
+/// \n
+///
+/// \~english @par Classification
+/// - Public
+///
+/// \~english @par Type
+/// - Fire and Forget
+///
+////////////////////////////////////////////////////////////////////////////////////////////
+void _pb_ReleaseOtherResource(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @}*/ // end of positioning_base_library
+/** @}*/ // end of vehicle_service
+/** @}*/ // end of BaseSystem
+#endif // POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_WPF_STD_H_