QNX获取PPS数组里某个值(ascii码转换为字符串)

int main()
{
	int i = 0;
	int fd = -1;
	int index = 0;
	int version = 0;
	char buffer[1024];
	pps_decoder_t decoder;
	uint8_t str_sw[9];
	uint8_t str_hw[9];
	uint8_t iData[24];
	memset(str_sw, 0x0, sizeof(str_sw));
	memset(str_hw, 0x0, sizeof(str_hw));
	memset(&buffer, 0x0, sizeof(buffer));
	fd = open("/etc/services/version_info", O_RDONLY);
	if(0 <= fd)
	{
		/* Loop, echoing the attributes of the button. */
		read(fd, buffer, sizeof(buffer));

		pps_decoder_initialize(&decoder, NULL);
		pps_decoder_parse_pps_str(&decoder, buffer);
		pps_decoder_push(&decoder, NULL);
        /*version_array:json
        [0,0,21,0,0,0,83,87,58,65,46,50,46,48,0,72,87,58,65,46,48,46,54,0,0]*/
		pps_decoder_push_array(&decoder,"version_array");
		index = pps_decoder_length(&decoder);
		for(i =0; i <index; i++)
		{
			pps_decoder_get_int(&decoder, NULL, &iData[i]);
		}
		pps_decoder_pop(&decoder);
		pps_decoder_pop(&decoder);
		if(pps_decoder_status(&decoder, false) == PPS_DECODER_OK)
		{
			for(version =6; version <=23; version++)
			{
				//printf("%c", iData[version]);
				if(version <= 14)
				{
					str_sw[version-6] = iData[version];
				}
				else//(15 <= version)
				{
					str_hw[version-15] = iData[version];
				}
			}
			printf("version str_sw =%s, str_hw =%s\n", str_sw, str_hw);

			pps_decoder_cleanup(&decoder);
			close(fd);
			return 1;
		}
		else
		{
			pps_decoder_cleanup(&decoder);
			close(fd);
			return 0;
		}
	}
    return 0;
}
/********************************************
*打印输出:
*version str_sw =SW:A.2.0, str_hw =HW:A.0.6
********************************************/

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值