Giter Club home page Giter Club logo

iswifitesting's People

Contributors

mradziwo avatar

Watchers

 avatar  avatar

iswifitesting's Issues

restart ISM

Wpis w permlogu po wysłaniu 0xCAFE na /ISM010_restart jest:
"API restart"
Bardziej czytelne będzie:
" Restart ISM0-10"

Skanowanie ISM0-10

kanowanie ISM0-10 powinno dodatkowo zawierać parametry:
• 11
• 8
• 7

JH:
dodalem 

MR 13.11.18:13:00
są :)

File List

W odpowiedzi na otrzymałem:
“permanent.log,,”
W sytuacji, gdy na DC znajduje się:

Directory: E:\iswifi

Mode LastWriteTime Length Name


-a---- 02/01/2098 01:26 372 permanent.log
-a---- 02/01/2098 01:27 8655 1970-01.log
-a---- 02/01/2098 01:27 368 errors.log

JH:
czy od wywolania /FileList nie bylo zadnych operacji kasowania plikow?
a moze jeszcze nie byly utworzone pliki? ale to tylko przy wczesniejszej wersji, bo ostatnio tworze je na poczatku
musze sprawdzic, czy plik . i .. nie jest tutaj powodem dwoch przecinkow po permanent.log
c
MR 13.11.18:13:00
Sytuacja nadal taka sama: Pliki są na kardzie, nie ma operacji kasowania a /File list zwraca:
/FileList (200, ',,permanent.log,,,')

Jakaś wskazówka moze być w ilosci przecinków przed I po permanen.log

Wersja API

W tak zwanym “międzyczasie” zmieniliśmy jeden z parametrów UART na string, oraz dodaliśmy kasowanie awarii I reset ISM0-10 – w tym momencie API jest w wersji 1.0.4

JH:
zgadza sie, wykreslilbym tez UART2, bo nie korzystamy z tego portu, mial byc na XPort'a 

MR 13.11.18:13:00
miał być na drugi port RS485 – do rpacy jako repeater – tymczasowo zrezygnowaliśmy z tej funkcji – ale moze ona jeszce wrócić.

Wpisy do permlogu

Wpisy do permlogu:
• reset - działą
• zmiana czasu – działa
• kasowanie listy błędów -

JH:
to dobrze 

SSID

Może sie zdarzyć, że dwa urządzenia będą zainstalowane w niewielkiej odległości od siebie czy możemy ustalić SSID tak samo jak “Unique ID”?

JH:
moglibysmy, ale modul ESP ma jakis problem z narzuconym SSID, mimo, ze ustawiam, to i tak ma swoje ESP_xxxx
wysylam mu "AT+CWHOSTNAME="ISWiFi"\r\n" 
przy okazji, to kiedys rozmawialismy o tym, zeby zrobic zapis do Properties/Firmware, /Hardware i Id, tylko jesli jest tam domyslny nr 0 lub pusty string dla ID. Nie zrobilem tego jeszcze. Pytanie tylko, czy te wartosci maja byc przechowywane w pliku na karcie SD, czy jakos zupelnie inaczej?

MR 13.11.18:13:00
może CWSAP?
https://room-15.github.io/blog/2015/03/26/esp8266-at-command-reference/#AT+CWSAP

Przesunięcie błędów

• Jeśli ISM0-10 ma błąd E8, to ISWiFi zgłasza ("Przekroczona temperatury spalin") co jest błędęm E9
• Jeśli ISM0-10 ma błąd E6, to ISWiFi zgłaza ("Blad czujnika temperatury spalin") co jest bledem E7

JH
to bylo na ostatniej wersji czy wczesniejszej? jesli na ostatniej, to w pliku errors.log powinien byc wpis z nr bledu i opisem, ktory takze zawiera numer (to bylo wlasnie zmenione). Inna opcja, to sterownik ISM010 wysyla co innego na modbus, a co innego pokazuje na wyswietlaczu, ale log odpowie na to pytanie

