small changes

This commit is contained in:
Kizarm 2024-11-15 14:16:56 +01:00
parent 59a78498e2
commit 8027708b3e
2 changed files with 16 additions and 5 deletions

View file

@ -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

View file

@ -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));