1 Naposledy upravil: aleho (2017-02-13 05:00:52)

Téma: Nekomunikující SDS BIG

Zdravím, přestal mi během testování fungovat LAN interface na SDS BIG s posledním firmware. Testoval jsem intenzivně předělávaný program, a omylem jsem nealokoval pro sdilenou paměť T22 dostatečně velké pole, pouze 7B ale zapsal jsem tam 13B. Buď tímto nebo už při uploadu programu se mi SDS BIG kousnul, a není vidět že by žil LAN interface, na PC se neukáže žádná aktivita (zelená ani žlutá LED na LAN konektoru).
Poradíte je nějaká šance co s tím? Je nějaká možnost tvrdého resetu, přehrání firmware apod? Nebo jen intenzivní přehrávání programu zblblo flash že ani nenaběhne do nějakého základního bootloader režimu?


Doplnění jak jsem to vyřešil:
Bylo to tím programem, stačilo resetovat zkratováním RSTD a rychle přehrát demo programem než se to vzpamatovalo.

2 Naposledy upravil: drcvach (2017-02-23 10:07:21)

Re: Nekomunikující SDS BIG

Díky za návod.
I já jsem se dostal do stejných problémů - SDS nekomunikovalo.
Nejprve jsem zkoušel přeflashovat firmware (t.j. že se RSTD zkratuje při vypnutém napájení, SDS se zapne, a po pár sekundách se zkrat odstraní) což se i podařilo a firmware se nahrál OK.
Nicméně problém to nevyřešilo a SDS dále nekomunikovalo.

Pak jsem vyzkoušel zkratovat RSTD na pár sekund za běhu a ihned po odstranění zkratu na defaultní adresu 192.168.1.250 (port: 8081, heslo: test) nahrát bezchybný program.
A to zabralo.

3

Re: Nekomunikující SDS BIG

Při startu se zapojeným RSTD se program záměrně nespustí, právě přesně z důvodů možnosti odstranit nebo přehrát chybný program.

Problémy které jsou zde popisovány budou nejspíše proto, že je v SDS nahrán FULL-C program který způsobí nějaké zaseknutí zařízení (které jinak samo o sobě funguje OK, ale byl do něj nahrán zvláštní program) - řešení je snadné, viz text výše.

Samozřejmě doporučím použití nejnovějšího FULLC.EXE pro překlad a nahrávání programu, a současné nejnovější firmware pro SDS (BIG / STSW) samotné.
Postupem času došlo k významnému zvýšení odolnosti a stability právě v ohledu FULL-C programů.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

4

Re: Nekomunikující SDS BIG

Zdravím všechny, nedaří se mi resetovat SDS-BIG-64 (firmware 8.8.2017).
Po nahrání chybného FULL-C programu přestalo zařízení komunikovat po síti, ale ani po resetu popsaným způsobem (několikrát zopakované zkratování RSTD s různými prodlevami) se činnost neobnovila - na připojeném PC/routeru se jeví jako nepřipojený ethernet kabel, přičemž na RJ45 konektoru SDS pravidelně poblikává oranžová LEDka.
Tj. po resetu nebyla šance přehrát nový FULL-C program ani FW kvůli nedostupnému ethernet rozhraní.
Máte prosím nějaký tip, co ještě vyzkoušet ?

5

Re: Nekomunikující SDS BIG

Pošlete mi ten chybný SDS-C program, ať si to mohu zreplikovat, najít a opravit chybu v SDS.

Pokud tam problikne ta LED, pořád "dokola" způsobem jakým popisujete, tak to znamená že se SDS neustále resetuje. Opravdu RSTD nepomůže (zkratovat před zapnutím a držet, pak zapnout a držet - což zřejmě už správně děláte) ? jestli je to tak, tak tam máme chybu a ta se musí opravit. Hned si to dnes vyzkouším.

Jinak - "poslední" řešení je poslat SDS na bezplatný servis výrobci, což asi bude nakonec v tomto případě potřeba.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

6

Re: Nekomunikující SDS BIG

Ok, díky, poslal jsem přímou zprávou....

7

Re: Nekomunikující SDS BIG

Program mám, bude se identifikovat co je za problém, a případně se vydá nový FW.
Díky za informace.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

8

Re: Nekomunikující SDS BIG

Rychle jsem ten program prošel. Ještě nevím čím ten popsaný problém je způsoben, ale určitě tam vidím následující zásadní
chyby:

