2 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_WPF_STD_H_
18 #define POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_WPF_STD_H_
22 * @brief Header file for system standard definitions
25 /** @addtogroup BaseSystem
28 /** @addtogroup vehicle_service
32 /** @addtogroup positioning_base_library
33 * @ingroup vehicle_service
37 /*---------------------------------------------------------------------------------*
39 *---------------------------------------------------------------------------------*/
46 #include <sys/prctl.h>
48 #include <native_service/wpf_legacy.h>
49 #include <vehicle_service/std_types.h>
50 #include <vehicle_service/pos_message_header.h>
51 #include <vehicle_service/sys_timerapi.h>
52 #include <vehicle_service/positioning_positioningbaselibrarylog.h>
54 /*---------------------------------------------------------------------------------*
56 *---------------------------------------------------------------------------------*/
57 #define POS_THREAD_NAME "Positioning" //!< \~english Positioning thread name
60 #define __TEXT(quote) L##quote
62 #define __TEXT(quote) (quote) /* r_winnt */
65 #define D_LTEXT(x) __TEXT(x)
66 #define LTEXT(x) D_LTEXT(x)
68 #define DEBUG_DUMP_MAX_SIZE 4096
69 //!< \~english FrameworkunifiedOnDebugDump max size
72 #define POS_SENSLOG_TYPE_NONE 0 //!< \~english sensor log type NONE
73 #define POS_SENSLOG_TYPE_SYS 1 //!< \~english sensor log type SYS
74 #define POS_SENSLOG_TYPE_GPS 2 //!< \~english sensor log type GPS
75 #define POS_SENSLOG_TYPE_NAV 3 //!< \~english sensor log type NAV
76 #define POS_SENSLOG_TYPE_CMD 4 //!< \~english sensor log type CMD
78 #define POS_SENSLOG_GET_ZONE(typ) \
79 (((typ) == (POS_SENSLOG_TYPE_SYS))?(ZONE_POS_SYS_IN):\
80 ((typ) == (POS_SENSLOG_TYPE_GPS))?(ZONE_POS_GPS_IN):\
81 ((typ) == (POS_SENSLOG_TYPE_NAV))?(ZONE_POS_NAV_IN):\
82 ((typ) == (POS_SENSLOG_TYPE_CMD))?(ZONE_POS_CMD_IN):\
84 //!< \~english get sensor log zone code
86 #define POS_WRITE_SENSLOG(zone, data, len) (((zone) != (0))?((void)((FRAMEWORKUNIFIEDLOG_DATA(zone, data, len)))):((void)(0)))
87 //!< \~english write sensor log output
88 #define POS_SENSLOG(typ, data, len) (POS_WRITE_SENSLOG(POS_SENSLOG_GET_ZONE(typ), data, len))
90 /* HW configuration type */
93 * This feature needs to be defined by the vendor.
95 #define UNIT_TYPE_NONE 0x00000000UL //!< \~english type none
96 #define UNIT_TYPE_UNKNOWN 0x00000001UL //!< \~english type unknown
97 #define UNIT_TYPE_GRADE1 0x00000002UL //!< \~english type Grade1
98 #define UNIT_TYPE_GRADE2 0x00000004UL //!< \~english type Grade2
100 #define MAX_NAME_LEN 32 //!< \~english name max length
101 #define _CWORD31__NO_SIZE 16 //!< \~english _CWORD31_ No size
102 #define RESERVE1_SIZE 16 //!< \~english reserve 1
103 #define HELPNET_ID_SIZE 21 //!< \~english helpnet ID size
104 #define RESERVE2_SIZE 11 //!< \~english reserve 2
105 #define DATE_SIZE 32 //!< \~english make time size
106 #define SERIAL_NO_SIZE 3 //!< \~english serial No size
107 #define PRODUCT_NAME_SIZE 1 //!< \~english product name size
109 #define _pb_memcpy memcpy
110 #define _pb_memset memset
113 #define RET_NORMAL 0 //!< \~english normal return
114 #define RET_ERROR (-1) //!< \~english error return
115 #define RET_ERRPARAM (-2) //!< \~english parameter error
117 #define SAPI_EVSET_ABSOLUTE 1 //!< \~english absolute vale set
118 #define SAPI_EVWAIT_VAL 1 //!< \~english event wait value set
120 /* sys common commandID definition */
121 #define CID_GPS_BASE (CID)0xF030
124 #define CID_TIMER_BASE (CID)0xF040
125 //!< \~english timer management
127 #define CID_INITIAL_BASE (CID)0xF100
128 //!< \~english initial
130 /* ResourceManager/CID definition */
131 #define CID_GPS_SERIAL0 (CID)0x0100
132 //!< \~english GPS reset request func definition
134 #define CID_GPS_REQRESET (CID)(CID_GPS_BASE | CID_GPS_SERIAL0)
135 //!< \~english GPS reset request CID
138 /* sys common commandID detail definition */
139 #define CID_COM_SERIAL4 (CID)0x0004
140 //!< \~english serial command ID 4
142 #define CID_COM_SERIAL6 (CID)0x0006
143 //!< \~english serial command ID 6
145 #define CID_COM_SERIAL7 (CID)0x0007
146 //!< \~english serial command ID 7
148 /* initial CID definition */
149 #define CID_INI_SYSTEMERR (CID)(CID_INITIAL_BASE | CID_COM_SERIAL6)
150 //!< \~english system abnormality notify
152 #define CID_INI_INTERNAL_ACCOFF_START (CID)(CID_INITIAL_BASE | CID_COM_SERIAL7)
153 //!< \~english internal ACC-OFF start Indication
155 /* timer control CID definition */
156 #define CID_TIMER_TOUT (CID)(CID_TIMER_BASE | CID_COM_SERIAL4)
157 //!< \~english timeout notify
161 #define PNO_NONE 0x0000 //!< \~english initial value
163 #define PNO__CWORD88___CWORD23_ 0x0100
164 //!< \~english _CWORD23_ primary thread
165 #define PNO_GINI_MAIN 0x0300
166 //!< \~english G initial
167 #define PNO_CLK_GPS 0x0316
168 //!< \~english clock GPS thread
169 #define PNO_VEHICLE_SENSOR 0x0363
170 //!< \~english vehicle sensor thread
171 #define PNO_LINE_SENS_DRV 0x0364
172 //!< \~english line sensor driver thread
173 #define PNO_NAVI_GPS_MAIN 0x0440
174 //!< \~english GPS communication manager thread
175 #define PNO_NAVI_GPS_RCV 0x0441
176 //!< \~english GPS receive thread
177 #define PNO__CWORD83_ 0x0900
178 //!< \~english _CWORD83_(Intersystem Communication Message)thread
180 #define SYS_PNO_MIN PNO__CWORD88___CWORD23_
181 //!< \~english minimum PNO.(normal process)
182 #define SYS_PNO_MAX PNO__CWORD83_
183 //!< \~english maximum PNO.(normal process)
185 /*---------------------------------------------------------------------------------*
186 * Typedef declaration *
187 *---------------------------------------------------------------------------------*/
188 typedef u_int32 EventID;
189 typedef int32 RET_API; //!< \~english _CWORD64_API return code
190 typedef u_int32 event_id;
191 typedef event_id SemID; //!< \~english semaphore ID
192 typedef u_int16 CID; //!< \~english command ID
194 typedef uint32_t UNIT_TYPE; //!< \~english unit type data type define
195 typedef int32 ANA_RET_API;
201 * \~english mode of receive message
204 RM_WAIT, //!< \~english wait until received message
205 RM_CHECKRCV //!< \~english do not wait message, return
210 * \~english definition of event reset mode
213 _CWORD64_EVENT_MANUALRESET_OFF = 0, //!< \~english manual reset off
214 _CWORD64_EVENT_MANUALRESET_ON, //!< \~english manual reset on
215 _CWORD64_EVENT_MANUALRESET_MAX //!< \~english manual reset max value
219 /*---------------------------------------------------------------------------------*
220 * Struct declaration *
221 *---------------------------------------------------------------------------------*/
223 * @struct _SECURITY_ATTRIBUTES
224 * \~english security attribute
226 typedef struct _SECURITY_ATTRIBUTES {
227 DWORD nLength; //!< \~english length
228 LPVOID lpSecurityDescriptor; //!< \~english data pointer
229 BOOL bInheritHandle; //!< \~english inherited handle
230 } SECURITY_ATTRIBUTES;
231 typedef SECURITY_ATTRIBUTES *PSECURITY_ATTRIBUTES; //!< \~english security attribute
232 typedef SECURITY_ATTRIBUTES *LPSECURITY_ATTRIBUTES; //!< \~english security attribute
234 /*---------------------------------------------------------------------------------*
235 * Prototype Declaration *
236 *---------------------------------------------------------------------------------*/
242 ////////////////////////////////////////////////////////////////////////////////////////////
243 /// \ingroup positioning_base_library
244 /// \~english @par Brief
245 /// - Create event by specified name
247 /// \~english @param [in] ucManualReset
248 /// - u_int8 manual reset mode
249 /// \~english @param [in] lInitData
250 /// - int32 event value
251 /// \~english @param [in] cpEventName
252 /// - char* event name
255 /// - manual reset mode(ucManualReset)
256 /// - _CWORD64_EVENT_MANUALRESET_OFF manual reset OFF
257 /// - _CWORD64_EVENT_MANUALRESET_ON manual reset ON
259 /// \~english @retval 0 event create failed
260 /// \~english @retval not 0 created event ID
262 /// \~english @par Precondition
263 /// - positioning_base_library initialization are completed \n
264 /// (_pb_Setup_CWORD64_API has already been called) in current process.
266 /// \~english @par changes of the internal status
267 /// - There is no changes of the internal status by this API
269 /// \~english @par Failure condition
270 /// - The parameter cpEventName is NULL
271 /// - The parameter ucManualReset is more than or equal _CWORD64_EVENT_MANUALRESET_MAX
272 /// - The string of parameter cpEventName has no text
273 /// - The string length of parameter cpEventName is longer than MAX_EVENT_NAME_LEN
274 /// - The event is created in same process, but the count of thread reference to the event is reach to the max
275 /// - The event is created in system, but the count of process reference to the event is reach to the max
276 /// - Memory allocate failed for creating event table
277 /// - During create the event table, the event flag register failed
278 /// - The event table is full
280 /// \~english @par Detail
281 /// - Call this API to create event and return the created event ID.
284 /// \~english @par Classification
287 /// \~english @par Type
290 ////////////////////////////////////////////////////////////////////////////////////////////
291 EventID _pb_CreateEvent(u_int8 ucManualReset, int32 lInitData, char *cpEventName);
293 ////////////////////////////////////////////////////////////////////////////////////////////
294 /// \ingroup positioning_base_library
295 /// \~english @par Brief
296 /// - Wait for the event specified by ID
298 /// \~english @param [in] eventID
299 /// - EventID event ID
300 /// \~english @param [in] lWaitMode
301 /// - int32 event wait mode
302 /// \~english @param [in] lMinVal
303 /// - int32 event wait min value
304 /// \~english @param [in] lMaxVal
305 /// - int32 event wait max value
306 /// \~english @param [out] plEventVal
307 /// - int32* event wait value output pointer
308 /// \~english @param [in] ulMillSecTime
309 /// - u_int32 timeout time(ms)
312 /// - event wait mode(lWaitMode)
313 /// - SAPI_EVWAIT_VAL
315 /// \~english @retval RET_NORMAL normal return
316 /// \~english @retval RET_EV_NONE parameter error or specified event not exist
317 /// \~english @retval RET_ERRTIMEOUT timeout
318 /// \~english @retval RET_ERROR other error
320 /// \~english @par Precondition
321 /// - positioning_base_library initialization are completed \n
322 /// (_pb_Setup_CWORD64_API has already been called) in current process.
324 /// \~english @par changes of the internal status
325 /// - There is no changes of the internal status by this API
327 /// \~english @par Failure condition
328 /// - The parameter plEventVal is NULL
329 /// - The parameter eventID is more than MAX_PB_EVENTS
330 /// - The specified event has not been registered in event table
331 /// - The count of threads which is waiting this event is reach max
332 /// - The parameter ulMillSecTime is 0
333 /// - The parameter ulMillSecTime is INFINITE, and wait event flag failed
334 /// - The parameter ulMillSecTime is not INFINITE, and timeout
335 /// - The parameter ulMillSecTime is not INFINITE, and get event flag failed
337 /// \~english @par Detail
338 /// - Call this API to wait event.
339 /// - This API will return after timeout or this event been set.
342 /// \~english @par Classification
345 /// \~english @par Type
348 ////////////////////////////////////////////////////////////////////////////////////////////
349 RET_API _pb_WaitEvent(EventID eventID, int32 lWaitMode, int32 lMinVal,
350 int32 lMaxVal, int32* plEventVal, u_int32 ulMillSecTime);
352 ////////////////////////////////////////////////////////////////////////////////////////////
353 /// \ingroup positioning_base_library
354 /// \~english @par Brief
355 /// - Set the value of event specified by ID
357 /// \~english @param [in] eventID
358 /// - EventID event ID
359 /// \~english @param [in] lSetMode
360 /// - int32 event value set mode
361 /// \~english @param [in] iVal
362 /// - int32 event value
365 /// - event value set mode(lSetMode)
366 /// - SAPI_EVSET_ABSOLUTE absolute value set(set parameter value)
367 /// - SAPI_EVSET_RELATE offset set(offset of current value set)
369 /// \~english @retval RET_NORMAL normal return
370 /// \~english @retval RET_ERRPARAM parameter error
371 /// \~english @retval RET_EV_NONE specified event not exist
373 /// \~english @par Precondition
374 /// - positioning_base_library initialization are completed \n
375 /// (_pb_Setup_CWORD64_API has already been called) in current process.
377 /// \~english @par changes of the internal status
378 /// - There is no changes of the internal status by this API
380 /// \~english @par Failure condition
381 /// - The parameter eventID is more than MAX_PB_EVENTS
382 /// - The specified event has not been registered in event table
383 /// - The parameter lSetMode is neither SAPI_EVSET_ABSOLUTE nor SAPI_EVSET_RELATE
385 /// \~english @par Detail
386 /// - Call this API to set event value.
389 /// \~english @par Classification
392 /// \~english @par Type
393 /// - Fire and Forget
395 ////////////////////////////////////////////////////////////////////////////////////////////
396 RET_API _pb_SetEvent(EventID eventID, int32 lSetMode, int32 lval);
398 ////////////////////////////////////////////////////////////////////////////////////////////
399 /// \ingroup positioning_base_library
400 /// \~english @par Brief
401 /// - Destroy the event specified by ID
403 /// \~english @param [in] eventID
404 /// - EventID event ID
406 /// \~english @retval RET_NORMAL normal return
407 /// \~english @retval RET_ERROR event flag destroy failed
408 /// \~english @retval RET_EV_NONE specified event not exist
410 /// \~english @par Precondition
411 /// - positioning_base_library initialization are completed \n
412 /// (_pb_Setup_CWORD64_API has already been called) in current process.
414 /// \~english @par changes of the internal status
415 /// - There is no changes of the internal status by this API
417 /// \~english @par Failure condition
418 /// - The parameter eventID is more than MAX_PB_EVENTS
419 /// - The specified event has not been registered in event table
420 /// - Event flag destroy failed
422 /// \~english @par Detail
423 /// - Call this API to destroy specified event.
426 /// \~english @par Classification
429 /// \~english @par Type
430 /// - Fire and Forget
432 ////////////////////////////////////////////////////////////////////////////////////////////
433 RET_API _pb_DeleteEvent(EventID eventID);
435 ////////////////////////////////////////////////////////////////////////////////////////////
436 /// \ingroup positioning_base_library
437 /// \~english @par Brief
438 /// - Initialization before call Base API(every process used Base API should call this API firstly).
440 /// \~english @param [in] hApp
441 /// - HANDLE app Handle
443 /// \~english @retval RET_NORMAL normal return
445 /// \~english @par Precondition
446 /// - The creation/initialization(FrameworkunifiedCreateDispatcherWithoutLoop and etc.) of the dispatcher for App are completed.
448 /// \~english @par changes of the internal status
449 /// - There is no changes of the internal status by this API
451 /// \~english @par Detail
452 /// - Call this API to initialize Base API.
453 /// - Every process used Base API should call this API firstly.
456 /// \~english @par Classification
459 /// \~english @par Type
460 /// - Fire and Forget
462 ////////////////////////////////////////////////////////////////////////////////////////////
463 RET_API _pb_Setup_CWORD64_API(HANDLE hApp);
465 ////////////////////////////////////////////////////////////////////////////////////////////
466 /// \ingroup positioning_base_library
467 /// \~english @par Brief
468 /// - Terminate current thread.
470 /// \~english @param [in] dwExitCode
471 /// - DWORD exit code(not used)
473 /// \~english @retval None
475 /// \~english @par Precondition
478 /// \~english @par changes of the internal status
479 /// - There is no changes of the internal status by this API
481 /// \~english @par Detail
482 /// - Call this API to terminate current thread.
485 /// \~english @par Classification
488 /// \~english @par Type
489 /// - Fire and Forget
491 ////////////////////////////////////////////////////////////////////////////////////////////
492 VOID _pb_ExitThread(DWORD dwExitCode);
494 ////////////////////////////////////////////////////////////////////////////////////////////
495 /// \ingroup positioning_base_library
496 /// \~english @par Brief
497 /// - Create the message queue
499 /// \~english @param [in] eventID
500 /// - EventID process No
502 /// \~english @retval RET_NORMAL normal return
503 /// \~english @retval RET_ERRPARAM parameter error
505 /// \~english @par Precondition
506 /// - positioning_base_library initialization are completed \n
507 /// (_pb_Setup_CWORD64_API has already been called) in current process.
509 /// \~english @par changes of the internal status
510 /// - There is no changes of the internal status by this API
512 /// \~english @par Failure condition
513 /// - The parameter pno is 0
514 /// - The name length of thread called this API is longer than MAX_QUEUE_NAME_SIZE
516 /// \~english @par Detail
517 /// - Call this API to create the message queue.
520 /// \~english @par Classification
523 /// \~english @par Type
524 /// - Fire and Forget
526 ////////////////////////////////////////////////////////////////////////////////////////////
527 RET_API _pb_CreateMsg(PNO pno);
529 ////////////////////////////////////////////////////////////////////////////////////////////
530 /// \ingroup positioning_base_library
531 /// \~english @par Brief
532 /// - Send message in process
534 /// \~english @param [in] pno
536 /// \~english @param [in] size
537 /// - u_int16 message size
538 /// \~english @param [in] msgbuf
539 /// - void* message buffer
540 /// \~english @param [in] mode
541 /// - u_int16 not used
543 /// \~english @retval RET_NORMAL normal return
544 /// \~english @retval RET_ERRPARAM parameter error
545 /// \~english @retval RET_ERROR other error
547 /// \~english @par Precondition
548 /// - positioning_base_library initialization are completed \n
549 /// (_pb_Setup_CWORD64_API has already been called) in current process.
551 /// \~english @par changes of the internal status
552 /// - There is no changes of the internal status by this API
554 /// \~english @par Failure condition
555 /// - The parameter msgbuf is NULL
556 /// - The parameter pno is 0
557 /// - The message queue specified by parameter pno has not been created
558 /// - Get sender Handle failed
559 /// - Send message failed
561 /// \~english @par Detail
562 /// - Call this API to send message in process.
565 /// \~english @par Classification
568 /// \~english @par Type
569 /// - Fire and Forget
571 ////////////////////////////////////////////////////////////////////////////////////////////
572 RET_API _pb_SndMsg(PNO pno, u_int16 size, void* msgbuf, u_int16 mode);
574 ////////////////////////////////////////////////////////////////////////////////////////////
575 /// \ingroup positioning_base_library
576 /// \~english @par Brief
577 /// - Send message between process
579 /// \~english @param [in] name
580 /// - PCSTR destination process name
581 /// \~english @param [in] cid
583 /// \~english @param [in] size
584 /// - u_int16 message size
585 /// \~english @param [in] msgbuf
586 /// - const void* message buffer
587 /// \~english @param [in] mode
588 /// - u_int16 not used
590 /// \~english @retval RET_NORMAL normal return
591 /// \~english @retval RET_ERRPARAM parameter error
592 /// \~english @retval RET_ERROR other error
594 /// \~english @par Precondition
595 /// - positioning_base_library initialization are completed \n
596 /// (_pb_Setup_CWORD64_API has already been called) in current process.
598 /// \~english @par changes of the internal status
599 /// - There is no changes of the internal status by this API
601 /// \~english @par Failure condition
602 /// - The parameter name is NULL
603 /// - The parameter msgbuf is NULL
604 /// - The length of parameter name is longer than MAX_QUEUE_NAME_SIZE
605 /// - Get sender Handle failed
606 /// - Send message failed
608 /// \~english @par Detail
609 /// - Call this API to send message between process.
612 /// \~english @par Classification
615 /// \~english @par Type
616 /// - Fire and Forget
618 ////////////////////////////////////////////////////////////////////////////////////////////
619 RET_API _pb_SndMsg_Ext(PCSTR name, CID cid, u_int16 size, const void* msgbuf, u_int16 mode);
621 ////////////////////////////////////////////////////////////////////////////////////////////
622 /// \ingroup positioning_base_library
623 /// \~english @par Brief
624 /// - Create semaphore by specified name
626 /// \~english @param [in] semName
627 /// - char* semaphore name
629 /// \~english @retval 0 semaphore create failed
630 /// \~english @retval not 0 created semaphore ID
632 /// \~english @par Precondition
633 /// - positioning_base_library initialization are completed \n
634 /// (_pb_Setup_CWORD64_API has already been called) in current process.
636 /// \~english @par changes of the internal status
637 /// - There is no changes of the internal status by this API
639 /// \~english @par Failure condition
640 /// - The parameter semName is NULL
641 /// - The string of parameter semName has no text
642 /// - The string length of parameter semName is longer than MAX_SEMAPHORE_NAME_LEN
643 /// - Memory allocate failed for creating semaphore table
644 /// - The semaphore table is full
646 /// \~english @par Detail
647 /// - Call this API to create semaphore and return the created semaphore ID.
650 /// \~english @par Classification
653 /// \~english @par Type
656 ////////////////////////////////////////////////////////////////////////////////////////////
657 SemID _pb_CreateSemaphore(char* semName);
659 ////////////////////////////////////////////////////////////////////////////////////////////
660 /// \ingroup positioning_base_library
661 /// \~english @par Brief
664 /// \~english @param [in] semID
665 /// - SemID semaphore ID
667 /// \~english @retval RET_NORMAL normal return
668 /// \~english @retval RET_OSERROR error return
670 /// \~english @par Precondition
671 /// - positioning_base_library initialization are completed \n
672 /// (_pb_Setup_CWORD64_API has already been called) in current process.
674 /// \~english @par changes of the internal status
675 /// - There is no changes of the internal status by this API
677 /// \~english @par Failure condition
678 /// - The parameter semName is 0
679 /// - The parameter semName is more than MAX_PB_SEMAPHORES
680 /// - The specified semaphore has not been registered in semaphore table
681 /// - The specified semaphore's mutex has not been created
682 /// - The specified semaphore's mutex lock failed
684 /// \~english @par Detail
685 /// - Call this API to get semaphore.
686 /// - This API will return after got semaphore.
689 /// \~english @par Classification
692 /// \~english @par Type
693 /// - Fire and Forget
695 ////////////////////////////////////////////////////////////////////////////////////////////
696 RET_API _pb_SemLock(SemID semID);
698 ////////////////////////////////////////////////////////////////////////////////////////////
699 /// \ingroup positioning_base_library
700 /// \~english @par Brief
701 /// - Semaphore unlock
703 /// \~english @param [in] semID
704 /// - SemID semaphore ID
706 /// \~english @retval RET_NORMAL normal return
707 /// \~english @retval RET_OSERROR error return
709 /// \~english @par Precondition
710 /// - positioning_base_library initialization are completed \n
711 /// (_pb_Setup_CWORD64_API has already been called) in current process.
713 /// \~english @par changes of the internal status
714 /// - There is no changes of the internal status by this API
716 /// \~english @par Failure condition
717 /// - The parameter semName is 0
718 /// - The parameter semName is more than MAX_PB_SEMAPHORES
719 /// - The specified semaphore has not been registered in semaphore table
720 /// - The specified semaphore's mutex has not been created
721 /// - The specified semaphore's mutex release failed
723 /// \~english @par Detail
724 /// - Call this API to relesae semaphore.
727 /// \~english @par Classification
730 /// \~english @par Type
731 /// - Fire and Forget
733 ////////////////////////////////////////////////////////////////////////////////////////////
734 RET_API _pb_SemUnlock(SemID semID);
736 ////////////////////////////////////////////////////////////////////////////////////////////
737 /// \ingroup positioning_base_library
738 /// \~english @par Brief
739 /// - Create Share Data
741 /// \~english @param [in] area_name
742 /// - char* share data name
743 /// \~english @param [in] size
744 /// - u_int32 data size
745 /// \~english @param [out] mem_ptr
746 /// - void** share memory pointer
748 /// \~english @retval RET_NORMAL normal return
749 /// \~english @retval RET_ERROR error return
751 /// \~english @par Precondition
752 /// - positioning_base_library initialization are completed \n
753 /// (_pb_Setup_CWORD64_API has already been called) in current process.
755 /// \~english @par changes of the internal status
756 /// - There is no changes of the internal status by this API
758 /// \~english @par Failure condition
759 /// - The parameter area_name is NULL
760 /// - The parameter mem_ptr is NULL
761 /// - The string of parameter area_name has no text
762 /// - The string length of parameter area_name is longer than MAX_AREA_NAME_LEN
763 /// - The parameter size is 0
764 /// - The specified share data has already been created
765 /// - Memory allocate failed for creating share data
766 /// - The specified share data file create failed
768 /// \~english @par Detail
769 /// - Call this API to create share data.
772 /// \~english @par Classification
775 /// \~english @par Type
778 ////////////////////////////////////////////////////////////////////////////////////////////
779 RET_API _pb_CreateShareData(char* area_name, u_int32 size, void** mem_ptr);
781 ////////////////////////////////////////////////////////////////////////////////////////////
782 /// \ingroup positioning_base_library
783 /// \~english @par Brief
784 /// - Link Share Data
786 /// \~english @param [in] area_name
787 /// - char* share data name
788 /// \~english @param [out] mem_ptr
789 /// - void** share memory pointer
790 /// \~english @param [in] size
791 /// - u_int32* data size
793 /// \~english @retval RET_NORMAL normal return
794 /// \~english @retval RET_ERROR error return
796 /// \~english @par Precondition
797 /// - positioning_base_library initialization are completed \n
798 /// (_pb_Setup_CWORD64_API has already been called) in current process.
800 /// \~english @par changes of the internal status
801 /// - There is no changes of the internal status by this API
803 /// \~english @par Failure condition
804 /// - The parameter area_name is NULL
805 /// - The parameter mem_ptr is NULL
806 /// - The string of parameter area_name has no text
807 /// - The string length of parameter area_name is longer than MAX_AREA_NAME_LEN
808 /// - The parameter size is NULL
809 /// - Memory allocate failed for linking share data
810 /// - The specified share data file open failed
812 /// \~english @par Detail
813 /// - Call this API to link share data.
816 /// \~english @par Classification
819 /// \~english @par Type
822 ////////////////////////////////////////////////////////////////////////////////////////////
823 RET_API _pb_LinkShareData(char* area_name, void** mem_ptr, u_int32* size);
825 ////////////////////////////////////////////////////////////////////////////////////////////
826 /// \ingroup positioning_base_library
827 /// \~english @par Brief
830 /// \~english @param [in] SndPno
831 /// - PNO source process No
832 /// \~english @param [in] TimerSeq
833 /// - u_int16 timer sequence No
834 /// \~english @param [in] TimerType
835 /// - u_int8 timer type
836 /// \~english @param [in] TimeOut
837 /// - u_int32 timeout time
840 /// - timer type(TimerType)
841 /// - TIMER_TYPE_SYN fixed term timer
842 /// - TIMER_TYPE_USN asynchronous timer
844 /// \~english @retval RET_NORMAL normal return
845 /// \~english @retval RET_ERRPARAM parameter error
846 /// \~english @retval RET_ERROR other error
848 /// \~english @par Precondition
849 /// - positioning_base_library initialization are completed \n
850 /// (_pb_Setup_CWORD64_API has already been called) in current process.
852 /// \~english @par changes of the internal status
853 /// - There is no changes of the internal status by this API
855 /// \~english @par Failure condition
856 /// - Initialization of positioning_base_library has not been done in current process
857 /// - The parameter TimerType is neither TIMER_TYPE_SYN nor TIMER_TYPE_USN
858 /// - The parameter TimeOut is 0
859 /// - The same timer has already been started
860 /// - Timer start failed
862 /// \~english @par Detail
863 /// - Call this API to start timer.
866 /// \~english @par Classification
869 /// \~english @par Type
870 /// - Fire and Forget
872 ////////////////////////////////////////////////////////////////////////////////////////////
873 RET_API _pb_ReqTimerStart(PNO SndPno, u_int16 TimerSeq, u_int8 TimeType, u_int32 TimeOut);
875 ////////////////////////////////////////////////////////////////////////////////////////////
876 /// \ingroup positioning_base_library
877 /// \~english @par Brief
880 /// \~english @param [in] SndPno
881 /// - PNO source process No
882 /// \~english @param [in] TimerSeq
883 /// - u_int16 timer sequence No
884 /// \~english @param [in] TimerType
885 /// - u_int8 timer type
888 /// - timer type(TimerType)
889 /// - TIMER_TYPE_SYN fixed term timer
890 /// - TIMER_TYPE_USN asynchronous timer
892 /// \~english @retval RET_NORMAL normal return
893 /// \~english @retval RET_ERROR error return
895 /// \~english @par Precondition
896 /// - positioning_base_library initialization are completed \n
897 /// (_pb_Setup_CWORD64_API has already been called) in current process.
899 /// \~english @par changes of the internal status
900 /// - There is no changes of the internal status by this API
902 /// \~english @par Failure condition
903 /// - Initialization of positioning_base_library has not been done in current process
904 /// - Timer stop failed
906 /// \~english @par Detail
907 /// - Call this API to stop timer.
910 /// \~english @par Classification
913 /// \~english @par Type
914 /// - Fire and Forget
916 ////////////////////////////////////////////////////////////////////////////////////////////
917 RET_API _pb_TimerStop(PNO SndPno, u_int16 TimerSeq, u_int8 TimeType);
919 ////////////////////////////////////////////////////////////////////////////////////////////
920 /// \ingroup positioning_base_library
921 /// \~english @par Brief
924 /// \~english @param [in] lpMutexAttributes
925 /// - LPSECURITY_ATTRIBUTES not used
926 /// \~english @param [in] bInitialOwner
928 /// \~english @param [in] lpName
929 /// - LPCTSTR mutex name
931 /// \~english @retval NULL error return
932 /// \~english @retval Except NULL created mutex Handle
934 /// \~english @par Precondition
935 /// - positioning_base_library initialization are completed \n
936 /// (_pb_Setup_CWORD64_API has already been called) in current process.
938 /// \~english @par changes of the internal status
939 /// - There is no changes of the internal status by this API
941 /// \~english @par Failure condition
942 /// - The parameter lpName is NULL
943 /// - The string length of pamareter lpName is longer than NAME_MAX
944 /// - Mutex lock map failed
946 /// \~english @par Detail
947 /// - Call this API to create mutex.
950 /// \~english @par Classification
953 /// \~english @par Type
956 ////////////////////////////////////////////////////////////////////////////////////////////
957 HANDLE _pb_CreateMutex(LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPCTSTR lpName);
959 ////////////////////////////////////////////////////////////////////////////////////////////
960 /// \ingroup positioning_base_library
961 /// \~english @par Brief
962 /// - Get message management table dump info.
964 /// \~english @param [out] pBuf
965 /// - void* output buffer
966 /// \~english @param [in/out] pLen
967 /// - uint8_t* output buffer size
969 /// \~english @retval None
971 /// \~english @par Precondition
972 /// - positioning_base_library initialization are completed \n
973 /// (_pb_Setup_CWORD64_API has already been called) in current process.
975 /// \~english @par changes of the internal status
976 /// - There is no changes of the internal status by this API
978 /// \~english @par Detail
979 /// - Call this API to get message management table dump info.
982 /// \~english @par Classification
985 /// \~english @par Type
988 ////////////////////////////////////////////////////////////////////////////////////////////
989 void _pb_GetDebugMsgMngTbl(void* pBuf, uint8_t* pLen);
991 ////////////////////////////////////////////////////////////////////////////////////////////
992 /// \ingroup positioning_base_library
993 /// \~english @par Brief
994 /// - Get mutex management table dump info.
996 /// \~english @param [out] pBuf
997 /// - void* output buffer
998 /// \~english @param [in/out] pLen
999 /// - uint8_t* output buffer size
1001 /// \~english @retval None
1003 /// \~english @par Precondition
1004 /// - positioning_base_library initialization are completed \n
1005 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1007 /// \~english @par changes of the internal status
1008 /// - There is no changes of the internal status by this API
1010 /// \~english @par Detail
1011 /// - Call this API to get mutex management table dump info.
1014 /// \~english @par Classification
1017 /// \~english @par Type
1020 ////////////////////////////////////////////////////////////////////////////////////////////
1021 void _pb_GetDebugMutexMngTbl(void* pBuf, uint8_t* pLen);
1023 ////////////////////////////////////////////////////////////////////////////////////////////
1024 /// \ingroup positioning_base_library
1025 /// \~english @par Brief
1026 /// - Get timer management table dump info.
1028 /// \~english @param [out] pBuf
1029 /// - void* output buffer
1031 /// \~english @retval None
1033 /// \~english @par Precondition
1034 /// - positioning_base_library initialization are completed \n
1035 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1037 /// \~english @par changes of the internal status
1038 /// - There is no changes of the internal status by this API
1040 /// \~english @par Detail
1041 /// - Call this API to get timer management table dump info.
1044 /// \~english @par Classification
1047 /// \~english @par Type
1050 ////////////////////////////////////////////////////////////////////////////////////////////
1051 void _pb_GetDebugTimerMngTbl(void* pBuf);
1053 ////////////////////////////////////////////////////////////////////////////////////////////
1054 /// \ingroup positioning_base_library
1055 /// \~english @par Brief
1056 /// - Get event management table dump info.
1058 /// \~english @param [out] pBuf
1059 /// - void* output buffer
1060 /// \~english @param [in/out] pLen
1061 /// - uint8_t* output buffer size
1063 /// \~english @retval None
1065 /// \~english @par Precondition
1066 /// - positioning_base_library initialization are completed \n
1067 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1069 /// \~english @par changes of the internal status
1070 /// - There is no changes of the internal status by this API
1072 /// \~english @par Detail
1073 /// - Call this API to get event management table dump info.
1076 /// \~english @par Classification
1079 /// \~english @par Type
1082 ////////////////////////////////////////////////////////////////////////////////////////////
1083 void _pb_GetDebugEventMngTbl(void* pBuf, uint8_t* pLen);
1085 ////////////////////////////////////////////////////////////////////////////////////////////
1086 /// \ingroup positioning_base_library
1087 /// \~english @par Brief
1088 /// - Get memory management table dump info.
1090 /// \~english @param [out] pBuf
1091 /// - void* output buffer
1093 /// \~english @retval None
1095 /// \~english @par Precondition
1096 /// - positioning_base_library initialization are completed \n
1097 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1099 /// \~english @par changes of the internal status
1100 /// - There is no changes of the internal status by this API
1102 /// \~english @par Detail
1103 /// - Call this API to get memory management table dump info.
1106 /// \~english @par Classification
1109 /// \~english @par Type
1112 ////////////////////////////////////////////////////////////////////////////////////////////
1113 void _pb_GetDebugMemoryMngTbl(void* pBuf);
1115 ////////////////////////////////////////////////////////////////////////////////////////////
1116 /// \ingroup positioning_base_library
1117 /// \~english @par Brief
1118 /// - Get common info management table dump info.
1120 /// \~english @param [out] pBuf
1121 /// - void* output buffer
1123 /// \~english @retval None
1125 /// \~english @par Precondition
1126 /// - positioning_base_library initialization are completed \n
1127 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1129 /// \~english @par changes of the internal status
1130 /// - There is no changes of the internal status by this API
1132 /// \~english @par Detail
1133 /// - Call this API to get common info management table dump info.
1136 /// \~english @par Classification
1139 /// \~english @par Type
1142 ////////////////////////////////////////////////////////////////////////////////////////////
1143 void _pb_GetDebugOtherMngTbl(void* pBuf);
1145 ////////////////////////////////////////////////////////////////////////////////////////////
1146 /// \ingroup positioning_base_library
1147 /// \~english @par Brief
1148 /// - Get current app Handle.
1150 /// \~english @param None
1152 /// \~english @retval 0 get Handle failed
1153 /// \~english @retval not 0 Handle
1155 /// \~english @par Precondition
1156 /// - positioning_base_library initialization are completed \n
1157 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1159 /// \~english @par changes of the internal status
1160 /// - There is no changes of the internal status by this API
1162 /// \~english @par Failure condition
1163 /// - Current app Handle has not been registered
1165 /// \~english @par Detail
1166 /// - Call this API to get current app Handle.
1169 /// \~english @par Classification
1172 /// \~english @par Type
1175 ////////////////////////////////////////////////////////////////////////////////////////////
1176 HANDLE _pb_GetAppHandle(void);
1178 ////////////////////////////////////////////////////////////////////////////////////////////
1179 /// \ingroup positioning_base_library
1180 /// \~english @par Brief
1181 /// - Set current app Handle.
1183 /// \~english @param [in] hApp
1184 /// - HANDLE app Handle
1186 /// \~english @retval None
1188 /// \~english @par Precondition
1189 /// - positioning_base_library initialization are completed \n
1190 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1192 /// \~english @par changes of the internal status
1193 /// - There is no changes of the internal status by this API
1195 /// \~english @par Detail
1196 /// - Call this API to get common info management table dump info.
1199 /// \~english @par Classification
1202 /// \~english @par Type
1203 /// - Fire and Forget
1205 ////////////////////////////////////////////////////////////////////////////////////////////
1206 void _pb_SetAppHandle(HANDLE hApp);
1208 ////////////////////////////////////////////////////////////////////////////////////////////
1209 /// \ingroup positioning_base_library
1210 /// \~english @par Brief
1211 /// - Base API stop process(every process used Base API should call this API before stop).
1213 /// \~english @param None
1215 /// \~english @retval None
1217 /// \~english @par Precondition
1218 /// - positioning_base_library initialization are completed \n
1219 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1221 /// \~english @par changes of the internal status
1222 /// - There is no changes of the internal status by this API
1224 /// \~english @par Detail
1225 /// - Call this API to stop Base API.
1226 /// - Every process used Base API should call this API before stop.
1229 /// \~english @par Classification
1232 /// \~english @par Type
1233 /// - Fire and Forget
1235 ////////////////////////////////////////////////////////////////////////////////////////////
1236 void _pb_Teardown_CWORD64_API(void);
1238 ////////////////////////////////////////////////////////////////////////////////////////////
1239 /// \ingroup positioning_base_library
1240 /// \~english @par Brief
1241 /// - Terminate current process.
1243 /// \~english @param [in] pFunc
1244 /// - char* source function
1245 /// \~english @param [in] line
1246 /// - int source line
1248 /// \~english @retval None
1250 /// \~english @par Precondition
1252 /// \~english @par changes of the internal status
1253 /// - There is no changes of the internal status by this API
1255 /// \~english @par Detail
1256 /// - Call this API to terminate current process.
1259 /// \~english @par Classification
1262 /// \~english @par Type
1263 /// - Fire and Forget
1265 ////////////////////////////////////////////////////////////////////////////////////////////
1266 void _pb_Exit_d(const char* pFunc, int line);
1267 #define _pb_Exit() _pb_Exit_d(__func__, __LINE__)
1269 ////////////////////////////////////////////////////////////////////////////////////////////
1270 /// \ingroup positioning_base_library
1271 /// \~english @par Brief
1272 /// - Receive message.
1274 /// \~english @param [in] pno
1275 /// - PNO process No
1276 /// \~english @param [in] size
1277 /// - u_int16 message size
1278 /// \~english @param [out] msgbuf
1279 /// - void* message buffer
1280 /// \~english @param [in] mode
1281 /// - u_int16 not used
1283 /// \~english @retval RET_NORMAL normal return
1284 /// \~english @retval RET_ERRPARAM parameter error
1285 /// \~english @retval RET_ERROR other error
1287 /// \~english @par Precondition
1288 /// - positioning_base_library initialization are completed \n
1289 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1291 /// \~english @par changes of the internal status
1292 /// - There is no changes of the internal status by this API
1294 /// \~english @par Failure condition
1295 /// - The parameter msgbuf is NULL
1296 /// - The parameter pno is 0
1297 /// - The message queue specified by parameter pno has not been created
1298 /// - Receive message failed
1299 /// - Receive message successrully, but the received message size is longer than parameter size
1300 /// - Get received message data failed
1302 /// \~english @par Detail
1303 /// - Call this API to receive message of specified pno.
1304 /// - This API will return after received message.
1307 /// \~english @par Classification
1310 /// \~english @par Type
1313 ////////////////////////////////////////////////////////////////////////////////////////////
1314 RET_API _pb_RcvMsg(PNO pno, u_int16 size, void** msgbuf, u_int16 mode);
1316 ////////////////////////////////////////////////////////////////////////////////////////////
1317 /// \ingroup positioning_base_library
1318 /// \~english @par Brief
1319 /// - Get send buffer for message transferring in process
1321 /// \~english @param [in] pno
1322 /// - PNO process No
1323 /// \~english @param [out] pSndBuf
1324 /// - void** send buffer
1326 /// \~english @retval RET_NORMAL normal return
1327 /// \~english @retval RET_ERRPARAM parameter error
1328 /// \~english @retval RET_ERROR other error
1330 /// \~english @par Precondition
1331 /// - positioning_base_library initialization are completed \n
1332 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1334 /// \~english @par changes of the internal status
1335 /// - There is no changes of the internal status by this API
1337 /// \~english @par Failure condition
1338 /// - The parameter pno is 0
1339 /// - The message queue specified by parameter pno has not been created
1340 /// - Get sender Handle failed
1341 /// - Get send buffer failed
1343 /// \~english @par Detail
1344 /// - Call this API to get send buffer for message transferring in process.
1347 /// \~english @par Classification
1350 /// \~english @par Type
1353 ////////////////////////////////////////////////////////////////////////////////////////////
1354 RET_API _pb_GetZcSndBuf(PNO pno, void** pSndBuf);
1356 ////////////////////////////////////////////////////////////////////////////////////////////
1357 /// \ingroup positioning_base_library
1358 /// \~english @par Brief
1359 /// - Send message in process
1361 /// \~english @param [in] pno
1362 /// - PNO process No
1363 /// \~english @param [in] size
1364 /// - u_int16 message size
1365 /// \~english @param [in] mode
1366 /// - u_int16 not used
1368 /// \~english @retval RET_NORMAL normal return
1369 /// \~english @retval RET_ERRPARAM parameter error
1370 /// \~english @retval RET_ERROR other error
1372 /// \~english @par Precondition
1373 /// - positioning_base_library initialization are completed \n
1374 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1376 /// \~english @par changes of the internal status
1377 /// - There is no changes of the internal status by this API
1379 /// \~english @par Failure condition
1380 /// - The parameter pno is 0
1381 /// - The message queue specified by parameter pno has not been created
1382 /// - Get sender Handle failed
1383 /// - Get send buffer failed
1384 /// - Set send buffer failed
1385 /// - Send message failed
1387 /// \~english @par Detail
1388 /// - Call this API to send message in process.
1391 /// \~english @par Classification
1394 /// \~english @par Type
1395 /// - Fire and Forget
1397 ////////////////////////////////////////////////////////////////////////////////////////////
1398 RET_API _pb_ZcSndMsg(PNO pno, u_int16 size, u_int16 mode);
1400 ////////////////////////////////////////////////////////////////////////////////////////////
1401 /// \ingroup positioning_base_library
1402 /// \~english @par Brief
1403 /// - Convert process name to pno
1405 /// \~english @param [in] name
1406 /// - PCSTR process name
1408 /// \~english @retval 0 convert failed
1409 /// \~english @retval not 0 converted PNO
1411 /// \~english @par Precondition
1412 /// - positioning_base_library initialization are completed \n
1413 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1415 /// \~english @par changes of the internal status
1416 /// - There is no changes of the internal status by this API
1418 /// \~english @par Failure condition
1419 /// - The parameter name is NULL
1420 /// - The size of parameter name is longer than THREAD_NAME_LEN_MAX
1422 /// \~english @par Detail
1423 /// - Call this API to convert process name to pno.
1426 /// \~english @par Classification
1429 /// \~english @par Type
1432 ////////////////////////////////////////////////////////////////////////////////////////////
1433 PNO _pb_CnvName2Pno(PCSTR name);
1435 ////////////////////////////////////////////////////////////////////////////////////////////
1436 /// \ingroup positioning_base_library
1437 /// \~english @par Brief
1438 /// - Convert pno to process name
1440 /// \~english @param [in] pno
1441 /// - PNO process No
1443 /// \~english @retval NULL convert failed
1444 /// \~english @retval not NULL converted process name
1446 /// \~english @par Precondition
1447 /// - positioning_base_library initialization are completed \n
1448 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1450 /// \~english @par changes of the internal status
1451 /// - There is no changes of the internal status by this API
1453 /// \~english @par Failure condition
1454 /// - The parameter pno has not been registered(not the return pno of _pb_CnvName2Pno).
1456 /// \~english @par Detail
1457 /// - Call this API to convert pno to process name.
1460 /// \~english @par Classification
1463 /// \~english @par Type
1466 ////////////////////////////////////////////////////////////////////////////////////////////
1467 PCSTR _pb_CnvPno2Name(PNO pno);
1469 ////////////////////////////////////////////////////////////////////////////////////////////
1470 /// \ingroup positioning_base_library
1471 /// \~english @par Brief
1472 /// - Get message resource
1474 /// \~english @param None
1476 /// \~english @retval TRUE normal return
1477 /// \~english @retval FALSE error(lack of resource)
1479 /// \~english @par Precondition
1480 /// - positioning_base_library initialization are completed \n
1481 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1483 /// \~english @par changes of the internal status
1484 /// - There is no changes of the internal status by this API
1486 /// \~english @par Detail
1487 /// - Call this API to get message resource.
1490 /// \~english @par Classification
1493 /// \~english @par Type
1494 /// - Fire and Forget
1496 ////////////////////////////////////////////////////////////////////////////////////////////
1497 BOOL _pb_GetMsgResource(void);
1499 ////////////////////////////////////////////////////////////////////////////////////////////
1500 /// \ingroup positioning_base_library
1501 /// \~english @par Brief
1502 /// - Get mutex resource
1504 /// \~english @param None
1506 /// \~english @retval TRUE normal return
1507 /// \~english @retval FALSE error(lack of resource)
1509 /// \~english @par Precondition
1510 /// - positioning_base_library initialization are completed \n
1511 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1513 /// \~english @par changes of the internal status
1514 /// - There is no changes of the internal status by this API
1516 /// \~english @par Detail
1517 /// - Call this API to get mutex resource.
1520 /// \~english @par Classification
1523 /// \~english @par Type
1524 /// - Fire and Forget
1526 ////////////////////////////////////////////////////////////////////////////////////////////
1527 BOOL _pb_GetMutexResource(void);
1529 ////////////////////////////////////////////////////////////////////////////////////////////
1530 /// \ingroup positioning_base_library
1531 /// \~english @par Brief
1532 /// - Get common resource
1534 /// \~english @param None
1536 /// \~english @retval TRUE normal return
1537 /// \~english @retval FALSE error(lack of resource)
1539 /// \~english @par Precondition
1540 /// - positioning_base_library initialization are completed \n
1541 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1543 /// \~english @par changes of the internal status
1544 /// - There is no changes of the internal status by this API
1546 /// \~english @par Detail
1547 /// - Call this API to get common resource.
1550 /// \~english @par Classification
1553 /// \~english @par Type
1554 /// - Fire and Forget
1556 ////////////////////////////////////////////////////////////////////////////////////////////
1557 BOOL _pb_GetOtherResource(void);
1559 ////////////////////////////////////////////////////////////////////////////////////////////
1560 /// \ingroup positioning_base_library
1561 /// \~english @par Brief
1562 /// - Release message resource
1564 /// \~english @param None
1566 /// \~english @retval None
1568 /// \~english @par Precondition
1569 /// - positioning_base_library initialization are completed \n
1570 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1572 /// \~english @par changes of the internal status
1573 /// - There is no changes of the internal status by this API
1575 /// \~english @par Detail
1576 /// - Call this API to release message resource.
1579 /// \~english @par Classification
1582 /// \~english @par Type
1583 /// - Fire and Forget
1585 ////////////////////////////////////////////////////////////////////////////////////////////
1586 void _pb_ReleaseMsgResource(void);
1588 ////////////////////////////////////////////////////////////////////////////////////////////
1589 /// \ingroup positioning_base_library
1590 /// \~english @par Brief
1591 /// - Release mutex resource
1593 /// \~english @param None
1595 /// \~english @retval None
1597 /// \~english @par Precondition
1598 /// - positioning_base_library initialization are completed \n
1599 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1601 /// \~english @par changes of the internal status
1602 /// - There is no changes of the internal status by this API
1604 /// \~english @par Detail
1605 /// - Call this API to release mutex resource.
1608 /// \~english @par Classification
1611 /// \~english @par Type
1612 /// - Fire and Forget
1614 ////////////////////////////////////////////////////////////////////////////////////////////
1615 void _pb_ReleaseMutexResource(void);
1617 ////////////////////////////////////////////////////////////////////////////////////////////
1618 /// \ingroup positioning_base_library
1619 /// \~english @par Brief
1620 /// - Release common resource
1622 /// \~english @param None
1624 /// \~english @retval None
1626 /// \~english @par Precondition
1627 /// - positioning_base_library initialization are completed \n
1628 /// (_pb_Setup_CWORD64_API has already been called) in current process.
1630 /// \~english @par changes of the internal status
1631 /// - There is no changes of the internal status by this API
1633 /// \~english @par Detail
1634 /// - Call this API to release common resource.
1637 /// \~english @par Classification
1640 /// \~english @par Type
1641 /// - Fire and Forget
1643 ////////////////////////////////////////////////////////////////////////////////////////////
1644 void _pb_ReleaseOtherResource(void);
1650 /** @}*/ // end of positioning_base_library
1651 /** @}*/ // end of vehicle_service
1652 /** @}*/ // end of BaseSystem
1653 #endif // POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_WPF_STD_H_