| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | //! @file#ifndef FSENSOR_H#define FSENSOR_H#include <inttypes.h>#include "config.h"//! minimum meassured chunk length in stepsextern int16_t fsensor_chunk_len;// enable/disable flagextern bool fsensor_enabled;// not responding flagextern bool fsensor_not_responding;//enable/disable quality meassurementextern bool fsensor_oq_meassure_enabled;//! @name save restore printing//! @{extern void fsensor_stop_and_save_print(void);//! restore print - restore position and heatup to original temperatureextern void fsensor_restore_print_and_continue(void);//! split the current gcode stream to insert new instructionsextern void fsensor_checkpoint_print(void);//! @}//! initializeextern void fsensor_init(void);//! @name enable/disable//! @{extern bool fsensor_enable(bool bUpdateEEPROM=true);extern void fsensor_disable(bool bUpdateEEPROM=true);//! @}//autoload feature enabledextern bool fsensor_autoload_enabled;extern void fsensor_autoload_set(bool State);extern void fsensor_update(void);#ifdef PAT9125//! setup pin-change interruptextern void fsensor_setup_interrupt(void);//! @name autoload support//! @{extern void fsensor_autoload_check_start(void);extern void fsensor_autoload_check_stop(void);#endif //PAT9125extern bool fsensor_check_autoload(void);//! @}//! @name optical quality measurement support//! @{extern void fsensor_oq_meassure_set(bool State);extern void fsensor_oq_meassure_start(uint8_t skip);extern void fsensor_oq_meassure_stop(void);extern bool fsensor_oq_result(void);//! @}//! @name callbacks from stepper//! @{extern void fsensor_st_block_chunk(int cnt);// There's really nothing to do in block_begin: the stepper ISR likely has// called us already at the end of the last block, making this integration// redundant. LA1.5 might not always do that during a coasting move, so attempt// to drain fsensor_st_cnt anyway at the beginning of the new block.#define fsensor_st_block_begin(rev) fsensor_st_block_chunk(0)//! @}#if IR_SENSOR_ANALOG#define IR_SENSOR_STEADY 10                       // [ms]enum class ClFsensorPCB:uint_least8_t{    _Old=0,    _Rev03b=1,    _Undef=EEPROM_EMPTY_VALUE};enum class ClFsensorActionNA:uint_least8_t{    _Continue=0,    _Pause=1,    _Undef=EEPROM_EMPTY_VALUE};extern ClFsensorPCB oFsensorPCB;extern ClFsensorActionNA oFsensorActionNA;extern bool fsensor_IR_check();#endif //IR_SENSOR_ANALOG#endif //FSENSOR_H
 |