Browse Source

update

master
zhaohe 1 year ago
parent
commit
32f4aa23f8
  1. 2
      ify_hrs_protocol
  2. 40
      mainwindow.cpp
  3. 931
      mainwindow.ui
  4. 30
      src/electrocardiograph_tester.cpp
  5. 5
      src/electrocardiograph_tester.hpp

2
ify_hrs_protocol

@ -1 +1 @@
Subproject commit a1fda58c30f6bb892c9f503280b3896c67e00dda
Subproject commit c5a86174de8f27f4c8ab6c18dd131effa7b43ea5

40
mainwindow.cpp

@ -577,18 +577,18 @@ void MainWindow::on_TestCmd_readSubIcRegs_clicked() {
instructionPreviewClear();
try {
uint8_t data[12];
data[ADS129X_REG_ID] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_ID);
data[ADS129X_REG_CONFIG1] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_CONFIG1);
data[ADS129X_REG_CONFIG2] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_CONFIG2);
data[ADS129X_REG_LOFF] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_LOFF);
data[ADS129X_REG_CH1SET] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_CH1SET);
data[ADS129X_REG_CH2SET] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_CH2SET);
data[ADS129X_REG_RLDSENS] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_RLDSENS);
data[ADS129X_REG_LOFFSENS] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_LOFFSENS);
data[ADS129X_REG_LOFFSTAT] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_LOFFSTAT);
data[ADS129X_REG_RESP1] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_RESP1);
data[ADS129X_REG_RESP2] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_RESP2);
data[ADS129X_REG_GPIO] = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_GPIO);
data[ADS129X_REG_ID] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_ID);
data[ADS129X_REG_CONFIG1] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_CONFIG1);
data[ADS129X_REG_CONFIG2] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_CONFIG2);
data[ADS129X_REG_LOFF] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_LOFF);
data[ADS129X_REG_CH1SET] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_CH1SET);
data[ADS129X_REG_CH2SET] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_CH2SET);
data[ADS129X_REG_RLDSENS] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_RLDSENS);
data[ADS129X_REG_LOFFSENS] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_LOFFSENS);
data[ADS129X_REG_LOFFSTAT] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_LOFFSTAT);
data[ADS129X_REG_RESP1] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_RESP1);
data[ADS129X_REG_RESP2] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_RESP2);
data[ADS129X_REG_GPIO] = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_GPIO);
ishow("reg %10s %02d: 0x%02x", "ID", ADS129X_REG_ID, data[ADS129X_REG_ID]);
ishow("reg %10s %02d: 0x%02x", "CONFIG1", ADS129X_REG_CONFIG1, data[ADS129X_REG_CONFIG1]);
@ -615,7 +615,7 @@ void MainWindow::on_TestCmd_writeSubICReg_clicked() {
uint32_t val = str2int(ui->TestCmd_writeSubICReg_p1->toPlainText());
instructionPreviewClear();
try {
ElectrocardiographTester::ins()->testCmdWriteReg(add, val);
ElectrocardiographTester::ins()->ecg_subic_write_reg(add, val);
ishow("write reg %d: 0x%02x success", add, val);
} catch (zexception &exception) {
processException(exception);
@ -629,13 +629,13 @@ void MainWindow::on_TestCmd_writeSubICRegMask_clicked() {
instructionPreviewClear();
try {
uint8_t regval = ElectrocardiographTester::ins()->testCmdReadReg(add);
uint8_t regval = ElectrocardiographTester::ins()->ecg_subic_read_reg(add);
uint8_t oldval = regval;
uint8_t mask = (1 << bitnum) - 1;
mask = mask << off;
regval = regval & (~mask);
regval = regval | (val << off);
ElectrocardiographTester::ins()->testCmdWriteReg(add, regval);
ElectrocardiographTester::ins()->ecg_subic_write_reg(add, regval);
ishow("write reg %d: 0x%02x -> 0x%02x success", add, oldval, regval);
} catch (const std::exception &e) {
std::cerr << e.what() << '\n';
@ -666,15 +666,15 @@ void MainWindow::on_TestCmd_stopCapture_clicked() {
void MainWindow::on_TestCmd_changeECGSrcToSquareWave_clicked() {
instructionPreviewClear();
try {
uint8_t cfg2 = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_CONFIG2);
uint8_t ch1set = ElectrocardiographTester::ins()->testCmdReadReg(ADS129X_REG_CH1SET);
uint8_t cfg2 = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_CONFIG2);
uint8_t ch1set = ElectrocardiographTester::ins()->ecg_subic_read_reg(ADS129X_REG_CH1SET);
cfg2 = ADS129X_SET_BITS(cfg2, ADS129X_INT_TEST, ADS129X_INT_TEST_ON);
cfg2 = ADS129X_SET_BITS(cfg2, ADS129X_INT_FREQ, ADS129X_INT_FREQ_AC);
ch1set = ADS129X_SET_BITS(ch1set, ADS129X_MUXx, ADS129X_CHx_INPUT_TEST);
ElectrocardiographTester::ins()->testCmdWriteReg(ADS129X_REG_CONFIG2, cfg2);
ElectrocardiographTester::ins()->testCmdWriteReg(ADS129X_REG_CH1SET, ch1set);
ElectrocardiographTester::ins()->ecg_subic_write_reg(ADS129X_REG_CONFIG2, cfg2);
ElectrocardiographTester::ins()->ecg_subic_write_reg(ADS129X_REG_CH1SET, ch1set);
ishow("call change ECG src to square wave success");
} catch (zexception &exception) {
@ -748,7 +748,7 @@ void MainWindow::on_TestCmd_writeSubICAllReg_clicked() {
data[i] = str2int(reglist[i]);
}
for (size_t i = 0; i < 12; i++) {
ElectrocardiographTester::ins()->testCmdWriteReg(i, data[i]);
ElectrocardiographTester::ins()->ecg_subic_write_reg(i, data[i]);
ishow("write reg %d: 0x%02x success", i, data[i]);
}
ishow("write all reg success");

931
mainwindow.ui
File diff suppressed because it is too large
View File

30
src/electrocardiograph_tester.cpp

@ -382,29 +382,27 @@ void ElectrocardiographTester::testCmdStopCapture() {
throw zexception(kifyhrs_ecode_cmd_not_support, "not implement");
}
uint8_t ElectrocardiographTester::testCmdReadReg(uint8_t addr) {
uint8_t ElectrocardiographTester::ecg_subic_read_reg(uint8_t addr) {
lock_guard<mutex> lock(m_tx_lock);
throw zexception(kifyhrs_ecode_cmd_not_support, "not implement");
#if 0
m_txcmd->cmd = ify_hrs_test_cmd_read_reg;
#if 1
m_txcmd->cmd = ify_hrs_cmd_ecg_subic_read_reg;
m_txcmd->data[0] = addr;
m_txcmd->cmd = ify_hrs_test_cmd_read_reg;
sendCmd(m_txcmd, sizeof(ify_hrs_packet_t) + 1, m_rxcmd, &m_rxsize, 100);
return m_rxcmd->data[0];
#endif
}
void ElectrocardiographTester::testCmdWriteReg(uint8_t addr, uint8_t val) {
void ElectrocardiographTester::ecg_subic_write_reg(uint8_t addr, uint8_t val) {
lock_guard<mutex> lock(m_tx_lock);
throw zexception(kifyhrs_ecode_cmd_not_support, "not implement");
#if 0
#if 1
m_txcmd->cmd = ify_hrs_test_cmd_write_reg;
m_txcmd->cmd = ify_hrs_cmd_ecg_subic_write_reg;
m_txcmd->data[0] = addr;
m_txcmd->data[1] = val;
m_txcmd->cmd = ify_hrs_test_cmd_write_reg;
sendCmd(m_txcmd, sizeof(ify_hrs_packet_t) + 2, m_rxcmd, &m_rxsize, 100);
#endif
}
@ -412,7 +410,6 @@ void ElectrocardiographTester::testCmdWriteReg(uint8_t addr, uint8_t val) {
void ElectrocardiographTester::set_ecg_in_test_mode(int32_t testmode) {
lock_guard<mutex> lock(m_tx_lock);
int32_t *para = (int32_t *)m_txcmd->data;
para[0] = testmode;
@ -420,3 +417,14 @@ void ElectrocardiographTester::set_ecg_in_test_mode(int32_t testmode) {
sendCmd(m_txcmd, sizeof(ify_hrs_packet_t) + sizeof(int32_t), m_rxcmd, &m_rxsize, 100);
return;
}
void ElectrocardiographTester::set_ecg_report_data_in_raw_mode(int32_t rawmode) {
lock_guard<mutex> lock(m_tx_lock);
int32_t *para = (int32_t *)m_txcmd->data;
para[0] = rawmode;
m_txcmd->cmd = ify_hrs_cmd_set_ecg_report_data_in_raw_mode;
sendCmd(m_txcmd, sizeof(ify_hrs_packet_t) + sizeof(int32_t), m_rxcmd, &m_rxsize, 100);
return;
}

5
src/electrocardiograph_tester.hpp

@ -108,11 +108,12 @@ class ElectrocardiographTester {
void reset(); // 重置设备
void set_ecg_in_test_mode(int32_t testmode);
void set_ecg_report_data_in_raw_mode(int32_t rawmode);
void testCmdStartCapture();
void testCmdStopCapture();
uint8_t testCmdReadReg(uint8_t addr);
void testCmdWriteReg(uint8_t addr, uint8_t val);
uint8_t ecg_subic_read_reg(uint8_t addr);
void ecg_subic_write_reg(uint8_t addr, uint8_t val);
private:
void sendCmd(ify_hrs_packet_t *tx, int32_t txlen, ify_hrs_packet_t *rx, int32_t *rxlen, int32_t overtime);

Loading…
Cancel
Save