没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
void ConS(unsigned char *buffer, int len, int count)
{
int currentTLVIndex = 0;
int currentIndex = 0;
int currentStatus = 'T'; //状态字符
unsigned long valueSize = 0;
unsigned char Tag[100][32]; //标记
unsigned char Length[100][32]; //数据长度
unsigned char Value[100][1024*2]; //数据
unsigned int TagSize[100]; //标记占用字节数
unsigned int LengthSize[100]; //数据长度占用字节数
unsigned char Tag1[32];
char inipath[256];
memset(inipath,0,sizeof(inipath));
sprintf(inipath,"%s","C:\\Program Files\\浪潮集团金融事业部\\DevCtrler\\module\\PBOC.ini");
unsigned char Tagstr[32];
unsigned char Lengthstr[32];
unsigned char Valuestr[1024*2];
int status=1;
int ValueLen;
while(currentIndex < len)
{
switch(currentStatus)
{
case 'T':
valueSize = 0;
//判断是否单一结构
{
int currentTLVIndex = 0;
int currentIndex = 0;
int currentStatus = 'T'; //状态字符
unsigned long valueSize = 0;
unsigned char Tag[100][32]; //标记
unsigned char Length[100][32]; //数据长度
unsigned char Value[100][1024*2]; //数据
unsigned int TagSize[100]; //标记占用字节数
unsigned int LengthSize[100]; //数据长度占用字节数
unsigned char Tag1[32];
char inipath[256];
memset(inipath,0,sizeof(inipath));
sprintf(inipath,"%s","C:\\Program Files\\浪潮集团金融事业部\\DevCtrler\\module\\PBOC.ini");
unsigned char Tagstr[32];
unsigned char Lengthstr[32];
unsigned char Valuestr[1024*2];
int status=1;
int ValueLen;
while(currentIndex < len)
{
switch(currentStatus)
{
case 'T':
valueSize = 0;
//判断是否单一结构
if((status == 1 && buffer[currentIndex] & 0x20) != 0x20)
{
// tlvEntity[currentTLVIndex].Sub_TLVEntity = NULL; //单一结构时将子Tag置空
//判断是否多字节Tag
if((buffer[currentIndex] & 0x1f) == 0x1f)
{
int endTagIndex = currentIndex;
while((buffer[++endTagIndex] & 0x80) == 0x80); //判断第二个字节的最高位是否为1
int tagSize = endTagIndex - currentIndex + 1; //计算Tag包含多少字节
memset(Tag[currentTLVIndex],0,sizeof(Tag[currentTLVIndex]));
memcpy(Tag[currentTLVIndex], buffer + currentIndex, tagSize);
Tag[currentTLVIndex][tagSize] = 0;
TagSize[currentTLVIndex] = tagSize;
currentIndex += tagSize;
}
else
{
memset(Tag[currentTLVIndex],0,sizeof(Tag[currentTLVIndex]));
// Tag = new unsigned char[1];
memcpy(Tag[currentTLVIndex], buffer + currentIndex, 1);
Tag[currentTLVIndex][1] = 0;
TagSize[currentTLVIndex] = 1;
currentIndex += 1;
}
}
{
// tlvEntity[currentTLVIndex].Sub_TLVEntity = NULL; //单一结构时将子Tag置空
//判断是否多字节Tag
if((buffer[currentIndex] & 0x1f) == 0x1f)
{
int endTagIndex = currentIndex;
while((buffer[++endTagIndex] & 0x80) == 0x80); //判断第二个字节的最高位是否为1
int tagSize = endTagIndex - currentIndex + 1; //计算Tag包含多少字节
memset(Tag[currentTLVIndex],0,sizeof(Tag[currentTLVIndex]));
memcpy(Tag[currentTLVIndex], buffer + currentIndex, tagSize);
Tag[currentTLVIndex][tagSize] = 0;
TagSize[currentTLVIndex] = tagSize;
currentIndex += tagSize;
}
else
{
memset(Tag[currentTLVIndex],0,sizeof(Tag[currentTLVIndex]));
// Tag = new unsigned char[1];
memcpy(Tag[currentTLVIndex], buffer + currentIndex, 1);
Tag[currentTLVIndex][1] = 0;
TagSize[currentTLVIndex] = 1;
currentIndex += 1;
}
}
剩余5页未读,继续阅读







资源评论

- 魔琴师2020-07-291分都觉得多

sulei_8310
- 粉丝: 0
- 资源: 2

上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
已下载
下载帮助

看过该资源的人还看了
安全验证
文档复制为VIP权益,开通VIP直接复制
