OpenHantek
dsomodel.h
1 
2 // SPDX-License-Identifier: GPL-2.0+
3 
4 #pragma once
5 
6 #include "controlspecification.h"
7 #include <list>
8 #include <string>
9 
10 class HantekDsoControl;
11 
17 class DSOModel {
18  public:
19  const int ID;
20  const long vendorID;
21  const long productID;
22  const long vendorIDnoFirmware;
23  const long productIDnoFirmware;
24  std::string firmwareToken;
28  std::string name;
29  protected:
30  Dso::ControlSpecification specification;
31 
32  public:
34  virtual void applyRequirements(HantekDsoControl *) const = 0;
35  DSOModel(int id, long vendorID, long productID, long vendorIDnoFirmware, long productIDnoFirmware,
36  const std::string &firmwareToken, const std::string &name, const Dso::ControlSpecification &&specification);
37  virtual ~DSOModel() = default;
39  inline const Dso::ControlSpecification *spec() const { return &specification; }
40 };
const long productIDnoFirmware
Definition: dsomodel.h:23
const Dso::ControlSpecification * spec() const
Return the device specifications.
Definition: dsomodel.h:39
virtual void applyRequirements(HantekDsoControl *) const =0
This model may need to modify the HantekDsoControl class to work correctly.
const long productID
The USB product ID.
Definition: dsomodel.h:21
std::string firmwareToken
Definition: dsomodel.h:27
const long vendorIDnoFirmware
The USB vendor ID if no firmware is flashed yet.
Definition: dsomodel.h:22
Describes a device This is the central class to describe a hantek compatible DSO. It contains all usb...
Definition: dsomodel.h:17
const long vendorID
The USB vendor ID.
Definition: dsomodel.h:20
Stores the specifications of the currently connected device.
Definition: controlspecification.h:47
std::string name
User visible name. Does not need internationalisation/translation.
Definition: dsomodel.h:28
The DsoControl abstraction layer for Hantek USB DSOs. TODO Please anyone, refactor this class into sm...
Definition: hantekdsocontrol.h:30