aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2023-12-17 11:30:23 -0500
committerKevin O'Connor <kevin@koconnor.net>2024-01-19 11:55:15 -0500
commit3275614b895c409f30cc9520c02990b18abad3c6 (patch)
tree6c3d2850562ec798eb32b982eedefd9d56c015f1
parent83d0d2f19b81550e82d6f68415dfcd6df90dee69 (diff)
downloadkutter-3275614b895c409f30cc9520c02990b18abad3c6.tar.gz
kutter-3275614b895c409f30cc9520c02990b18abad3c6.tar.xz
kutter-3275614b895c409f30cc9520c02990b18abad3c6.zip
sensor_adxl345: No need to send messages when stopping queries
Simplify the mcu code as any messages are ignored by the host anyway. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
-rw-r--r--klippy/extras/adxl345.py8
-rw-r--r--src/sensor_adxl345.c18
2 files changed, 2 insertions, 24 deletions
diff --git a/klippy/extras/adxl345.py b/klippy/extras/adxl345.py
index 8f40c7fe..76fd4ca4 100644
--- a/klippy/extras/adxl345.py
+++ b/klippy/extras/adxl345.py
@@ -204,7 +204,7 @@ class ADXL345:
self.spi = bus.MCU_SPI_from_config(config, 3, default_speed=5000000)
self.mcu = mcu = self.spi.get_mcu()
self.oid = oid = mcu.create_oid()
- self.query_adxl345_cmd = self.query_adxl345_end_cmd = None
+ self.query_adxl345_cmd = None
self.query_adxl345_status_cmd = None
mcu.add_config_cmd("config_adxl345 oid=%d spi_oid=%d"
% (oid, self.spi.get_oid()))
@@ -230,10 +230,6 @@ class ADXL345:
cmdqueue = self.spi.get_command_queue()
self.query_adxl345_cmd = self.mcu.lookup_command(
"query_adxl345 oid=%c clock=%u rest_ticks=%u", cq=cmdqueue)
- self.query_adxl345_end_cmd = self.mcu.lookup_query_command(
- "query_adxl345 oid=%c clock=%u rest_ticks=%u",
- "adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu"
- " buffered=%c fifo=%c limit_count=%hu", oid=self.oid, cq=cmdqueue)
self.query_adxl345_status_cmd = self.mcu.lookup_query_command(
"query_adxl345_status oid=%c",
"adxl345_status oid=%c clock=%u query_ticks=%u next_sequence=%hu"
@@ -334,7 +330,7 @@ class ADXL345:
self.last_error_count = 0
def _finish_measurements(self):
# Halt bulk reading
- params = self.query_adxl345_end_cmd.send([self.oid, 0, 0])
+ self.query_adxl345_cmd.send_wait_ack([self.oid, 0, 0])
self.bulk_queue.clear_samples()
logging.info("ADXL345 finished '%s' measurements", self.name)
def _process_batch(self, eventtime):
diff --git a/src/sensor_adxl345.c b/src/sensor_adxl345.c
index 3d80059d..5ec3945e 100644
--- a/src/sensor_adxl345.c
+++ b/src/sensor_adxl345.c
@@ -148,25 +148,7 @@ adxl_stop(struct adxl345 *ax, uint8_t oid)
sched_del_timer(&ax->timer);
ax->flags = 0;
uint8_t msg[2] = { AR_POWER_CTL, 0x00 };
- uint32_t end1_time = timer_read_time();
spidev_transfer(ax->spi, 0, sizeof(msg), msg);
- uint32_t end2_time = timer_read_time();
- // Drain any measurements still in fifo
- uint_fast8_t i;
- for (i=0; i<33; i++) {
- msg[0] = AR_FIFO_STATUS | AM_READ;
- msg[1] = 0x00;
- spidev_transfer(ax->spi, 1, sizeof(msg), msg);
- uint_fast8_t fifo_status = msg[1] & ~0x80;
- if (!fifo_status)
- break;
- if (fifo_status <= 32)
- adxl_query(ax, oid);
- }
- // Report final data
- if (ax->data_count)
- adxl_report(ax, oid);
- adxl_status(ax, oid, end1_time, end2_time, msg[1]);
}
void