zj_platform.h

来自「组拨技术」· C头文件 代码 · 共 130 行

H
130
字号
/************************************************************************
* filename:  ZJ_platform.h
* created:   2007.05.15
* Function:  This is a head file for interface between ZJ module and platform.
* version:   0.8.5.0
************************************************************************/
#ifndef _ZJ_PLATFORM_H
#define _ZJ_PLATFORM_H

#include "ZJ_datapublic.h"

#ifdef __cplusplus
extern "C" {
#endif

/************************************************************************
* 接收终端实现接口定义
* 以下接口由移植平台系统实现,并提供给紫荆模块调用
************************************************************************/

/* 系统接口部分 */
ZJRESULT zjthread_create(zjthread_t * thread, zjthread_attr_t * attr, void * (*start_routine)(void *), void * arg);

ZJRESULT zjthread_mutex_init (zjthread_mutex_t *mutex, const zjthread_mutexattr_t *mutexattr);

ZJRESULT zjthread_mutex_destroy (zjthread_mutex_t *mutex);

ZJRESULT zjthread_mutex_lock (zjthread_mutex_t *mutex);

ZJRESULT zjthread_mutex_unlock (zjthread_mutex_t *mutex);

ZJRESULT zjthread_mutex_trylock (zjthread_mutex_t *mutex);

ZJRESULT zjthread_semaphore_init (zjthread_semaphore_t * semaphore, const zjthread_semaphoreattr_t * semaphoreattr);

ZJRESULT zjthread_semaphore_destory (zjthread_semaphore_t * semaphore);

ZJRESULT zjthread_semaphore_post(zjthread_semaphore_t * semaphore);

ZJRESULT zjthread_semaphore_timedwait(zjthread_semaphore_t * semaphore, long time);

void * zj_malloc(size_t size);

void zj_free(void *memblock);

ZJRESULT zj_Z2T_GetSystemTime(LPSYSTEMTIME pCurTime);


/* I2C操作接口 */

ZJRESULT zj_I2C_Read(unsigned char devaddr, unsigned char subaddr, unsigned char * data, long len);

ZJRESULT zj_I2C_Write(unsigned char devaddr, unsigned char subaddr, unsigned char * data, long len);

ZJRESULT zj_I2C_SetClockFreq(unsigned short freq);


/************************************************************************
* 数据获取
************************************************************************/

ZJRESULT zj_Z2T_SetRetrieveFilter(unsigned long requestId, ZJStreamFilter filter);

ZJRESULT zj_Z2T_StopRetrieve(unsigned long requestId );

ZJRESULT zj_Z2T_TuneTo(unsigned long frequency);

/************************************************************************
* 文件操作
************************************************************************/

ZJRESULT zj_IO_GetFileList(unsigned short * number, unsigned char * data, unsigned long * len);

ZJRESULT zj_IO_GetFreeSpace(unsigned long * space);

ZJRESULT zj_IO_Open(const char *filename, const char *mode, FILE * file);

ZJRESULT zj_IO_Read(zjfile_t* file, void *buffer, unsigned long *count);

ZJRESULT zj_IO_Write(zjfile_t* file, void *buffer, unsigned long  count);

ZJRESULT zj_IO_Seek(zjfile_t* file, long offset, short origin);

ZJRESULT zj_IO_Tell(zjfile_t* file, long * position);

ZJRESULT zj_IO_Flush(zjfile_t* file);

ZJRESULT zj_IO_Close(zjfile_t* file);

ZJRESULT zj_IO_Exist(char * filename);

ZJRESULT zj_IO_Delete(char * filename);

ZJRESULT zj_IO_Rename(char * filename, char * newfilename);

ZJRESULT zj_IO_GetAttribute(char * filename, ZJFileAttribute * attribute);



/* 加密模块接口调用 */

ZJRESULT zjca_CA2T_ShowMsg(const char* sMsg,unsigned short nDura,ZJCA_OSD_CANCEL_TYPE byCancel);

ZJRESULT zjca_CA2T_HideMsg (void);

ZJRESULT zjca_CA2T_NotifyEmail (ZJCA_EMAIL_NOTIFY_TYPE nShowType);

ZJRESULT zjca_CA2T_GetStoreBufferAddr(long * pSize, char ** vStartAddr);

ZJRESULT zjca_CA2T_GetStoredData(const char * pStartAddr, long * pDataLen, unsigned char* pData);

ZJRESULT zjca_CA2T_StoreData(const char * pStartAddr, long * pDataLen, const unsigned char* pData);

ZJRESULT zjca_CA2T_GetTerminalInfo(ZJCATerminalInfo* termInfo);

ZJRESULT zjca_CA2T_ShowDebugMsg (const char* sMsg);


ZJRESULT zjca_CA2T_APDUCommand(long* pbyLen, const unsigned char* sCommand, unsigned char sReply[256]);

ZJRESULT zjca_CA2T_CardReset(unsigned char *cOut, long *Olen);
#ifdef __cplusplus
}
#endif

#endif



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?