Y112S打印机
打印机参数
分辨率:8点/mm,384点/行
有效打印宽度:48mm
每列网格数:8个,40mm,每个波形占一半
进纸步距(点距):0.125mm
网格:5mm*5mm,打印机按照整数个网格打印
缓存
网格
GRID length:5mm 点数:40
25mm/s -> 0.2s/GRID
50mm/s -> 0.1s/GRID
配置
1. 速率
25mm/s
50mm/s
2. 模式
PRINTER_WAVE_MODE_ECG,
PRINTER_WAVE_MODE_AP,
PRINTER_WAVE_MODE_BALLOON,
PRINTER_WAVE_MODE_ECG_AP,
PRINTER_WAVE_MODE_ECG_BALLOON,
PRINTER_WAVE_MODE_AP_BALLOON,
回调
回调
QList<ecg_wave_change_callback_fun> m_wave_change_callback_list;
流程
// 接收到下位机波形数据
void DuCbMsgBoundaryThread::duCbM1RunInfoRequestRecvCallback(void *parm)
// ecg处理接收波形
ECG::get_instance()->set_recv_ecg_wave(msg->wave_data, 10, msg->wave_index);
// 调用注册好的回调函数,将波形数据传给打印机
ecg_wave_change_callback_fun fun = m_wave_change_callback_list[i];
if (fun != nullptr)
{
fun(wave, length, nullptr);
}
cb msgboundary处理逻辑
du_cb_register_handler
中注册回调函数与消息枚举关系
#define DU_CB_ID_M1_RUN_INFO_RESPONSE (49)
DU_CB_msg_recv_handler_register(DuCbMsgBoundaryThread::duCbM1RunInfoRequestRecvCallback, DU_CB_ID_M1_RUN_INFO_RESPONSE);
DU_CB_receive
中区分消息枚举,调用DU_CB_CALL_RECV_MSG_PROCESS
进行回调
case DU_CB_ID_M1_RUN_INFO_RESPONSE:
len = DU_CB_m1_run_info_response_deserialization(rawBuf, msgbuf);
/* Message Process */
DU_CB_CALL_RECV_MSG_PROCESS(DU_CB_ID_M1_RUN_INFO_RESPONSE, msgbuf, len);
/* Message Process End */
break;
CTS
tmp
int Printer::get_interpolation_wave_list(int cache_num, QList<int>& ecg_list, QList<int>& ibp_list,
QList<int>& balloon_pressure_list, QList<int>& wave_flag_list)
{
ecg_list = qlist_take_first_n_values(m_ecg_list, cache_num);
ibp_list = qlist_take_first_n_values(m_ibp_pressure_list, cache_num);
balloon_pressure_list = qlist_take_first_n_values(m_balloon_pressure_list, cache_num);
wave_flag_list = qlist_take_first_n_values(m_wave_flag_list, cache_num);
}
坐标映射
[min, max]映射到[0, 160]且作翻转,min->160, max->0
如果你已经将原始区间 [min, max]
映射到了 [0, 160]
,而现在想要将 min
映射到 160
,max
映射到 0
,可以在原始映射的基础上做一个简单的反转。
首先,将原始的映射公式:
$$
\text{mappedValue} = \frac{(value - \text{min}) \times 160}{\text{max} - \text{min}}
$$
进行反转,将值映射到 [160, 0]
区间。考虑到反转,映射后的值 mappedValue
将变为:
$$
\text{mappedValue} = 160 - \frac{(value - \text{min}) \times 160}{\text{max} - \text{min}}
$$
这个公式将会把原始区间 [min, max]
中的值映射到 [160, 0]
区间。
标签:打印机,DU,min,CB,list,wave,Y112S,160 From: https://www.cnblogs.com/thatdor/p/y112s-printer-z2s5cni.html