MR 13.11.18:13:00
/ISMAll zwraca:

/ISM010_all (200, ((16, 0), (15, 0), (14, 24), (13, 0), (12, 32767), (11, 0), (10, 0), (9, 8), (8, 0), (7, 0), (6, 0), (5, 0), (4, 0), (3, 1), (2, 20)))

Gdzie rejestr 9 zawiera informacje o błędzie – w tym przypadku błąd 8. E8 jest również wyświetlany na ISM010.

Natomiast /LastError zwraca:
/Errors/LastError (200, 'E9\tPrzekroczona temperatury spalin')
Wiec ISWiFi prawdłowo odczytuje numer błędu – kucha pojawia sie przy tłumaczeniu numetka na tekst

File

Nie można odczytać logu nawet jeśli system go listuje
/FileList (200, 'permanent.log,,')
/File/pernament.log (404, 'Not found')

literowka w /File/pernament.log (404, 'Not found'),
akkolwiek sytuacja nie jest niemozliwa, bo gdyby akurat trwal zapis do pliku, to odczyt bylby zablokowany, tutaj mam ustawiony maksymalny czas oczekiwania na synchronizacje z systemem plikow na 1s, sam zapis trwa kilkanascie ms, wiec nie powinno sie zdarzyc dopoki zapisujemy male kawalki danych

MR 13.11.18:13:00
mea culpa – działa :)

/ISM010_{xxx}

ie mogę uzystkać dostępu do parametrów/rejestrów ISM0-10 poprzez “/ISM010_{xxx}”

JH:
w specyfikacji 1.02 bylo /ISM010/{xxx}, zmienilem tak jak w 1.04 

MR 13.11.18:13:00
działa w formacie np /ISM010_9 bez dodatkowych zer – nie testowałem z zerami

kasowanie plików

Jak wygląda w tej chwili rotacja plików logów?
W mailach z 30.01i z 6.02 zaczęliśmy o tym rozmwaiać, ale nie wiem jaka jest końcowa implementacja.

Jeśli istnieje wiele plików errorlog, to zapytanie GET /Errors/ErrorList zwróci mi zawartość jedynie najnowszego pliku, czy wszystkich?
Jesli w tej sytuacji wyśle zapytanie DELETE /Errors/ErrorList to skasowane zostaną wszystkie pliki?

Parameter_

Żeby utrzymać spójność z /ISM010_{xxx} chcę również zaztosować “” przy dostępie do parametrów: Parameter{xxx}. Dodałem również notkę o obcinaniu początkowych zer, żeby misć pewnosć, że parametr 1 jest dostępny pod _1 a nie np. _001.

JH:
zmienilem, mozna wysylac z zerami poczatkowymi lub bez, zadziala zawsze

MR 13.11.18:13:00
działa bez dodatkowych zer – nie testowałem z zerami

Data Unixowa w pierwszej linii każdego pliku

Perman.log i histor.log mają w pierwszej linijce (tworzenie pliku) unixową datę - params i error log jej nie posiadają. Dla spójności niech data unixowa będzie we wszystkich plikach.

date unixowa moge dodac do kazdego pliku,

Błędny odczyt danych z ISM010

Czasem odpytując parametry ISM010 otrzymuję wyniki z dodatkowym bajtem 0x02 na pozycji 0x0000FF0000:

