1

Téma: UnableToEraseOrWrongContentLen u funkce /newuserweb

Zdravím,
úspěšně používám funkci POST upload pro nahrávání FULL-C programu a aktualizaci firmware. Nyní jsem chtěl nahrát web stránku pomocí funkce /newuserweb do SDS BIG, ale vždy mi to skončí s touhle chybou: Deny:UnableToEraseOrWrongContentLen
Zkoušel jsem to na dvou různých SDS BIG s posledním firmware - na obou to skončí se stejným výsledkem.
Předpokládám, že aplikaci pro nahrávání mám napsanou správně, když mi bez problému funguje pro nahrávání FULL-C programu a aktualizaci firmware. Nevíte, kde by mohl být problém, případně na co se zaměřit?

Zde je záchyt průběhu komunikace pro nahrání výchozí web stránky :

POST /newuserweb HTTP/1.1
Content-Length: 2640
Host: 192.168.10.113

NoncePlease

Nonce:08B038A422BAAD9A21EFE74424D4E1F3151FBC14910201A9D75BD78B81CAA209
Auth:SHA-256:84C1AFD6BD1EA602375441E588DB2C302760E7A7C09891F48B6CF965C7E5D3DC

Auth:CONTINUE
START:START

Deny:UnableToEraseOrWrongContentLen

2

Re: UnableToEraseOrWrongContentLen u funkce /newuserweb

Nahráváte UWB nebo UWEB? Správný formát je UWB a takto se soubor musí uložit pomocí FULL-C - tlačítko "Write .UWB only". Pokud tomu tak je a délka je správná, pak je asi problém opravdu někde v paměti SDS. Nám to funguje dobře (jsme taky zákazníci).

3

Re: UnableToEraseOrWrongContentLen u funkce /newuserweb

Po START se interně provádí smazání paměti, ve které má být user web soubor uložen. Pokud se to povede, SDS má vrátit "Erased:ReadyToWrite".

Protože jste ale dostal "Deny:UnableToEraseOrWrongContentLen", může to být z těchto důvodů:

1. velikost posílaného souboru (dat) je menší než dolní limit (264B)
2. velikost posílaného souboru (dat) je vetší než horní limit (2160840B)
3. fyzická porucha paměťového chipu (dataflash) v daném SDS (= neumí se smazat)

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

4

Re: UnableToEraseOrWrongContentLen u funkce /newuserweb

Zkoušel jsem si s tím ještě hrát, ale nepodařilo se mi to rozchodit.
Ano, nahrávám soubor UWB - ale v daný moment, kdy problém vznikne, tak v podstatě SDS ještě neví, co dostane za soubor a jaký je jeho obsah. Ví jen, že soubor má délku 2640 bajtů - (hlavička Content-Length) a že by se mělo jednat o webovou stránku (POST /newuserweb).

Velikost 2640 bajtů je také v mezích a zkoušel jsem to nezávisle v tuto chvíli již na 3 různých SDS posledním FW a pořád stejná chyba, tím bych vyloučil chybu paměti..
Nahrávání nového FW mi touto metodou funguje bez problému.   

Každopádně díky za snahu pomoct.


BTW. Neplánuje se třeba do budoucna přes webové rozhraní SDS mít možnost přidat/smazat soubor/adresář na SD kartě? Prostě nějaký úplně fakt jednoduchý file manager?
Klasický příklad: Programování na zakázku, webová stránka je nahraná v SDS na SD kartě a dané SDS leží na druhém konci republiky.

5

Re: UnableToEraseOrWrongContentLen u funkce /newuserweb

Pošlete mi váš UWB soubor emailem, vyzkouším to.

V tomto případě musí být Content-Length přesná hodnota velikosti zaslaného souboru v bajtech, což podle toho, co píšete, splňujete.

Zkuste ale ještě poslat toto:

Content-Length:2640

tedy bez mezery.


Chyba UnableToEraseOrWrongContentLen se objeví jen při (výše uvedených) třech možnostech.
Pokud je Content-Length správně, pak jde o chybu, kdy se systému nedaří smazat obsah paměti (aby tam pak mohl nahrát nový soubor).
To může být z více důvodů. Často je to proto, že už mezitím probíhá jiná aktivita s pamětí (souběžně běží jiné mazání nebo nahrávání).

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