-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.213.192.88.238
!not-for-mail
From: Piotr Gałka <p...@c...pl>
Newsgroups: pl.misc.elektronika
Subject: Re: Pytanie do serwisantów.
Date: Mon, 22 Aug 2016 20:34:07 +0200
Organization: news.chmurka.net
Lines: 113
Message-ID: <npfgiq$c4t$1@news.chmurka.net>
References: <b...@g...com>
<np25bh$dpt$1@news.chmurka.net>
<57b4af76$0$12547$65785112@news.neostrada.pl>
<57b4c16b$0$12558$65785112@news.neostrada.pl>
<57b4c8f4$0$15199$65785112@news.neostrada.pl>
<np3p8m$r4$1@news.chmurka.net> <np4ptk$18j0$1@gioia.aioe.org>
<np4tfg$e1f$1@news.chmurka.net>
<d...@g...com>
<np7f9h$d8j$1@news.chmurka.net> <np7hho$1ctm$1@gioia.aioe.org>
<np7iop$ehm$1@news.chmurka.net> <np7jbi$1fs9$1@gioia.aioe.org>
<np7kgq$f5u$1@news.chmurka.net> <np7kv6$1imi$1@gioia.aioe.org>
<np7l6s$fd9$1@news.chmurka.net> <np7ll4$66a$1@node1.news.atman.pl>
<np90rm$vag$1@news.chmurka.net> <np9540$kp9$1@node1.news.atman.pl>
<np96qv$1oi$1@news.chmurka.net> <np9a62$pqe$1@node1.news.atman.pl>
<np9duf$4fi$1@news.chmurka.net> <np9f6b$uuk$1@node1.news.atman.pl>
<np9l7m$71g$1@news.chmurka.net> <np9mdg$6ck$1@node1.news.atman.pl>
<npekbs$1l1$1@news.chmurka.net> <npf8j8$qj8$1@node1.news.atman.pl>
Mime-Version: 1.0
Content-Type: text/plain; format=flowed; charset="utf-8"; reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 22 Aug 2016 18:34:02 +0000 (UTC)
Injection-Info: news.chmurka.net; posting-account="PiotrGalka";
posting-host="213.192.88.238"; logging-data="12445";
mail-complaints-to="abuse-news.(at).chmurka.net"
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.5931
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
Xref: news-archive.icm.edu.pl pl.misc.elektronika:704571
[ ukryj nagłówki ]
Użytkownik "Sebastian Biały" <h...@p...onet.pl> napisał w wiadomości
news:npf8j8$qj8$1@node1.news.atman.pl...
> Scenariusze które pokazują że dla takich danych wejściwych funckja ma dać
> takie dane wyjściowe. Przykład liczenia CRC jest wręcz ksiązkowym
> problemem dla unit testów. Unit testy są zywym kodem który mozna uruchomic
> i debugować jeśli coś nie działa.
Ok rozumiem, ale oni napisali by te unit testy pod C# i chcieli abym ja to
odpalił, a ja nigdy nic z C# do tej pory.
A ja im dostarczyłem źródło tego crc w C++, tylko oni "Nie pamiętam C++" i
dostarczyłem też działający program, który nawiązywał komunikację z
urządzeniem i wypisywał na ekranie każdą ramkę w postaci samego rozkazu i
potem ujętego w zaszyfrowanej ramce i również każdą odebraną ramkę i
wyłuskany z niej rozkaz.
>
> Nalezy w takiej sytuacji napisać unit testy które emulują urządzenie (tzw.
> mocki). Oczywiście zdaje sobie sprawę że to jest mało sensowna rada
> ponieważ zazwyczaj kod 3-rd party jest żenujacej jakości i unit testów nie
> da się na nim odpalić.
Musiałbym kiedyś raz z kimś przez takie działanie przejść, abym mógł
powiedzieć że dokładnie rozumiem co masz na myśli. A tak to rozumiem tylko
mniej więcej.
> Nie zmienia to jednak faktu że tak to należy zrobić książkowo. Czy Twój
> kod taki jest - nie wiem. Spodziewam się że nie skoro prosza o pomoc kogoś
> z drugiej strony.
Mój program jakby mieli Buildera 2010 to po prostu mogliby go kompilować i
debuggować.
Nie do końca rozumiem, jak oceniasz jakość kodu. Moim celem było napisanie
działającego przykładu. Procedury celowo nie są uniwersalne, tylko dokładnie
do tego co jest w przykładzie potrzeba bo takie według mnie łatwiej
zrozumieć. Sposób sterowania komunikacją też absolutnie nie nadający się do
praktycznego zastosowania, ale taki, aby jednym rzutem oka było widać co się
po kolei dzieje.
Mogę Ci go wysłać do obejrzenia, ale nie wiem czy to ma sens i czy masz na
to czas.
> Ale dlaczego podejrzewasz - jesli Twoje urządzenie prawidlowo odpowada na
> ciąg przez nich wysyłany to dlaczego masz to diagnozować?
Nie zrozumiałeś. Komunikację rozpoczyna urządzenie wysyłając ramkę z liczbą
losową do serwera. Ramka ma crc, ale nie jest podpisana.
Serwer ma odpowiedzieć ramką z drugą liczbą losową i podpisem CMAC obu liczb
losowych.
Oni (serwer) wysyłali ramkę na którą nie dostawali już odpowiedzi - czyli
nie dostawali żadnej odpowiedzi na swoje działania.
Gość najpierw mi podesłał samą wysłaną przez nich ramkę abym sprawdził
dlaczego urządzenie nie odpowiada. Gdybym wpadł na to, że to może crc to bym
sprawdził, ale sądziłem, że crc to musieli przecież sprawdzić (bo mają tę
pierwszą ramkę) więc byłem absolutnie pewien, że błąd jest w CMAC i mu
napisałem, że muszę mieć też tę ramkę na którą on odpowiada abym znał liczbę
losową akurat z tej transmisji. Nie miałem gotowca, aby z tekstu (HEX)
odczytywać bajty (a sądziłem, że może będę to musiał wiele razy robić) więc
musiałem to napisać i się zdziwiłem, że CMAC mają dobry. No to sprawdziłem
jeszcze crc i napisałem, że tu mają błąd. Jak mi gość napisał (w liczbie
mnogiej), że oni przetłumaczyli moje źródło crc na C# i nie widzą błędu i mi
to w C# przysłał to w sumie wskazując błąd odpisałem, że "ręce człowiekowi
opadają".
Pewnym problemem jest to, że jak puszczą komunikację urządzenia z moim
programem to mają wszystko wypisane bajt po bajcie na ekranie (i w pliku
trace), ale jak próbują sami się komunikować to transmisja już jest inna, bo
urządzenie wyśle inną liczbę losową. Według mnie oni powinni (nie mając
Buildera) na podstawie mojego trace zobaczyć, czy wyjdzie im dokładnie taka
sama odpowiedź jak mój program odpowiadał. Ale oni jakoś tak woleli do
wszystkiego podchodzić chaotycznie i metodą prób i błędów.
> Niech sobie napiszą emulator/mock i testują u siebie.
Zależy nam zawsze aby pomóc (szczególnie jak wiemy, że mają nóż na gardle -
bo ten obiekt jakoś miał coś z funduszami unijnymi i odbiór nie mógł być
opóźniany bo coś tam) więc nawet jak uważałem, że to nie powinien być mój
problem to starałem się pomóc ile potrafię.
>> Masz na myśli tamtą firmę, czy naszą? My chcemy dostarczać ludziom jak
>> najbardziej przydatne im informacje, ale nie przekraczając swojego
>> poziomu kompetencji.
>
> Dostarczasz dokumentacje. Zadaniem firmy softwareowej która implementuje
> ten protokół jest napisać unit testy które są zgodne z ta dokumentacją.
> Nie zrobili tego zapewne.
Na pewno nie zrobili bo od dostarczenia dokumentacji (kilkadziesiąt stron)
to tych prób minął jeden dzień. Wyjątkowa sytuacja.
>> Ja do tego przykładu użyłem jednego obiektu z biblioteki dostarczonej
>> razem z Builderem 2010, ale słyszałem, że nie za bardzo jest ona
>> optymalna, więc zakładałem, że prawdziwi programiści obsługują TCPIP
>> bezpośrednio funkcjami systemu operacyjnego (czego ja nie ogarniam).
>
> Nie. Zdefiniuj wydajność. Każdą biblioteke mozna źle uzyć i narzekać na
> wydajność. Builder ma swoje za uszami, ale że nie wyciąga w sieci ile
> fabryka dała to nie uwierzę.
To jest biblioteka INDY, napisana przez kogoś innego i dołączona do
Buildera.
Opinię usłyszałem od kogoś, kto orientuje się w tych tematach znacznie
lepiej ode mnie, ale dokładnie co i jak to nie powiem.
> "Lepiej" zalezy od zastosowania i umiejętności. Poleciłbym Clojure gdyby
> było dla niego zastosowanie. Tak samo Prologa. Wszystko zalezy od tego co
> chcesz zrobić. jak nie wiesz to ... Python, Java, C#.
Gdy poznawałem Prologa to akurat miałem potrzebę napisania assemblera 51-ki
więc pierwsza wersja mojego assemblera była w Prologu i to jest chyba
przykład najgorszego dobrania narzędzia do celu :).
Potem napisałem wszystko od nowa, a o Prologu zapomniałem całkiem.
P.G.
Następne wpisy z tego wątku
- 22.08.16 21:20 Sebastian Biały
- 23.08.16 01:53 bat
- 23.08.16 11:35 Piotr Gałka
- 02.09.16 15:49 r...@k...pl
- 02.09.16 16:37 Kris
- 02.09.16 18:18 HF5BS
- 02.09.16 20:20 AlexY
- 13.09.16 08:51 Kris
Najnowsze wątki z tej grupy
- SEP 1 kV E
- Aku LiPo źródło dostaw - ktoś poleci ?
- starość nie radość
- Ataki hakerskie
- Akumulatorki Ni-MH AA i AAA Green Cell
- Dławik CM
- JDG i utylizacja sprzetu
- Identyfikacja układ SO8 w sterowniku migających światełek choinkowych
- DS1813-10 się psuje
- Taki tam szkolny problem...
- LIR2032 a ML2032
- SmartWatch Multimetr bezprzewodowy
- olej psuje?
- Internet w lesie - Starlink
- Opis produktu z Aliexpress
Najnowsze wątki
- 2024-12-12 Warszawa => Administrator Bezpieczeństwa IT <=
- 2024-12-12 Ostrów Wielkopolski => Trener zespołu sprzedaży Call Center <=
- 2024-12-12 Kraków => Key Account Manager <=
- 2024-12-11 SEP 1 kV E
- 2024-12-11 DNS restrictions are on
- 2024-12-11 wielkie bu
- 2024-12-11 Białystok => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-11 Aku LiPo źródło dostaw - ktoś poleci ?
- 2024-12-11 Warszawa => Specjalista Bezpieczeństwa Informacji <=
- 2024-12-11 Wrocław => Application Security Engineer <=
- 2024-12-11 Warszawa => Analyst in the Trade Development department (experience wi
- 2024-12-11 Lublin => Programista Delphi <=
- 2024-12-11 Motodziennik #305 Nowy ELEKTRYK za 350 złotych miesięcznie? Kreatywne kredytowanie problemów
- 2024-12-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-11 Katowice => Key Account Manager (ERP) <=