static ssize_t debug_read(struct file *file,
                          char __user *ubuf, size_t count, loff_t *ppos)
{
	const int debug_bufmax = sizeof(debug_buffer) - 1;
	int i = 0;
	int n = 0;
	
	DISPFUNC();
	
	n += debug_get_info(debug_buffer + n, debug_bufmax-n);
	//debug_info_dump_to_printk();
	return simple_read_from_buffer(ubuf, count, ppos, debug_buffer, n);
}
Beispiel #2
0
BOOL Net_Send_Wave(void *buf)
{
	static uint8 cnt = 0;
	static char *pbuf;
	static BOOL reset_flag = TRUE;
	static char *pSysParmBuf = NULL;
	uint8 err;
	TaskMsg msg = {0};
	uint32 device_value = Get_Device_Status();
	uint32 len = 0;

	if((buf == NULL) || (debug_buf == NULL))return FALSE;
	if(pWaveMem == NULL) return FALSE;
	
	if(cnt == 0) 
	{
		pbuf = (char *)SysMemGet(pWaveMem, &err);
		if((err != SYS_ERR_NONE) || (pbuf == NULL)) 
		{
			debug(Debug_Notify, "Wave mem allocated failed! %d\r\n", err);
			return FALSE;
		}

		memset(pbuf, 0, WaveSize);
		Build_NetData_Pack(pbuf, 321, Net_Data_Wet);
	}
	
	memcpy(pbuf + 7 + cnt*20, buf, 16);
	memcpy(pbuf + 7 + cnt*20 + 16, (u8 *)&device_value, 4);

	//第一包参数数据
	if(reset_flag) 
	{
		//该指针开机只使用一次
		pSysParmBuf = (char *)SysMemGet(pWaveMem, &err);
		if(pSysParmBuf != NULL) 
		{
			Send_SysParm_Info(pSysParmBuf);
		}
		reset_flag = FALSE;			
	} 

	cnt++;
	if(cnt >= 16) {
		cnt = 0;
		
		memset(debug_buf, 0, 128);
		len = debug_get_info(debug_buf);

		//如果有调试信息, 发送调试信息
		if(len > 0) 
		{
			msg.msg_id = Msg_NetDebug;
			msg.msg_ctx = (u32)debug_buf;
			msg.msg_len = len;
			err = Task_QPost(&NetMsgQ, &msg);
		}
		
		//波形数据包
		msg.msg_id = Msg_NetSend;
		msg.msg_ctx = (u32)pbuf;
		msg.msg_len = 327;
 		err = Task_QPost(&NetMsgQ, &msg);
 		if(err != SYS_ERR_NONE) 
		{
		    Wave_Mem_Free(pbuf);
 			debug(Debug_Warning, "NetSendPost failed!\r\n");
 			return FALSE;
 		}
	}
	return TRUE;
}