diff options
Diffstat (limited to 'vehicleservice/positioning_base_library/library/include/vehicle_service')
6 files changed, 2281 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 100755 index 0000000..085640a --- /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_ diff --git a/vehicleservice/positioning_base_library/library/include/vehicle_service/pos_message_header.h b/vehicleservice/positioning_base_library/library/include/vehicle_service/pos_message_header.h new file mode 100755 index 0000000..b6af335 --- /dev/null +++ b/vehicleservice/positioning_base_library/library/include/vehicle_service/pos_message_header.h @@ -0,0 +1,77 @@ +/* + * @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 _POS_MESSAGE_HEADER_ // NOLINT(build/header_guard) +#define _POS_MESSAGE_HEADER_ + +/** + * @file pos_message_header.h + * @brief Header file for message data definitions + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup vehicle_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup positioning_base_library + * @ingroup vehicle_service + * @{ + */ + +#include <sys/types.h> + +/** + * @struct T_APIMSG_HEADER + * \~english _CWORD64_API message header structure + */ +typedef struct { + uint16_t replyid; //!< \~english message send result notify dest ID + uint16_t sndpno; //!< \~english message send source process No + uint16_t respno; //!< \~english message response process No + uint16_t cid; //!< \~english message command ID + uint16_t msgbodysize; //!< \~english message body size + uint8_t rid; //!< \~english message resource ID */ + uint8_t reserve; //!< \~english reserve + uint8_t filler[2]; //!< \~english filter +} T_APIMSG_HEADER; + +/** + * @struct T_APIMSG_MSGBUF_HEADER + * \~english _CWORD64_API message buffer header structure + */ +typedef struct { + uint32_t signo; //!< \~english signal No, _pb_SndMsg to set 0 + T_APIMSG_HEADER hdr; //!< \~english message header +} T_APIMSG_MSGBUF_HEADER; + +/** + * @struct _CWORD64_MSG_LOG_HDR + * \~english _CWORD64_API message log header structure + */ +typedef struct { + uint32_t kickTime; //!< \~english kick time + uint32_t srCid; //!< \~english message command ID + uint32_t pno; //!< \~english process No + uint32_t dataBytes; //!< \~english data size +} _CWORD64_MSG_LOG_HDR; + +/** @}*/ // end of positioning_base_library +/** @}*/ // end of vehicle_service +/** @}*/ // end of BaseSystem +#endif // _POS_MESSAGE_HEADER_ diff --git a/vehicleservice/positioning_base_library/library/include/vehicle_service/positioning_base_library.h b/vehicleservice/positioning_base_library/library/include/vehicle_service/positioning_base_library.h new file mode 100755 index 0000000..c6ce3ce --- /dev/null +++ b/vehicleservice/positioning_base_library/library/include/vehicle_service/positioning_base_library.h @@ -0,0 +1,46 @@ +// +// @copyright Copyright (c) 2017-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 VEHICLESERVICE_POSITIONINGBASELIBRARY_H_ // NOLINT(build/header_guard) +#define VEHICLESERVICE_POSITIONINGBASELIBRARY_H_ // NOLINT(build/header_guard) + +/** + * @file positioning_base_library.h + * @brief Common header of positioning_base_library + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup vehicle_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup positioning_base_library + * @ingroup vehicle_service + * @{ + */ + +#include <vehicle_service/WPF_STD.h> +#include <vehicle_service/sys_timerapi.h> +#include <vehicle_service/std_types.h> +#include <vehicle_service/pos_message_header.h> + +/** @}*/ // end of positioning_base_library +/** @}*/ // end of vehicle_service +/** @}*/ // end of BaseSystem +#endif // VEHICLESERVICE_POSITIONINGBASELIBRARY_H_ diff --git a/vehicleservice/positioning_base_library/library/include/vehicle_service/positioning_positioningbaselibrarylog.h b/vehicleservice/positioning_base_library/library/include/vehicle_service/positioning_positioningbaselibrarylog.h new file mode 100755 index 0000000..b0fd4e1 --- /dev/null +++ b/vehicleservice/positioning_base_library/library/include/vehicle_service/positioning_positioningbaselibrarylog.h @@ -0,0 +1,91 @@ +/* + * @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. + */ + +/* + * This file has been generated automatically. + * User hand written code entry is not allowed. Do not modify the file content. + * + */ +#ifndef POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_POSITIONING_POSITIONINGBASELIBRARYLOG_H_ +#define POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_POSITIONING_POSITIONINGBASELIBRARYLOG_H_ + +/* Include Files */ +#include <native_service/ns_logger_if.h> + +#define ZONE_INIT ZONEMASK(10) +#define ZONE_FUNC ZONEMASK(11) +#define ZONE_MEM ZONEMASK(12) +#define ZONE_APP ZONEMASK(13) +#define ZONE_14 ZONEMASK(14) +#define ZONE_15 ZONEMASK(15) +#define ZONE_16 ZONEMASK(16) +#define ZONE_17 ZONEMASK(17) +#define ZONE_18 ZONEMASK(18) +#define ZONE_19 ZONEMASK(19) +#define ZONE_20 ZONEMASK(20) +#define ZONE_21 ZONEMASK(21) +#define ZONE_22 ZONEMASK(22) +#define ZONE_23 ZONEMASK(23) +#define ZONE_24 ZONEMASK(24) +#define ZONE_25 ZONEMASK(25) +#define ZONE_26 ZONEMASK(26) +#define ZONE_27 ZONEMASK(27) +#define ZONE_28 ZONEMASK(28) +#define ZONE_INFO ZONEMASK(29) +#define ZONE_WARN ZONEMASK(30) +#define ZONE_ERR ZONEMASK(31) + +#define ZONE_POS_SYS_IN ZONE_SP_ZONE_99 +#define ZONE_POS_GPS_IN ZONE_SP_ZONE_100 +#define ZONE_POS_CMD_IN ZONE_SP_ZONE_101 +#define ZONE_POS_NAV_IN ZONE_SP_ZONE_102 + +#define ZONE_TEXT_10 "Init" +#define ZONE_TEXT_11 "Function" +#define ZONE_TEXT_12 "Memory" +#define ZONE_TEXT_13 "StateMachine Example" +#define ZONE_TEXT_14 "" +#define ZONE_TEXT_15 "" +#define ZONE_TEXT_16 "" +#define ZONE_TEXT_17 "" +#define ZONE_TEXT_18 "" +#define ZONE_TEXT_19 "" +#define ZONE_TEXT_20 "" +#define ZONE_TEXT_21 "" +#define ZONE_TEXT_22 "" +#define ZONE_TEXT_23 "" +#define ZONE_TEXT_24 "" +#define ZONE_TEXT_25 "" +#define ZONE_TEXT_26 "" +#define ZONE_TEXT_27 "" +#define ZONE_TEXT_28 "" +#define ZONE_TEXT_29 "Info" +#define ZONE_TEXT_30 "Warning" +#define ZONE_TEXT_31 "Error" + +#ifndef FRAMEWORKUNIFIEDLOGOPTIONS +#define FRAMEWORKUNIFIEDLOGOPTIONS (LPRINT) /* LPRINT, LMSGQ, LSLOGGER */ +#endif + +#ifndef FRAMEWORKUNIFIEDLOGAPPZONES +#define FRAMEWORKUNIFIEDLOGAPPZONES ZONE_INIT, ZONE_ERR, ZONE_14, ZONE_INFO, ZONE_POS_SYS_IN, ZONE_POS_GPS_IN, ZONE_POS_CMD_IN, \ + ZONE_POS_NAV_IN +#endif + +#define PS_APPNAME_MAX 12 +extern const CHAR kAppName[PS_APPNAME_MAX]; + +#endif // POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_POSITIONING_POSITIONINGBASELIBRARYLOG_H_ diff --git a/vehicleservice/positioning_base_library/library/include/vehicle_service/std_types.h b/vehicleservice/positioning_base_library/library/include/vehicle_service/std_types.h new file mode 100755 index 0000000..41ebbc8 --- /dev/null +++ b/vehicleservice/positioning_base_library/library/include/vehicle_service/std_types.h @@ -0,0 +1,55 @@ +/* + * @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_STD_TYPES_H_ +#define POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_STD_TYPES_H_ + +/** + * @file std_types.h + * @brief Header file for base type definitions + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup vehicle_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup positioning_base_library + * @ingroup vehicle_service + * @{ + */ + +typedef signed char int8; +typedef unsigned char u_int8; +typedef signed short int int16; +typedef unsigned short int u_int16; +typedef signed int int32; +typedef unsigned int u_int32; +typedef float float_t; +typedef double double_t; + +#ifndef NULL +#ifdef __cplusplus +#define NULL 0 +#else +#define NULL ((void *)0) +#endif +#endif +/** @}*/ // end of positioning_base_library +/** @}*/ // end of vehicle_service +/** @}*/ // end of BaseSystem +#endif // POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_STD_TYPES_H_ diff --git a/vehicleservice/positioning_base_library/library/include/vehicle_service/sys_timerapi.h b/vehicleservice/positioning_base_library/library/include/vehicle_service/sys_timerapi.h new file mode 100755 index 0000000..03a24ff --- /dev/null +++ b/vehicleservice/positioning_base_library/library/include/vehicle_service/sys_timerapi.h @@ -0,0 +1,359 @@ +/* + * @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_SYS_TIMERAPI_H_ +#define POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_SYS_TIMERAPI_H_ + +/** + * @file sys_timerapi.h + * @brief Header file for timer management + */ + +/** @addtogroup BaseSystem + * @{ + */ +/** @addtogroup vehicle_service + * @ingroup BaseSystem + * @{ + */ +/** @addtogroup positioning_base_library + * @ingroup vehicle_service + * @{ + */ + +/*---------------------------------------------------------------------------------* + * Definition * + *---------------------------------------------------------------------------------*/ + +#define WTM_DUPTIME_MAX 5 //!< \~english duplication timer max count + +#define TIMER_TYPE_SYN 1 +//!< \~english fixing cycle timer(unit: 100ms) +#define TIMER_TYPE_USN 2 +//!< \~english asynchronous timer(unit: 100ms) +#define TIMER_TYPE_ALM 5 //!< \~english specific time timer + +#define SUN 0 //!< \~english sunday +#define MON 1 //!< \~english monday +#define TUE 2 //!< \~english tuesday +#define WED 3 //!< \~english wednesday +#define THU 4 //!< \~english thursday +#define FRI 5 //!< \~english friday +#define SAT 6 //!< \~english saturday +#define DEFAULT_DIFFTIME 0x00 //!< \~english time difference value of japan + +#define GPS_SAT 0x00 //!< \~english corrected GPS time +#define GPS_IST 0x01 //!< \~english not corrected GPS time +#define GPS_RTC 0x02 //!< \~english RTC time +#define GPS_IRG 0x03 //!< \~english initial time +#define GPS_NON 0x7E //!< \~english GPS unused +#define GPS_IGN 0x7F //!< \~english time not received + +#define END_TIMER_RPT_OFF 0 //!< \~english No continuation +#define END_TIMER_RPT_ON 1 //!< \~english With continuation + +#define CID_TIMER_SETGPS 0x4040 +//!< \~english command ID of GPS setting timer +#define CID_TIMER_DIFSET 0x4045 +//!< \~english command ID of time difference setting timer +#define CID_TIMER_CYCLE (CID)(CID_TIMER_BASE | CID_COM_SERIAL5) +//!< \~english command ID of cycle data receive timer + +#define CNV_YEAR_MAX 136 +//!< \~english max value of conversion year(number of years + 1) +#define SEC_PER_MIN 60 //!< \~english 60[sec] +#define SEC_PER_HOUR 3600 //!< \~english 60[min] * 60[sec] +#define SEC_PER_DAY 86400 //!< \~english 24[h] * 60[min] * 60[sec] + +#define TIM_ROLOVR_DISABLE 0 //!< \~english GPS week rollover correct prohibition +#define TIM_ROLOVR_ENABLE 1 //!< \~english GPS week rollover correct permission + +/* + * Definition + * \~english timer manager error definition + */ +#define RET_ERR_NONEINIT (-30) //!< \~english initialization untreated error +#define RET_ERR_SEMLOCK (-31) //!< \~english get semaphore error +#define RET_ERR_SEMUNLOCK (-32) //!< \~english open semaphore error +#define RET_ERR_SRAMREAD (-33) //!< \~english read SRAM error + +/* + * Definition + * \~english command notify information definition(almanac abnormality notify, and time enable notify) + */ +#define TIM_NUM_SNDCMD 4 //!< \~english command send number + +#define NON_TIMEUNIT_INVALID_TIME 0 +//!< \~english No time manager unit - system time not set +#define NON_TIMEUNIT_VALID_TIME 1 +//!< \~english No time manager unit - system time set complete +#define GPS_INVALID_TIME 2 +//!< \~english With GPS unit - system time not set +#define GPS_VALID_TIME 3 +//!< \~english With GPS unit - system time set complete + +#define TMT_RETRY 3 //!< \~english retry count +#define TMT_RETRY_INTERVAL 500 //!< \~english retry interval(500[msec]) + + +/*---------------------------------------------------------------------------------* + * Struct declaration * + *---------------------------------------------------------------------------------*/ + +/** + * \~english define data type + */ +typedef struct { + u_int32 TimeOut[WTM_DUPTIME_MAX]; //!< \~english timeout value + u_int8 ContFlg; //!< \~english continue flag + u_int8 Dummy1; //!< \~english dummy data + u_int16 Dummy2; //!< \~english dummy data +} TimerDupData; + +/** + * @struct RealTimeData + * \~english current time data + */ +typedef struct { + u_int16 Yyear; //!< \~english current time(year:A.D.) + u_int8 Mmonth; //!< \~english (month) + u_int8 Dday; //!< \~english (day) + u_int8 Hhour; //!< \~english (hour) + u_int8 Mmin; //!< \~english (min) + u_int8 Ssec; //!< \~english (sec) + u_int8 Wweek; //!< \~english (week) + u_int8 CrtFlg; //!< \~english GPS time not corrected/corrected flag + u_int8 CrtHou; //!< \~english the last correction(hour) + u_int8 CrtMin; //!< \~english min + u_int8 CrtSec; //!< \~english sec +} RealTimeData; + +/** + * @struct RealTimeDataBcd + * \~english current time data(BCD format) + */ +typedef struct { + u_int16 Yyear; //!< \~english current time(year:A.D.BCD ex.0x1998) + u_int8 Mmonth; //!< \~english (month BCD 0x01 to 0x12) + u_int8 Dday; //!< \~english (day BCD 0x01 to 0x31) + u_int8 Hhour; //!< \~english (hour BCD 0x00 to 0x23) + u_int8 Mmin; //!< \~english (min BCD 0x00 to 0x59) + u_int8 Ssec; //!< \~english (sec BCD 0x00 to 0x59) + u_int8 Wweek; //!< \~english (week BIN 0x00 to 0x06) + u_int8 CrtFlg; + //!< \~english GPS time not corrected or corrected flag(BIN 0x00 to 0x03) + u_int8 CrtHou; //!< \~english the last correction(hour BCD 0x00 to 0x23) + u_int8 CrtMin; //!< \~english (min BCD 0x00 to 0x59) + u_int8 CrtSec; //!< \~english (sec BCD 0x00 to 0x59) +} RealTimeDataBcd; + +/** + * @struct GpsSetData + * \~english GPS time setting data + */ +typedef struct { + u_int16 Yyear; //!< \~english current time(year:A.D.) + u_int8 Mmonth; //!< \~english (month) + u_int8 Dday; //!< \~english (day) + u_int8 Hhour; //!< \~english (hour) + u_int8 Mmin; //!< \~english (min) + u_int8 Ssec; //!< \~english (sec) + u_int8 Dummy; //!< \~english dummy data +} GpsSetData; + +/** + * @struct TimerToutMsg + * \~english timeout message + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + u_int16 TimerSeq; //!< \~english timer sequence No.(claimant specific) + u_int16 Dummy; //!< \~english dummy +} TimerToutMsg; + +/** + * @struct TimerTimeReq + * \~english timer start request + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + PNO SndPno; //!< \~english process No.(claimant specific) + u_int16 TimerSeq; //!< \~english timer sequence No.(claimant specific) + u_int8 TimeType; //!< \~english timer type + u_int8 Dummy[3]; //!< \~english dummy data + TimerDupData DupData; //!< \~english timeout value +} TimerTimeReq; + +/** + * @struct TimerAlrmReq + * \~english time specified timer start request + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + PNO SndPno; //!< \~english process No.(claimant specific) + u_int16 TimerSeq; //!< \~english timer sequence No.(claimant specific) + u_int8 TimeHou; //!< \~english specific timeout hour + u_int8 TimeMin; //!< \~english min + u_int8 TimeSec; //!< \~english sec + u_int8 Dummy; //!< \~english dummy +} TimerAlrmReq; + +/** + * @struct TimerStopReq + * \~english timer stop request + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + PNO SndPno; //!< \~english process No.(claimant specific) + u_int16 TimerSeq; //!< \~english timer sequence No.(claimant specific) + u_int8 TimeType; //!< \~english timer type + u_int8 Dummy[3]; //!< \~english dummy data +} TimerStopReq; + +/** + * @struct GpsSetTimeReq + * \~english GPS RTC time set request + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + PNO SndPno; //!< \~english process No.(claimant specific) + u_int8 Dummy1; //!< \~english dummy data + u_int8 Dummy2; //!< \~english dummy data + GpsSetData SetData; //!< \~english GPS setting data +} GpsSetTimeReq; + +/** + * @struct GpsSetTimeReq + * \~english time difference set request + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + int8 DiffTime; //!< \~english time difference value + int8 Dummy1; //!< \~english dummy data + int16 Dummy2; //!< \~english dummy data +} SetDiffTimeReq; + + +/** + * @struct T_TIM_RCV_DATA + * \~english command notify information structure + */ +typedef struct { + PNO SndPno; //!< \~english command delivery PNO + u_int8 ucAlmanc_Flg; + //!< \~english almanac abnormal judgement notify complete flag + u_int8 ucInvalid_Flg; + //!< \~english time acquisition notify complete flag +} T_TIM_RCV_DATA; + +/** + * @struct TimerSramData + * \~english timer SRAM data structure + */ +typedef struct { + u_int32 navitime; //!< \~english Navi operation addition time + int8 _difftime; //!< \~english time difference value of current time + int8 timeUnit; //!< \~english specific time manager unit + int8 dummy[2]; //!< \~english dummy data + T_TIM_RCV_DATA timCmdData[TIM_NUM_SNDCMD]; + //!< \~english command receive information +} TimerSramData; + +/** + * @struct SysTimeData + * \~english system time data + */ +typedef struct { + u_int16 Yyear; //!< \~english current time(year:A.D.BCD ex. 0x1998) + u_int8 Mmonth; //!< \~english (month BCD 0x01 to 0x12) + u_int8 Dday; //!< \~english (day BCD 0x01 to 0x31) + u_int8 Hhour; //!< \~english (hour BCD 0x00 to 0x23) + u_int8 Mmin; //!< \~english (min BCD 0x00 to 0x59) + u_int8 Ssec; //!< \~english (sec BCD 0x00 to 0x59) + u_int8 Wweek; //!< \~english (week BIN 0x00 to 0x06) +} SysTimeData; + +/** + * @struct YearCntTbl + * \~english year convert table + */ +typedef struct TimeCnvTbl_tag { + uint32_t ulYear; //!< \~english year + uint32_t ulCount; //!< \~english count + uint32_t ulMonth[12]; //!< \~english month +} YearCntTbl; + +/** + * @struct DayCntTbl + * \~english day convert table + */ +typedef struct DayCnvTbl_tag { + YearCntTbl stTbl[CNV_YEAR_MAX]; //!< \~english year convert table +} DayCntTbl; + +/** + * @struct TG_TIM_ROLOVR_GPSWEEKCORDATA + * \~english GPS week correction data + */ +typedef struct { + u_int8 gpsweekcorcnt; //!< \~english GPS week rollover correct count + u_int8 permission; //!< \~english GPS week rollover correct permission + u_int8 dummy[2]; //!< \~english dummy data +} TG_TIM_ROLOVR_GPSWEEKCORDATA; + +/** + * @struct TIMECHGIND_MSG + * \~english time change information message structure + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + RealTimeData RealTime; //!< \~english data body(current time data) +} TIMECHGIND_MSG; + +/** + * @struct T_TIM_CMDMSG + * \~english time available notification/almanac abnormality notification structure + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header +} T_TIM_CMDMSG; + +/** + * @struct T_TIM_RETTIMEMSG + * \~english time setting response message + */ +typedef struct { + T_APIMSG_MSGBUF_HEADER Header; //!< \~english message header + int8 cResult; //!< \~english process result + int8 dummy[2]; //!< \~english dummy data +} T_TIM_RETTIMEMSG; + +/** + * @struct TimerModDat + * \~english current time data module structure + */ +typedef struct { + u_int32 InitFlg; //!< \~english initialization complete flag + u_int8 CrtFlg; //!< \~english corrected/not corrected flag + u_int8 CrtHou; //!< \~english the last correction: hour + u_int8 CrtMin; //!< \~english min + u_int8 CrtSec; //!< \~english sec +} TimerModDat; + +/** @}*/ // end of positioning_base_library +/** @}*/ // end of vehicle_service +/** @}*/ // end of BaseSystem +#endif // POSITIONING_BASE_LIBRARY_LIBRARY_INCLUDE_VEHICLE_SERVICE_SYS_TIMERAPI_H_ + |