예제 #1
0
int ihp_DecodeGetToneMapInfo (const uint8_t buffer [], size_t length, ihpapi_result_t * result) 

{
	struct __packed vs_tone_map_char_cnf 
	{
		struct header_vs header;
		uint8_t MSTATUS;
		uint8_t TMSLOT;
		uint8_t NUMTMS;
		uint16_t TMNUMACTCARRIERS;
		uint8_t MOD_CARRIER [MOD_CARRIER_MAX_TUPLE_NUM];
	}
	* confirm = (struct vs_tone_map_char_cnf *)(buffer);

#if INTELLON_SAFEMODE
 
	if (length < sizeof (struct vs_tone_map_char_cnf)) 
	{
		return (-1);
	}
	if (result == (ihpapi_result_t *)(0)) 
	{
		return (-1);
	}

#endif
 
	result->opStatus.status = confirm->MSTATUS;
	result->data.toneMap.tmslot = confirm->TMSLOT;
	result->data.toneMap.numtms = confirm->NUMTMS;
	result->data.toneMap.tmnumactcarriers = intohs(confirm->TMNUMACTCARRIERS);
	memcpy (result->data.toneMap.mod_carrier, confirm->MOD_CARRIER, MOD_CARRIER_MAX_TUPLE_NUM);
	return (0);
}
예제 #2
0
int ihp_DecodeSetHgBusiness(const uint8_t buffer [ ], size_t length, ihpapi_result_t * result)

{
	vs_hg_cnf_header_t * confirm = (vs_hg_cnf_header_t *)(buffer);

	if( 0x01 != intohs(confirm->action) )
	{
		result->validData = false;
		result->opStatus.status = 0x01;
		return (-1);
	}
	else
	{
		result->validData = true;
		result->opStatus.status = intohs(confirm->MSTATUS);		
		return (0);
	}
}
예제 #3
0
int ihp_DecodeWriteModule (const uint8_t buffer [], size_t length, ihpapi_result_t * result) 

{
	struct __packed vs_wr_mod_cnf 
	{
		struct header_vs header;
		uint8_t MSTATUS;
		uint8_t MODULEID;
		uint8_t RESERVED;
		uint16_t LENGTH;
		uint32_t OFFSET;
	}
	* confirm = (struct vs_wr_mod_cnf *)(buffer);

#if INTELLON_SAFEMODE
 
	if (length < sizeof (struct vs_wr_mod_cnf)) 
	{
		errno = ERANGE;
		return (-1);
	}
	if (result == (ihpapi_result_t *)(0)) 
	{
		errno = EFAULT;
		return (-1);
	}
	#if 0
	if (wrmodblk == (WrtModBlock *)(0)) 
	{
		errno = EFAULT;
		return (-1);
	}
	#endif
#endif
 	#if 0
	result->opStatus.status = confirm->MSTATUS;
	wrmodblk->cnf.MODULEID = confirm->MODULEID;
	wrmodblk->cnf.LENGTH = intohs(confirm->LENGTH);
	wrmodblk->cnf.OFFSET = intohl(confirm->OFFSET);
	#endif
	result->validData = true;
	return (confirm->MSTATUS);
}