genesys: Route low-level status debug messages through scanner interface

merge-requests/240/head
Povilas Kanapickas 2019-10-26 11:38:46 +02:00
rodzic 779725ab55
commit 521c042889
6 zmienionych plików z 51 dodań i 32 usunięć

Wyświetl plik

@ -2696,51 +2696,45 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen
/* do offset calibration if needed */ /* do offset calibration if needed */
if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION)
{ {
sanei_usb_testing_record_message("offset_calibration"); dev->interface->record_test_message("offset_calibration");
dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg);
/* since all the registers are set up correctly, just use them */ /* since all the registers are set up correctly, just use them */
sanei_usb_testing_record_message("coarse_gain_calibration"); dev->interface->record_test_message("coarse_gain_calibration");
dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, coarse_res); dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, coarse_res);
} } else {
else
/* since we have 2 gain calibration proc, skip second if first one was /* since we have 2 gain calibration proc, skip second if first one was
used. */ used. */
{ dev->interface->record_test_message("init_regs_for_coarse_calibration");
sanei_usb_testing_record_message("init_regs_for_coarse_calibration");
dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg); dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg);
sanei_usb_testing_record_message("genesys_coarse_calibration"); dev->interface->record_test_message("genesys_coarse_calibration");
genesys_coarse_calibration(dev, sensor); genesys_coarse_calibration(dev, sensor);
} }
if (dev->model->is_cis) if (dev->model->is_cis)
{ {
/* the afe now sends valid data for doing led calibration */ /* the afe now sends valid data for doing led calibration */
sanei_usb_testing_record_message("led_calibration"); dev->interface->record_test_message("led_calibration");
sensor.exposure = dev->cmd_set->led_calibration(dev, sensor, dev->calib_reg); sensor.exposure = dev->cmd_set->led_calibration(dev, sensor, dev->calib_reg);
/* calibrate afe again to match new exposure */ /* calibrate afe again to match new exposure */
if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) if (dev->model->flags & GENESYS_FLAG_OFFSET_CALIBRATION) {
{ dev->interface->record_test_message("offset_calibration");
sanei_usb_testing_record_message("offset_calibration");
dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg); dev->cmd_set->offset_calibration(dev, sensor, dev->calib_reg);
/* since all the registers are set up correctly, just use them */ // since all the registers are set up correctly, just use them
sanei_usb_testing_record_message("coarse_gain_calibration"); dev->interface->record_test_message("coarse_gain_calibration");
dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, coarse_res); dev->cmd_set->coarse_gain_calibration(dev, sensor, dev->calib_reg, coarse_res);
} } else {
else // since we have 2 gain calibration proc, skip second if first one was used
/* since we have 2 gain calibration proc, skip second if first one was dev->interface->record_test_message("init_regs_for_coarse_calibration");
used. */
{
sanei_usb_testing_record_message("init_regs_for_coarse_calibration");
dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg); dev->cmd_set->init_regs_for_coarse_calibration(dev, sensor, dev->calib_reg);
sanei_usb_testing_record_message("genesys_coarse_calibration"); dev->interface->record_test_message("genesys_coarse_calibration");
genesys_coarse_calibration(dev, sensor); genesys_coarse_calibration(dev, sensor);
} }
} }
/* we always use sensor pixel number when the ASIC can't handle multi-segments sensor */ /* we always use sensor pixel number when the ASIC can't handle multi-segments sensor */
@ -2754,8 +2748,8 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen
pixels_per_line = sensor.sensor_pixels; pixels_per_line = sensor.sensor_pixels;
} }
/* send default shading data */ // send default shading data
sanei_usb_testing_record_message("sanei_genesys_init_shading_data"); dev->interface->record_test_message("sanei_genesys_init_shading_data");
sanei_genesys_init_shading_data(dev, sensor, pixels_per_line); sanei_genesys_init_shading_data(dev, sensor, pixels_per_line);
if (dev->settings.scan_method == ScanMethod::TRANSPARENCY || if (dev->settings.scan_method == ScanMethod::TRANSPARENCY ||
@ -2766,28 +2760,28 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen
// shading calibration // shading calibration
if (dev->model->flags & GENESYS_FLAG_DARK_WHITE_CALIBRATION) { if (dev->model->flags & GENESYS_FLAG_DARK_WHITE_CALIBRATION) {
sanei_usb_testing_record_message("init_regs_for_shading"); dev->interface->record_test_message("init_regs_for_shading");
dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg);
sanei_usb_testing_record_message("genesys_dark_white_shading_calibration"); dev->interface->record_test_message("genesys_dark_white_shading_calibration");
genesys_dark_white_shading_calibration(dev, sensor); genesys_dark_white_shading_calibration(dev, sensor);
} else { } else {
DBG(DBG_proc, "%s : genesys_dark_shading_calibration dev->calib_reg ", __func__); DBG(DBG_proc, "%s : genesys_dark_shading_calibration dev->calib_reg ", __func__);
debug_dump(DBG_proc, dev->calib_reg); debug_dump(DBG_proc, dev->calib_reg);
if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) { if (dev->model->flags & GENESYS_FLAG_DARK_CALIBRATION) {
sanei_usb_testing_record_message("init_regs_for_shading"); dev->interface->record_test_message("init_regs_for_shading");
dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg);
sanei_usb_testing_record_message("genesys_dark_shading_calibration"); dev->interface->record_test_message("genesys_dark_shading_calibration");
genesys_dark_shading_calibration(dev, sensor); genesys_dark_shading_calibration(dev, sensor);
genesys_repark_sensor_before_shading(dev); genesys_repark_sensor_before_shading(dev);
} }
sanei_usb_testing_record_message("init_regs_for_shading2"); dev->interface->record_test_message("init_regs_for_shading2");
dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg); dev->cmd_set->init_regs_for_shading(dev, sensor, dev->calib_reg);
sanei_usb_testing_record_message("genesys_white_shading_calibration"); dev->interface->record_test_message("genesys_white_shading_calibration");
genesys_white_shading_calibration(dev, sensor); genesys_white_shading_calibration(dev, sensor);
genesys_repark_sensor_after_white_shading(dev); genesys_repark_sensor_after_white_shading(dev);
@ -2797,7 +2791,7 @@ static void genesys_flatbed_calibration(Genesys_Device* dev, Genesys_Sensor& sen
} }
if (!dev->cmd_set->has_send_shading_data()) { if (!dev->cmd_set->has_send_shading_data()) {
sanei_usb_testing_record_message("genesys_send_shading_coefficient"); dev->interface->record_test_message("genesys_send_shading_coefficient");
genesys_send_shading_coefficient(dev, sensor); genesys_send_shading_coefficient(dev, sensor);
} }
} }

