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); }
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; }