.
.
.
// return time formated into string
char* getTime() {
    unsigned int d, m, h, n, s;
    char t[12];
    d = SDS_get_u(5);
    m = SDS_get_u(6);
    h = SDS_get_u(8);
    n = SDS_get_u(9);
    s = SDS_get_u(10);
    sprintf( t, "%02u.%02u. %02u:%02u:%02u ", d, m, h, n, s);
    return t;
}

1. funkce vrací (return) proměnnou, která existuje jen na zásobníku funkce samotné (tzn. "t" přestane existovat jakmile se funkce ukončí).
2. velikost pole "t" je mnohem menší (jen 12 míst, viz původní kód), než množství textu který sprintf() zapíše
3. je použit sprintf() namísto bezpečného snprintf() - pokud by se použil snprintf, tak by to nepadalo (ale ano text by byl oříznutý, ale za to nemůže ta funkce, ale definice pole "t" která je moc "malá").
Pro příklad - opravený kus programu:

#define TEMP_BUF_SIZE (32)
char tempBuf[TEMP_BUF_SIZE];

// return time formated into string
char* getTime() 
{
    unsigned int d, m, h, n, s;

    d = SDS_get_u(5);
    m = SDS_get_u(6);
    h = SDS_get_u(8);
    n = SDS_get_u(9);
    s = SDS_get_u(10);
    snprintf( tempBuf, TEMP_BUF_SIZE, "%02u.%02u. %02u:%02u:%02u ", d, m, h, n, s);
    return tempBuf;
}

Opravy - používá se globalní (namísto lokální) proměnná "tempBuf", je dostatečně velká (v příkladu 32 bajtů, tj. až 31 znaků a 0x00 pro ukončení textu) a nakonec, používá se bezpečná funkce snprintf() tak jak to má být.

Doufám že tyto poznámky pomohou při dalším psaní programu. Podobný přístup se dá aplikovat na různé jiné místa . . . tzv. "defenzivní programování".


Ihned vydáváme BETA FW (který pak bude oficiální po testech), který si bude umět poradit s touto programátorskou chybou (a dalšími odvozenými chybami) - prosím vyzkoušejte, co to u vás udělá.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

9

Re: Nekomunikující SDS BIG

Jedna se SDS Big 128kb s programem Easy Web, tak jak byl z vyroby, jen se zmenila Mac adresa.
V administraci SDS se misto portu 8080 zadal port 161 (urceny pro SNMP). Prestalo to samozrejme komunikovat pres Html, takze se nikam nedostanu.
Nekolikrat se provedl HW reset s ruznymi delkami skratovani RSTD a nic nepomohlo. Na RJ 45 sviti trvale zluta LED a zelena obcas nepravidelne blika. SDS a PC je na stejne siti. IP scanner nenajde nic, jen co tam skutecne je. SDS je proste neviditelne.
SDS IO6 nebo Papouch jde bez problemu.
Proc to nejde po HW resetu? Da se s tim neco delat, nebo zaslat vyrobci?

10

Re: Nekomunikující SDS BIG

samsonite44 napsal:

V administraci SDS se misto portu 8080 zadal port 161 (urceny pro SNMP)

To by nemělo vadit, protože webové rozhraní běží na TCP protokolu, takže nastavení i na port TCP:161 by mělo být plně funkční.

SNMP běží na UDP portu.

Teď píši z hlavy, ale RSTD by měl webový port vrátit na 80.

Takže je otázka jestli je toto ten problém.

Zkuste ještě vyndat záložní baterku, a pak provést RSTD (stačí vypnout, zkratovat, zapnout a počkat - to je ta sekvence).

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

11 Naposledy upravil: samsonite44 (2022-01-17 19:39:54)

Re: Nekomunikující SDS BIG

Ja si taky myslim, ze HW reset by to mel vratit do vychoziho nastaveni. Tohle byla vubec prvni zmena a prvni reset od nova.
SDS je naprosto neviditelne pro okolni svet, ale zije.
Zmenil jsem to zde:  menu /sitova konfigurace/konfifurace Mac/staticka IP/DHCP pripojeni jsem zmenil port 8080 na 161 a ulozil. Od te doby uz se na nej nedostanu.
To vsechno uz jsem zkousel a nic.

12

Re: Nekomunikující SDS BIG

A jaká tam je mac adresa ?

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

13

Re: Nekomunikující SDS BIG