/ISM010_501              (200, 131074, b'\xce\x00\x02\x00\x02')
/ISM010_502              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_503              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_504              (200, 131132, b'\xce\x00\x02\x00<')
/ISM010_505              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_506              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_507              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_508              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_509              (200, 131097, b'\xce\x00\x02\x00\x19')
/ISM010_510              (200, 131082, b'\xce\x00\x02\x00\n')
/ISM010_511              (200, 131172, b'\xce\x00\x02\x00d')
/ISM010_512              (200, 131086, b'\xce\x00\x02\x00\x0e')
/ISM010_513              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_514              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_515              (200, 131073, b'\xce\x00\x02\x00\x01')
/ISM010_516              (200, 131073, b'\xce\x00\x02\x00\x01')
/ISM010_517              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_518              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_519              (200, 131122, b'\xce\x00\x02\x002')
/ISM010_520              (200, 131082, b'\xce\x00\x02\x00\n')
/ISM010_521              (200, 131302, b'\xce\x00\x02\x00\xe6')
/ISM010_522              (None, "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))")
/ISM010_523              (200, 131073, b'\xce\x00\x02\x00\x01')
/ISM010_524              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_525              (200, 131073, b'\xce\x00\x02\x00\x01')
/ISM010_526              (200, 131073, b'\xce\x00\x02\x00\x01')
/ISM010_527              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_528              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_529              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_530              (200, 131122, b'\xce\x00\x02\x002')
/ISM010_531              (200, 131072, b'\xce\x00\x02\x00\x00')
/ISM010_532              (200, 131077, b'\xce\x00\x02\x00\x05')
/ISM010_533              (200, 131572, b'\xce\x00\x02\x01\xf4')
/ISM010_534              (200, 131672, b'\xce\x00\x02\x02X')


Natomiast czasem działą poprawnie:

/ISM010_501              (200, 2, b'\x02')
/ISM010_502              (200, 5, b'\x05')
/ISM010_503              (200, 0, b'\x00')
/ISM010_504              (200, 60, b'<')
/ISM010_505              (200, 5, b'\x05')
/ISM010_506              (200, 5, b'\x05')
/ISM010_507              (200, 0, b'\x00')
/ISM010_508              (200, 5, b'\x05')
/ISM010_509              (200, 25, b'\x19')
/ISM010_510              (200, 10, b'\n')
/ISM010_511              (200, 100, b'd')
/ISM010_512              (200, 14, b'\x0e')
/ISM010_513              (200, 0, b'\x00')
/ISM010_514              (200, 0, b'\x00')
/ISM010_515              (200, 1, b'\x01')
/ISM010_516              (200, 1, b'\x01')
/ISM010_517              (200, 5, b'\x05')
/ISM010_518              (200, 5, b'\x05')
/ISM010_519              (200, 50, b'2')
/ISM010_520              (200, 10, b'\n')
/ISM010_521              (200, 230, b'\xcc\xe6')
/ISM010_522              (200, 30, b'\x1e')
/ISM010_523              (200, 1, b'\x01')
/ISM010_524              (200, 0, b'\x00')
/ISM010_525              (200, 1, b'\x01')
/ISM010_526              (200, 1, b'\x01')
/ISM010_527              (200, 0, b'\x00')
/ISM010_528              (200, 0, b'\x00')
/ISM010_529              (200, 5, b'\x05')
/ISM010_530              (200, 50, b'2')
/ISM010_531              (200, 0, b'\x00')
/ISM010_532              (200, 5, b'\x05')
/ISM010_533              (None, "('Connection aborted.', RemoteDisconnected('Remote end closed connection without response',))")
/ISM010_534              (200, 600, b'\xcd\x02X')

Pomiędzy tymi dwoma seriami wywołań nie byy tylko inne zapytania GET.

Problem z Logiem bierzącym (/File/1970-01.log )

Mam spory prblem z odczytywaniem logu birzącego. Minimalny skrypt:
`import socket

def getLogFile():
data=b""
request = b'GET /File/1970-01.log HTTP/1.1\r\nHost: 192.168.4.1\r\nExpect: application/msgpack\r\n\r\n'
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(30)
s.connect(("192.168.4.1", 80))
s.send(request)
while 1:
try:
line = s.recv(1024)
print (line)
data+=line
except socket.timeout:
break
if not data:
break

s.close()
print (data)
print (len(data))`

