update function

This commit is contained in:
CSSC-WORK\murmur 2025-01-03 16:32:40 +08:00
parent 7cfe960bd5
commit ee58e1e28f

View File

@ -327,8 +327,9 @@ uint16_t ReadPump1Reg(uint8_t id, uint16_t reg) {
uint16_t crc = CalculateCRC16(data, 6); uint16_t crc = CalculateCRC16(data, 6);
// 小端序填充 // 小端序填充
memcpy(&data[6], &crc, 2); memcpy(&data[6], &crc, 2);
elog_hexdump("writeCMD", 16, data, sizeof(data));
transDataToMotorValve(data, 8);
transDataToHost(data, 8);
uint8_t rxBuf[30] = {0}; uint8_t rxBuf[30] = {0};
uint16_t rxLen = 7; uint16_t rxLen = 7;
uint8_t ret = readDataFromMotorValve(rxBuf, rxLen, READ_ACK_TIMEOUT); uint8_t ret = readDataFromMotorValve(rxBuf, rxLen, READ_ACK_TIMEOUT);
@ -357,8 +358,9 @@ uint32_t ReadPump2Reg(uint8_t id, uint16_t reg) {
uint16_t crc = CalculateCRC16(data, 6); uint16_t crc = CalculateCRC16(data, 6);
// 小端序填充 // 小端序填充
memcpy(&data[6], &crc, 2); memcpy(&data[6], &crc, 2);
elog_hexdump("writeCMD", 16, data, sizeof(data));
transDataToMotorValve(data, sizeof(data)); transDataToMotorValve(data, sizeof(data));
uint8_t rxBuf[30] = {0}; uint8_t rxBuf[30] = {0};
uint16_t rxLen = 9; uint16_t rxLen = 9;
uint8_t ret = readDataFromMotorValve(rxBuf, rxLen, READ_ACK_TIMEOUT*10); uint8_t ret = readDataFromMotorValve(rxBuf, rxLen, READ_ACK_TIMEOUT*10);
@ -520,7 +522,8 @@ static uint8_t SetPumpStepDec(uint8_t index, uint16_t dec) {
* @return * @return
*/ */
uint16_t transSpeedPercentToSpeed(uint8_t index, uint8_t speedPercent) { uint16_t transSpeedPercentToSpeed(uint8_t index, uint8_t speedPercent) {
return speedPercent*PUMP_SPEED_RPS * dp.pump[index].fullSpeed / 100; uint32_t tmp = speedPercent * PUMP_SPEED_RPS * dp.pump[index].fullSpeed;
return tmp/100;
} }
/** /**
@ -1594,9 +1597,9 @@ static uint8_t HandlePumpTimeControl(uint8_t *Buff, uint8_t len) {
} }
else { else {
// 使用步数方式更靠谱,通过时间和速度计算步数,结束时不用发送停止命令 // 使用步数方式更靠谱,通过时间和速度计算步数,结束时不用发送停止命令
uint16_t cnt = ReadPumpCNT(index);//8000 uint16_t cnt = ReadPumpCNT(index);//10000
log_d("cnt=%d",cnt); log_d("cnt=%d",cnt);
int32_t step = direction*time*systemStatus.pumpsSpeed[index]*cnt; int32_t step = direction*systemStatus.pumpsSpeed[index]/PUMP_SPEED_RPS*cnt*time;
StopPump(index);//stop first StopPump(index);//stop first
SetPumpStepTarget(index, step); SetPumpStepTarget(index, step);
StartPumpRelativeMove(index); StartPumpRelativeMove(index);