adamn napsal:

A jaká tam je mac adresa ?

Tak to bohuzel nemam tuseni. Nemam to zapsane, pouziju vzdycky z nejakeho zarizeni co najdu na SD :-).
Leda, ze by to slo nejak z jistit v nejake historii v PC, ale to nevim jak.

14

Re: Nekomunikující SDS BIG

šlo mi o to zeptat se, jestli byla provedena i změna konfigurace mac

no ale jak to vidím, bude to asi potřeba poslat výrobci, ať to prožene výrobní linkou znovu (přehraje všechno na default)...

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

15

Re: Nekomunikující SDS BIG

Mac se menila hned po koupi a to bylo to jedine, jinak to dosud jelo v tovarnim nastaveni. Pak jsem zacal delat pokusy se scada od Promotic a takhle to dopadlo.
S panem Prejdou uz to od vcerejska resime.

16

Re: Nekomunikující SDS BIG

zkusil jsem to udělat na BIG 128 co mám tady (nastavit port pro web na 161) a funguje to OK

rád bych to vyřešil ale nenapadá mne co s tím dále... pokud to žije (LED na Ethernetovém konektoru se chovají jak popisujete) tak se na to musí dát dostat (minimálné ARP to musí posílat - kdyby jste měl špatně vše ostatní - zkuste se podívat wiresharkem). Tipoval bych to na špatné nastavení (IP, NM, GW ... ale nevím co je tam nastaveno špatně protože to nemám v ruce). RSTD by to měl vyřešit. Vypněte to SDS, zkratujte RSTD, zapněte a nechte pořád zkratované. To nastaví tovární hodnoty (mimo MAC, ta je ponechána) a současně nespustí FULLC program. Pak už to musí běžet. Pokud nebyla MAC nějakou chybou při nastavování dána na samé nuly, to pak switch nevezme (lze zkusit natvrdo do síťovky od PC a dívat se wiresharkem co tam běhá).

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

17

Re: Nekomunikující SDS BIG

adamn napsal:

Pokud nebyla MAC nějakou chybou při nastavování dána na samé nuly, to pak switch nevezme (lze zkusit natvrdo do síťovky od PC a dívat se wiresharkem co tam běhá).

Zkusil jsem to wiresharkem a vypada to, ze je  ip 0.0.0.0 a mac 02:00:b1:90:04:cf.
Tak nevim.

18

Re: Nekomunikující SDS BIG

To je zlé, vypadá to že je poškozena uživatelská konfigurace v SDS.

Ale právě RSTD by mělo tu IP nastavit na výchozí hodnotu (192.168.1.250).

Pokud tam máte záložní baterku, vyjměte ji a zkuste to RSTD znovu.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

19

Re: Nekomunikující SDS BIG

To všechno už jsem zkoušel mnohokrát. Dnes se mi ani nepodařilo nic zachytit wiresharkem.  Papouch chodí v pohodě.
Počkám co navrhne pan Prejda. Ale asi to budu muset poslat na opravu.

20

Re: Nekomunikující SDS BIG

SDSka taky chodí v pohodě, v tom bych problém neviděl.
Buď se vám povedlo tam fakt nějak (omylem) dát nějak špatnou konfiguraci, což se mi ale nezdá,
nebo to mohlo odejít nebo se to mohlo použitím odpálit (i to už se stalo...), na dálku fakticky jen obtížné říct, proto se do toho asi ani nechci takto pouštět.

Ideálně poslat zpět, vzít si jiný kus.

Přidejte k tomu poznámku ať to co přijde (co pošlete) pak předá do vývoje, ať se na to podívají, napíšu pak aspoň co tomu bylo.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

21

Re: Nekomunikující SDS BIG

Počkám ještě na vyjádření pana Prejdy a pak to budu řešit.
Včera jsem si stáhl z provozu jednu IO6 a zkusil jsem komunikaci na wiresharku a normálně funguje.
Po připojení Big je ticho. Zkoušel jsem všechny možné filtry a nic.
Tak mě napadá ještě jedna věc. Ten Big byl zapojen v domácí sítí s ip 10.0.0.7 přidělenou dhcp, ta adresa se nikdy nezměnila pořád byla stejná. Jak jsem psal, projížděl jsem všechny adresy v celém rozsahu a nic. I kdyby tam bylo nastaveno cokoliv, tak přece po hw resetu se to musí nastavit na výchozí ip.