small changes
This commit is contained in:
parent
59a78498e2
commit
8027708b3e
2 changed files with 16 additions and 5 deletions
|
@ -13,13 +13,21 @@ Omezení zde je poměrně malá RAM.
|
|||
|
||||
Ovládací program je napsán v Qt5. Je třeba modul QSerialPort, jinak na tom není nic extra.
|
||||
Asi by to šlo naportovat i na Windows, ale chce to minimálně změnit název sériového portu.
|
||||
Ovládání je nepodobné obvyklému GUI osciloskopu, ale pokusy s kulatými knoflíky mě přesvědčili
|
||||
o tom, že je to blbost. Na PC, kde je možné použít myš, je lépe jí fakt použít a GUI se
|
||||
může smrsknout na pár položek (Item to move), kterými se vybere čím se má hýbat a kliknutí
|
||||
myši provede kam. Jemně se to dá dostavit kolečkem myši.
|
||||
|
||||
Rozsahy se vybírají rovněž z Combo Boxu. Počáteční nastavení je fakticky uloženo v hardware,
|
||||
kromě Markerů a ofsetu zobrazení kanálů, to se dá uložit v programu. V zásadě by šlo uložit
|
||||
i ostatní v programu a při startu to zpět zapsat do hardware, ale zatím to tak není.
|
||||
|
||||
## server
|
||||
|
||||
Zkusil jsem doplnit ovládání přímo z browseru. Použil jsem balíček v Ubuntu (nebo Debian - např. Malina)
|
||||
nlohmann-json3-dev plus https://github.com/mattgodbolt/seasocks, takže lze komunikovat s klientem
|
||||
tímto mechanizmem. Vypadá to, že webové sokety by to mohly zvládnout, zatím to není
|
||||
úplně doděláno, ale zobrazení chodí. Funguje to jen na Linuxu.
|
||||
úplně doděláno, ale zobrazení chodí. Funguje to jen na Linuxu, není to úplné a ani nebude, je to jen pokus.
|
||||
|
||||
## bin
|
||||
|
||||
|
|
|
@ -72,10 +72,11 @@ static constexpr double IMULT = 1.0 / FMULT;
|
|||
void DisplayWidget::wheelEvent(QWheelEvent * event) {
|
||||
if (m_ts == nullptr) return;
|
||||
const QPoint d = event->angleDelta();
|
||||
const int increment = d.y() > 0 ? +1 : -1;
|
||||
const double increment = d.y() > 0 ? +1 : -1;
|
||||
const double zy = -m_inverse.m22();
|
||||
switch (m_items) {
|
||||
case MOVE_VALUE: {
|
||||
m_ts->value += increment * 4;
|
||||
m_ts->value += uint16_t (increment * zy);
|
||||
emit SettingsChanged (m_items);
|
||||
} break;
|
||||
case MOVE_OFSET: {
|
||||
|
@ -84,11 +85,11 @@ void DisplayWidget::wheelEvent(QWheelEvent * event) {
|
|||
} break;
|
||||
case MOVE_MARKERA: {
|
||||
if (marker_type == MARKER_TIME) m_time.a += increment;
|
||||
else m_volt.a += increment;
|
||||
else m_volt.a += increment * zy;
|
||||
} break;
|
||||
case MOVE_MARKERB: {
|
||||
if (marker_type == MARKER_TIME) m_time.b += increment;
|
||||
else m_volt.b += increment;
|
||||
else m_volt.b += increment * zy;
|
||||
} break;
|
||||
case TIME_ZOOM: {
|
||||
const double mx = FMULT * double (size().width()) / x_lenght;
|
||||
|
@ -99,8 +100,10 @@ void DisplayWidget::wheelEvent(QWheelEvent * event) {
|
|||
}
|
||||
} break;
|
||||
case OFSET_A: {
|
||||
m_offset.a += increment * zy;
|
||||
} break;
|
||||
case OFSET_B: {
|
||||
m_offset.b += increment * zy;
|
||||
} break;
|
||||
default : {
|
||||
qDebug ("wheelEvent : %d", int (m_items));
|
||||
|
|
Loading…
Reference in a new issue