Zwraca bardzo różne wartości. Często jest to tylko sam nagłówek, bądź nagłówek+część treści i zaraz po tym znów nagłówek i część pliku od początku. Nie udało mi się odczytać całej zawartości pliku.
Przykładowy rezultat:

b'HTTP/1.1 200 OK\r\nContent-Type: application/msgpack\r\nContent-Length: 15078\r\n\r\n'
b'HTTP/1.1 200 OK\r\nContent-Type: application/msgpack\r\nContent-Length: 15078\r\n\r\n'
77

lub:

b'HTTP/1.1 200 OK\r\nContent-Type: application/msgpack\r\nContent-Length: 15486\r\n\r\n'
b'\xda<{'
b'46853,1970-01-01 13:00.52 creating the file\r\n46853,ISM010_16,0,2086\r\n46853,ISM010_14,0,24\r\n46854,ISM010_12,0,179\r\n46854,State changes: State 0xffff -> STOP\r\n46856,ISM010_3,0,14\r\n46857,ISM010_16,2086,2503\r\n46858,ISM010_12,179,180\r\n46862,ISM010_12,180,181\r\n46866,ISM010_12,181,182\r\n46889,ISM010_12,182,183\r\n46893,ISM010_12,183,184\r\n46929,ISM010_16,0,1669\r\n46930,ISM010_14,0,24\r\n46930,ISM010_12,0,184\r\n46931,State changes: State 0xffff -> STOP\r\n46933,ISM010_3,0,14\r\n46933,ISM010_16,1669,2504\r\n46937,ISM010_16,2504,2'
b'503\r\n47115,ISM010_16,2503,2504\r\n47119,ISM010_16,2504,2503\r\n47159,ISM010_14,24,23\r\n47163,ISM010_14,23,24\r\n47305,ISM010_3,14,10\r\n47306,ISM010_12,184,5401\r\n47309,ISM010_3,10,1\r\n47309,ISM010_2,0,20\r\n47310,ISM010_12,5401,32767\r\n47311,ISM010_9,0,8\r\n47313,ISM010_3,1,4\r\n47313,ISM010_2,20,4\r\n47315,ISM010_9,8,0\r\n47317,ISM010_3,4,14\r\n47317,ISM010_2,4,0\r\n47318,ISM010_12,32767,4990\r\n47322,ISM010_12,4990,182\r\n47326,ISM010_12,182,183\r\n47330,ISM010_12,183,184\r\n47349,ISM010_16,2503,2504\r\n47353,ISM010_16,2504,2503\r\n47357,ISM'
b'010_16,2503,2504\r\n47361,ISM010_16,2504,2503\r\n47404,ISM010_16,2503,2504\r\n47408,ISM010_16,2504,2503\r\n47543,ISM010_16,2503,2502\r\n47547,ISM010_16,2502,2503\r\n48204,ISM010_16,2503,2502\r\n48207,ISM010_16,2502,2503\r\n48287,ISM010_16,2503,2502\r\n48291,ISM010_16,2502,2503\r\n48338,ISM010_16,2503,2504\r\n48342,ISM010_16,2504,2503\r\n48500,ISM010_16,2503,2504\r\n48504,ISM010_16,2504,2503\r\n48532,ISM010_16,2503,2504\r\n48536,ISM010_16,2504,2503\r\n48797,ISM010_14,24,23\r\n48801,ISM010_14,23,24\r\n48826,ISM010_12,184,183\r\n48838,ISM010_12,18'
b'HTTP/1.1 200 OK\r\nContent-Type: application/msgpack\r\nContent-Length: 15486\r\n\r\n\xda<{46853,1970-01-01 13:00.52 creating the file\r\n46853,ISM010_16,0,2086\r\n46853,ISM010_14,0,24\r\n46854,ISM010_12,0,179\r\n46854,State changes: State 0xffff -> STOP\r\n46856,ISM010_3,0,14\r\n46857,ISM010_16,2086,2503\r\n46858,ISM010_12,179,180\r\n46862,ISM010_12,180,181\r\n46866,ISM010_12,181,182\r\n46889,ISM010_12,182,183\r\n46893,ISM010_12,183,184\r\n46929,ISM010_16,0,1669\r\n46930,ISM010_14,0,24\r\n46930,ISM010_12,0,184\r\n46931,State changes: State 0xffff -> STOP\r\n46933,ISM010_3,0,14\r\n46933,ISM010_16,1669,2504\r\n46937,ISM010_16,2504,2503\r\n47115,ISM010_16,2503,2504\r\n47119,ISM010_16,2504,2503\r\n47159,ISM010_14,24,23\r\n47163,ISM010_14,23,24\r\n47305,ISM010_3,14,10\r\n47306,ISM010_12,184,5401\r\n47309,ISM010_3,10,1\r\n47309,ISM010_2,0,20\r\n47310,ISM010_12,5401,32767\r\n47311,ISM010_9,0,8\r\n47313,ISM010_3,1,4\r\n47313,ISM010_2,20,4\r\n47315,ISM010_9,8,0\r\n47317,ISM010_3,4,14\r\n47317,ISM010_2,4,0\r\n47318,ISM010_12,32767,4990\r\n47322,ISM010_12,4990,182\r\n47326,ISM010_12,182,183\r\n47330,ISM010_12,183,184\r\n47349,ISM010_16,2503,2504\r\n47353,ISM010_16,2504,2503\r\n47357,ISM010_16,2503,2504\r\n47361,ISM010_16,2504,2503\r\n47404,ISM010_16,2503,2504\r\n47408,ISM010_16,2504,2503\r\n47543,ISM010_16,2503,2502\r\n47547,ISM010_16,2502,2503\r\n48204,ISM010_16,2503,2502\r\n48207,ISM010_16,2502,2503\r\n48287,ISM010_16,2503,2502\r\n48291,ISM010_16,2502,2503\r\n48338,ISM010_16,2503,2504\r\n48342,ISM010_16,2504,2503\r\n48500,ISM010_16,2503,2504\r\n48504,ISM010_16,2504,2503\r\n48532,ISM010_16,2503,2504\r\n48536,ISM010_16,2504,2503\r\n48797,ISM010_14,24,23\r\n48801,ISM010_14,23,24\r\n48826,ISM010_12,184,183\r\n48838,ISM010_12,18'
1616

