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
********************************************/