Espeasy: Bug dalam menentukan indeks Plugin_ptr

Dibuat pada 21 Okt 2019  ·  5Komentar  ·  Sumber: letscontrolit/ESPEasy

Menemukan bug yang sangat, sangat serius dalam kode __Plugin.ino dan sepertinya saya memperkenalkannya sekitar 20180705. Lihat: https://github.com/letscontrolit/ESPEasy/commit/2fde3d28a8af4ff044ae123ca820d312b7e59a90

Masalahnya ada pada penanganan beberapa fungsi seperti PLUGIN_xxx (MENULIS/BACA/dll)
Kemudian menggunakan indeks yang salah untuk melakukan hal-hal, yang dapat menghasilkan hasil yang aneh pada build dengan tidak semua plugin disertakan (terutama pengujian dan kustom)

Dampaknya agak sulit diprediksi, tetapi saya kira itu dapat menyebabkan crash yang aneh.
Itu juga sekitar waktu ketika reboot WDT mulai dilaporkan.
Jadi ketika diperbaiki, semoga bisa memperbaiki sejumlah masalah.

Plugin_ptr hanya akan menggunakan indeks berdasarkan jumlah plugin yang disertakan dalam build.
Jadi harus diatasi dengan menggunakan indeks berdasarkan DeviceIndex (tidak yakin apakah itu indeks yang benar) dan bukan pada nomor ID plugin (misalnya 004 untuk sensor Dallas)

Stabiliy Bug

Semua 5 komentar

Jadi mungkin itu sebabnya saya mengalami perubahan perangkat dari IRTX ke Switch baru-baru ini setelah mengganti firmware ESP_Easy dengan build khusus tanpa plugin IRTX sambil menjaga konfigurasi ... :-)
Kerja bagus, Gijs, Anda menemukan bug ini!

Bug tersebut tampaknya cukup lama, jadi tidak yakin lompatan besar apa yang Anda buat dalam versi?

Saya juga sudah mengerjakan beberapa refactoring kode untuk membuat penamaan variabel sedikit lebih deskriptif karena saya juga agak bingung dengan mereka.
Mungkin bugnya sedikit kurang serius, tetapi tetap harus jelas apa yang dilakukan kode dan kode saat ini benar-benar tidak jelas.

Yah, konfigurasinya sudah sangat tua dan banyak peningkatan firmware dilakukan selama 2 tahun terakhir pada node itu ... Di masa lalu IRRX dan IRTX berada di std atau menguji build resmi tetapi tidak demikian lagi jadi saya harus mulai dengan build khusus menggunakan Vagrant (btw. terima kasih banyak telah mempersiapkan lingkungan yang hebat itu!). Karena saya membutuhkan banyak plugin dan plugin IRRX dan IRTX saat ini sangat besar, saya menonaktifkan IRTX karena IRRX lebih penting bagi saya tetapi konfigurasi tetap sama ketika saya mengunggah firmware yang disesuaikan ke node.js. Kemudian IRTX (perangkat 11) berubah menjadi Switch.

Yap, jika plugin tidak dapat ditemukan, itu akan mengaturnya ke yang pertama.
Itu juga bug, yang mungkin bisa saya perbaiki dengan perubahan ini.

Ukuran plugin IR inilah yang membuat saya memutuskan untuk memindahkannya ke build terpisah.
Tetapi seperti yang juga Anda ketahui, Anda tidak dapat memiliki 1-build-fits-all, jadi itulah mengapa saya mencari pengaturan Vagrant.

Juga memperbaiki gangguan jangka panjang di sepanjang jalan.
Jika tugas disetel ke pluginID yang tidak disertakan dalam build saat ini, itu menunjukkan "Beralih" sebagai plugin.
Juga tidak begitu jelas apa yang akan terjadi jika Anda kemudian mengedit halaman tersebut.

Beginilah tampilannya setelah ini diperbaiki:

image

ID plugin akan ditampilkan dan namanya. Status yang diaktifkan akan ditampilkan sebagai dinonaktifkan dan sisanya akan dibiarkan kosong.
Saat mengetik ini, saya menyadari tombol merah harus menunjukkan "Tambah" atau mungkin beberapa teks lain yang menunjukkan Anda akan membuat entri baru saat menekan tombol.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

wolverinevn picture wolverinevn  ·  5Komentar

MarceloProjetos picture MarceloProjetos  ·  4Komentar

jroux1 picture jroux1  ·  6Komentar

workgroupengineering picture workgroupengineering  ·  6Komentar

DittelHome picture DittelHome  ·  5Komentar