Wyświetl plik

@ -87,6 +87,8 @@ public:
virtual void write_fe_register(std::uint8_t address, std::uint16_t value) = 0; virtual void write_fe_register(std::uint8_t address, std::uint16_t value) = 0;
virtual IUsbDevice& get_usb_device() = 0; virtual IUsbDevice& get_usb_device() = 0;
virtual void record_test_message(const char* msg) = 0;
}; };
} // namespace genesys } // namespace genesys

Wyświetl plik

@ -480,4 +480,9 @@ IUsbDevice& ScannerInterfaceUsb::get_usb_device()
return usb_dev_; return usb_dev_;
} }
void ScannerInterfaceUsb::record_test_message(const char* msg)
{
sanei_usb_testing_record_message(msg);
}
} // namespace genesys } // namespace genesys

Wyświetl plik

@ -76,6 +76,8 @@ public:
std::uint16_t read_fe_register(std::uint8_t address) override; std::uint16_t read_fe_register(std::uint8_t address) override;
void write_fe_register(std::uint8_t address, std::uint16_t value) override; void write_fe_register(std::uint8_t address, std::uint16_t value) override;
void record_test_message(const char* msg) override;
virtual IUsbDevice& get_usb_device() override; virtual IUsbDevice& get_usb_device() override;
private: private:
Genesys_Device* dev_; Genesys_Device* dev_;

Wyświetl plik

@ -132,4 +132,14 @@ IUsbDevice& TestScannerInterface::get_usb_device()
return usb_dev_; return usb_dev_;
} }
void TestScannerInterface::record_test_message(const char* msg)
{
last_test_message_ = msg;
}
const std::string& TestScannerInterface::last_test_message() const
{
return last_test_message_;
}
} // namespace genesys } // namespace genesys

Wyświetl plik

@ -75,10 +75,16 @@ public:
void write_fe_register(std::uint8_t address, std::uint16_t value) override; void write_fe_register(std::uint8_t address, std::uint16_t value) override;
IUsbDevice& get_usb_device() override; IUsbDevice& get_usb_device() override;
void record_test_message(const char* msg) override;
const std::string& last_test_message() const;
private: private:
RegisterCache<std::uint8_t> cached_regs_; RegisterCache<std::uint8_t> cached_regs_;
RegisterCache<std::uint16_t> cached_fe_regs_; RegisterCache<std::uint16_t> cached_fe_regs_;
TestUsbDevice usb_dev_; TestUsbDevice usb_dev_;
std::string last_test_message_;
}; };
} // namespace genesys } // namespace genesys