更新硬件SDK

This commit is contained in:
kerwincui
2023-03-04 03:44:56 +08:00
parent dcdf6e1b7c
commit e39d3d2f03
1900 changed files with 663153 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
/**************************************************************************
* Copyright (C), AirM2M Tech. Co., Ltd.
*
* Name: iconv.c
* Author: liweiqiang
* Version: V0.1
* Date: 2013/7/15
*
* Description:
* <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
**************************************************************************/
/*
@module iconv
@summary <20>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
@version V0.1
@data 2021<32><31>12<31><32>13<31><33>
*/
#include <string.h>
#include "iconv.h"
#include "prv_iconv.h"
typedef struct builtin_iconv_map_tag
{
const char *from;
const char *to;
const iconv_fct fct;
}builtin_iconv_map;
static const builtin_iconv_map iconv_map[] =
{
{"ucs2", "gb2312", iconv_ucs2_to_gb2312},
/*+\NEW\liweiqiang\2013.11.26\<5C><><EFBFBD><EFBFBD>gb2312<->ucs2(ucs2be)<29><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>*/
{"ucs2be", "gb2312", iconv_ucs2be_to_gb2312},
{"gb2312", "ucs2", iconv_gb2312_to_ucs2},
{"gb2312", "ucs2be", iconv_gb2312_to_ucs2be},
/*-\NEW\liweiqiang\2013.11.26\<5C><><EFBFBD><EFBFBD>gb2312<->ucs2(ucs2be)<29><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>*/
/*+\NEW\liweiqiang\2013.7.19\<5C><><EFBFBD><EFBFBD>utf8<->ucs2,ucs2be<62><65><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>*/
{"utf8", "ucs2", iconv_utf8_to_ucs2},
{"utf8", "ucs2be", iconv_utf8_to_ucs2be},
{"ucs2", "utf8", iconv_ucs2_to_utf8},
{"ucs2be", "utf8", iconv_ucs2be_to_utf8},
/*-\NEW\liweiqiang\2013.7.19\<5C><><EFBFBD><EFBFBD>utf8<->ucs2,ucs2be<62><65><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>*/
};
/*
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@function iconv.open(tocode, fromcode)
@string tocode$Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ$gb2312/ucs2/ucs2be/utf8
@string fromcode$Դ<><D4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ$gb2312/ucs2/ucs2be/utf8
@return table$cd$<24><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>$
@usage
--unicode<64><65><EFBFBD>˱<EFBFBD><CBB1><EFBFBD> ת<><D7AA>Ϊ utf8<66><38><EFBFBD><EFBFBD>
local cd = iconv.open("utf8", "ucs2be")
*/
iconv_t iconv_open (const char * to_code, const char * from_code)
{
size_t i;
for(i = 0; i < sizeof(iconv_map)/sizeof(iconv_map[0]); i++)
{
if(strcmp(iconv_map[i].from, from_code) == 0 &&
strcmp(iconv_map[i].to, to_code) == 0)
{
return (iconv_t)&iconv_map[i];
}
}
return (iconv_t)-1;
}
/*
<EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
@function cd:iconv(inbuf)
@string inbuf$<24><><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>$<24><><EFBFBD><EFBFBD>:ucs2s
@return number$result$<24><><EFBFBD>ر<EFBFBD><D8B1><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD>$0<>ɹ<EFBFBD>,-1ʧ<31><CAA7>
@usage
--unicode<64><65><EFBFBD>˱<EFBFBD><CBB1><EFBFBD> ת<><D7AA>Ϊ utf8<66><38><EFBFBD><EFBFBD>
function ucs2beToUtf8(ucs2s)
local cd = iconv.open("utf8", "ucs2be")
return cd:iconv(ucs2s)
end
*/
size_t iconv_convert (iconv_t __cd, char ** __inbuf, size_t * __inbytesleft, char ** __outbuf, size_t * __outbytesleft)
{
builtin_iconv_map *_map_cd = (builtin_iconv_map *)__cd;
if(__inbuf == NULL || *__inbuf == NULL)
return (size_t)-1;
if(_map_cd < &iconv_map[0] &&
_map_cd > &iconv_map[sizeof(iconv_map)/sizeof(iconv_map[0])])
return (size_t)-1;
return _map_cd->fct(__inbuf, __inbytesleft, __outbuf, __outbytesleft);
}
/*
<EFBFBD>ر<EFBFBD><EFBFBD>ַ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>
@function iconv.close(cd)
@string cd$iconv.open<65><6E><EFBFBD>صľ<D8B5><C4BE><EFBFBD>$
@return
@usage
--<2D>ر<EFBFBD><D8B1>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
local cd = iconv.open("utf8", "ucs2be")
iconv.close(cd)
*/
int iconv_close (iconv_t cd)
{
return 0;
}