Ahoj!
Pred par dny odesel pocitac, na ktery je pripojeny brmdoor a bezi na nem brmd (IRC interface, status ikonka atd.). Ruza venoval a nasetupoval jako nahradu Raspberry Pi, kde nyni brmd bezi, vyskytl se ovsem problem.
Potiz je takova, ze brmdoor byl napsany pro Arduino 0.x a nepovedlo se nam jej rozchodit na Arduino 1.0; aktualni firmware tedy funguje, az ho bude potreba zupdatovat (treba pridat/odebrat kartu), pujde to jen s velkym usilim. Existuji dve moznosti, jak situaci resit:
* horsi - rozchodit na raspbianu Arduino 023 nebo podobnou verzi
* lepsi - fixnout brmdoor, aby fungoval spravne i zkompilovany pod Arduino 1.x. Problem se projevuje tak, ze brmdoor snima tlacitka a komunikuje s pocitacem, ovsem nekomunikuje s RFID cteckou. Ta komunikuje seriove a pro komunikaci se tedy drive pouzivala knihovna NewSoftSerial. Ta uz pro Arduino 1.0 neni a nahradily ji knihovny SoftwareSerial (zkusil jsem i pridat call .listen()) a AltSoftSerial. S ani jednou z nich vsak cteni z RFID ctecky neprobiha (proste nikdy nevrati metoda available() true) a po cca 20min. se mi nepovedlo zdebugovat proc; bohuzel tomu v nejblizsich dnech nemuzu vice casu venovat.
Radi bychom Vas tedy poprosili o pomoc s resenim naseho jednodveroveho problemu. Chcete-li pristup na brmdoor, muzeme Vas tam pridat, anebo si muzete arduino proste pripojit ke svemu notebooku a zkouset flashovat z nej. (Je vsak naprosto esencialni, aby pri Vasem odchodu byla v Arduinu naflashovana funkcni verze s plnou sadou karet!)
Můžeš mi prosím poslat nějaký sample cardids.h?
---------- Původní zpráva ---------- Od: Petr Baudis pasky@ucw.cz Datum: 19. 6. 2013 Předmět: [Brmlab] help needed: brmdoor (arduino skillz)
"Ahoj!
Pred par dny odesel pocitac, na ktery je pripojeny brmdoor a bezi na nem brmd (IRC interface, status ikonka atd.). Ruza venoval a nasetupoval jako nahradu Raspberry Pi, kde nyni brmd bezi, vyskytl se ovsem problem.
Potiz je takova, ze brmdoor byl napsany pro Arduino 0.x a nepovedlo se nam jej rozchodit na Arduino 1.0; aktualni firmware tedy funguje, az ho bude potreba zupdatovat (treba pridat/odebrat kartu), pujde to jen s velkym usilim. Existuji dve moznosti, jak situaci resit:
* horsi - rozchodit na raspbianu Arduino 023 nebo podobnou verzi
* lepsi - fixnout brmdoor, aby fungoval spravne i zkompilovany pod Arduino 1.x. Problem se projevuje tak, ze brmdoor snima tlacitka a komunikuje s pocitacem, ovsem nekomunikuje s RFID cteckou. Ta komunikuje seriove a pro komunikaci se tedy drive pouzivala knihovna NewSoftSerial. Ta uz pro Arduino 1.0 neni a nahradily ji knihovny SoftwareSerial (zkusil jsem i pridat call .listen()) a AltSoftSerial. S ani jednou z nich vsak cteni z RFID ctecky neprobiha (proste nikdy nevrati metoda available() true) a po cca 20min. se mi nepovedlo zdebugovat proc; bohuzel tomu v nejblizsich dnech nemuzu vice casu venovat.
Radi bychom Vas tedy poprosili o pomoc s resenim naseho jednodveroveho problemu. Chcete-li pristup na brmdoor, muzeme Vas tam pridat, anebo si muzete arduino proste pripojit ke svemu notebooku a zkouset flashovat z nej. (Je vsak naprosto esencialni, aby pri Vasem odchodu byla v Arduinu naflashovana funkcni verze s plnou sadou karet!)
Já nemám čas jit do brmlabu teď(státnice prý mají přednost) ale doporučil bych Vám, zkusit tohle: https://github.com/timthelion/brmdoor/commit/d739567 ac49fd5d8d193047c873e0ecf3226910e při debugování takových problému...
Tim
---------- Původní zpráva ---------- Od: Petr Baudis pasky@ucw.cz Datum: 19. 6. 2013 Předmět: [Brmlab] help needed: brmdoor (arduino skillz)
"Ahoj!
Pred par dny odesel pocitac, na ktery je pripojeny brmdoor a bezi na nem brmd (IRC interface, status ikonka atd.). Ruza venoval a nasetupoval jako nahradu Raspberry Pi, kde nyni brmd bezi, vyskytl se ovsem problem.
Potiz je takova, ze brmdoor byl napsany pro Arduino 0.x a nepovedlo se nam jej rozchodit na Arduino 1.0; aktualni firmware tedy funguje, az ho bude potreba zupdatovat (treba pridat/odebrat kartu), pujde to jen s velkym usilim. Existuji dve moznosti, jak situaci resit:
* horsi - rozchodit na raspbianu Arduino 023 nebo podobnou verzi
* lepsi - fixnout brmdoor, aby fungoval spravne i zkompilovany pod Arduino 1.x. Problem se projevuje tak, ze brmdoor snima tlacitka a komunikuje s pocitacem, ovsem nekomunikuje s RFID cteckou. Ta komunikuje seriove a pro komunikaci se tedy drive pouzivala knihovna NewSoftSerial. Ta uz pro Arduino 1.0 neni a nahradily ji knihovny SoftwareSerial (zkusil jsem i pridat call .listen()) a AltSoftSerial. S ani jednou z nich vsak cteni z RFID ctecky neprobiha (proste nikdy nevrati metoda available() true) a po cca 20min. se mi nepovedlo zdebugovat proc; bohuzel tomu v nejblizsich dnech nemuzu vice casu venovat.
Radi bychom Vas tedy poprosili o pomoc s resenim naseho jednodveroveho problemu. Chcete-li pristup na brmdoor, muzeme Vas tam pridat, anebo si muzete arduino proste pripojit ke svemu notebooku a zkouset flashovat z nej. (Je vsak naprosto esencialni, aby pri Vasem odchodu byla v Arduinu naflashovana funkcni verze s plnou sadou karet!)
On Wed, Jun 19, 2013 at 08:16:56PM +0200, timothyhobbs@seznam.cz wrote:
Já nemám čas jit do brmlabu teď(státnice prý mají přednost) ale doporučil bych Vám, zkusit tohle: https://github.com/timthelion/brmdoor/commit/d739567 ac49fd5d8d193047c873e0ecf3226910e při debugování takových problému...
Hmm, to uplne nevim, jestli necemu pomuze, protoze to
while (rfidSerial.available() > 0)
se pousti de facto furt dokola a nikdy to tim neproleze skrz.
Petr "Pasky" Baudis
Hm? Ten můj kód by měl čekat až se něco dorazí(pokud něco dorazí) a zmrazit, pokud se nedorazí nic. Já takový kód používám běžně pří normální seriálové komunikace a funguje dobře. Ten listen() je pro Nás k ničemu. Je to použity jen v případě, že softwarově ovládneme víc než jeden seriálové port. brmdoor děla jeden port softwarově a jeden přes hardwarem tak není žádný důvod používat listen(). V našem případě listen Nám může i škodit(jestli je v nesprávném místě) protože vychodí buffer: Citují odsud http:// arduiniana.org/libraries/newsoftserial/ ------------------------------------------
In this example, we assume that read_gps_data() uses the gps object and read _thermometer_data() uses the therm object. Any time you call the listen() method, it becomes the “active” object, and the previously active object is deactivated and its RX buffer discarded. An important point here is that object.available() always returns 0 unless object is already active. This means that you can’t write code like this:
void loop() { device1.listen(); if (device1.available() > 0) { int c = device1.read(); ... } device2.listen(); if (device2.available() > 0) { int c = device2.read(); ... } } ////////////////////////////////////////////////////////
Kód by měl fungovat podle mého čtení. Kdy jsi to flašnul zpátky na tu starou už to zase fungoval?(abychom vyloučili problém s hardwarem?)
Tim
---------- Původní zpráva ---------- Od: Petr Baudis pasky@ucw.cz Datum: 19. 6. 2013 Předmět: Re: [Brmlab] help needed: brmdoor (arduino skillz)
"On Wed, Jun 19, 2013 at 08:16:56PM +0200, timothyhobbs@seznam.cz wrote:
Já nemám čas jit do brmlabu teď(státnice prý mají přednost) ale doporučil bych Vám, zkusit tohle: https://github.com/timthelion/brmdoor/commit/d
739567
ac49fd5d8d193047c873e0ecf3226910e při debugování takových problému...
Hmm, to uplne nevim, jestli necemu pomuze, protoze to
while (rfidSerial.available() > 0)
se pousti de facto furt dokola a nikdy to tim neproleze skrz.
Petr "Pasky" Baudis _______________________________________________ Brmlab mailing list Brmlab@brmlab.cz http://brmlab.cz/cgi-bin/mailman/listinfo/brmlab"
On Wed, Jun 19, 2013 at 09:31:39PM +0200, timothyhobbs@seznam.cz wrote:
Hm? Ten můj kód by měl čekat až se něco dorazí(pokud něco dorazí) a zmrazit, pokud se nedorazí nic. Já takový kód používám běžně pří normální seriálové komunikace a funguje dobře.
Jasne, s tou smyckou by to asi v soucasne verzi bylo lepsi, kazdopadne problem imho nijak vyresit nemuze.
Ten listen() je pro Nás k ničemu. Je to použity jen v případě, že softwarově ovládneme víc než jeden seriálové port. brmdoor děla jeden port softwarově a jeden přes hardwarem tak není žádný důvod používat listen(). V našem případě listen Nám může i škodit(jestli je v nesprávném místě) protože vychodí buffer: Citují odsud http:// arduiniana.org/libraries/newsoftserial/
Zkousel jsem primarne bez listen(), ten byl jen zoufaly napad. :)
Kód by měl fungovat podle mého čtení. Kdy jsi to flašnul zpátky na tu starou už to zase fungoval?(abychom vyloučili problém s hardwarem?)
Ano. Aktualne je brmdoor funkcni.