Exemplo n.º 1
0
int32_t  prm_getInfo(const char *id, Chirp *chirp)
{
	ParamRecord *rec;

	for (rec=(ParamRecord *)PRM_FLASH_LOC; rec->crc!=0xffff && rec<(ParamRecord *)PRM_ENDREC; rec++)
	{
		if(strcmp(id, (char *)rec->data)==0)
		{
			CRP_RETURN(chirp, STRING(prm_getDesc(rec)));
			return 0;
		}
	}
	return -1;	
}
Exemplo n.º 2
0
int32_t  prm_getAll(const uint16_t &index, Chirp *chirp)
{
	uint16_t i;
	ParamRecord *rec;

	for (i=0, rec=(ParamRecord *)PRM_FLASH_LOC; rec->crc!=0xffff && rec<(ParamRecord *)PRM_ENDREC; i++, rec++)
	{
		if(i==index)
		{
			CRP_RETURN(chirp, STRING(prm_getId(rec)), STRING(prm_getDesc(rec)),  UINTS8(rec->len, (uint8_t *)rec+prm_getDataOffset(rec)));
			return 0;
		}
	}
	return -1;	
}
Exemplo n.º 3
0
int32_t  prm_getAll(const uint16_t &index, Chirp *chirp)
{
	int res;
	uint16_t i;
	uint32_t len;
	uint8_t *data, argList[CRP_MAX_ARGS];
	ParamRecord *rec;
	Shadow *shadow;

	for (i=0, rec=(ParamRecord *)PRM_FLASH_LOC; rec->crc!=0xffff && rec<(ParamRecord *)PRM_ENDREC; i++, rec++)
	{
		if(i==index)
		{
			shadow = prm_findShadow(prm_getId(rec));

			if (shadow && shadow->data)
			{
				len = shadow->len;
				data = shadow->data;
			}
			else
			{
				len = rec->len;
				data = (uint8_t *)rec+prm_getDataOffset(rec);
			}
			res = Chirp::getArgList(data, rec->len, argList);
			if (res<0)
				return res;
			CRP_RETURN(chirp, UINT32(rec->flags), STRING(argList), STRING(prm_getId(rec)), STRING(prm_getDesc(rec)),  UINTS8(len, data), END);
			return 0;
		}
	}
	return -1;	
}