update brand ESPE
This commit is contained in:
@@ -47,6 +47,10 @@ struct ExtraInfo {
|
||||
|
||||
// SICK nanoScan3 only — General System State byte 0 (see kNanoState* bits).
|
||||
std::optional<uint8_t> nano_general_state;
|
||||
|
||||
// ESPE LGA60 only — fault word from the newest "WSimu" area frame; the
|
||||
// device only sends those when area data is polled, so usually nullopt.
|
||||
std::optional<uint16_t> espe_error_status;
|
||||
};
|
||||
|
||||
struct ScanResult {
|
||||
@@ -101,7 +105,11 @@ public:
|
||||
// timeout_ms = 0 → block indefinitely. No default on purpose: drivers
|
||||
// differ (OLEI 1000, SICK 2000).
|
||||
virtual bool recv_scan(ScanResult& out, int timeout_ms) = 0;
|
||||
// The callback fires only from spin_once() — recv_scan() never invokes
|
||||
// it. Pick one pump style: recv_scan() to poll, or callback + spin_once().
|
||||
virtual void set_scan_callback(ScanCallback cb) = 0;
|
||||
// Process one unit of input (may block on the socket while the device is
|
||||
// silent); fires the scan callback when a scan completed. False on error.
|
||||
virtual bool spin_once() = 0;
|
||||
virtual const char* detected_model() const = 0;
|
||||
|
||||
@@ -151,6 +159,7 @@ public:
|
||||
Diagnostics get_diagnostics() const override { return latest_diag_; }
|
||||
|
||||
private:
|
||||
bool poll_packet(); // one recvfrom() + dispatch to the family parser
|
||||
bool parse_family_a(const uint8_t* buf, int len); // ID=0xFAF0
|
||||
bool parse_family_b(const uint8_t* buf, int len); // ID=0xFEF0
|
||||
bool parse_family_c(const uint8_t* buf, int len); // Magic=0xFEAC (GS1-5)
|
||||
|
||||
Reference in New Issue
Block a user