Czasy

Otrzymałem taką odpowiedź na:
200, (('/ISM010_available', 1), ('/Time/Time', 69372), ('/Time/SystemStartTime', 69181), ('/Time/SystemUptime', 191), ('/Runtime/LastIgnition', 0), ('/Runtime/StateUptime', 289),…
Jak to się mogło stać, że '/Time/SystemUptime', wynosi 191 a Runtime/StateUptime', 289? Jeśli wynika to z “pamiętania” przez system stanu z poprzednego uruchomienia, to powinniśmy z tej opcji zrezygnować I maksymalne czasy powinny wynosić Runtime/StateUptime

JH:
brak odczytu z rtc i zapisu wartosci poczatkowej dla StateUptime (byla wartosc 0), dla SystemUptime bylo to zrobione i przy odejmowaniu wyszlo ok, a dla StateUptime odejmowalem 0 i dlatego wyszlo wiecej niz SystemUptime, poprawione

MR 13.11.18:13:00
Niestety wciąż przy odpytaniu propertiesSettings dostałem:
/Properties/Settings (200, (('/ISM010_available', 1), ('/Time/Time', 138018), ('/Time/SystemStartTime', 138014), ('/Time/SystemUptime', 4), ('/Runtime/LastIgnition', 0), ('/Runtime/StateUptime', 239)

gdzie system uptime jest mniejszy niż state uptime.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.