Polski Związek Krótkofalowców

 

Polski Klub Radiovideografii

;

Nawigacja:  »Rozdział nie jest podrozdziałem wyższego poziomu«

Uniwersalna Lista DXCC w skali światowej dla wszystkich jezyków programowania

Print this Topic Poprzednia strona Powrót to początku rozdzału Następna strona
Rozszerz wszystkie elementy   Zwiń wszystkie elementy

W rozdziale tym omówiono następujące punkty :

1.  Cele niniejszego projektu

2.  Metody użyte do realizacji postawionych celów .  

 

Cele niniejszego projektu

Przy realizacji dobrej i poprawnej listy dxcc trzeba nie tylko badać prefiks stacji , ale również datę QSO , tj kiedy dane QSO zostało zrobione . Dla aktualnie przeprowadzonych QSO wystarczy w zasadzie   aktualna lista dxcc ze strony ARRL (chociaz i ona nie zawiera wszystkich mozliwych prefiksów) . Jednak jeśli chcemy określić parametry dla entities dla QSOs przeprowadzonych w przeszłości , potrzebujemy datę QSO , kiedy dane QSO zostało przeprowadzone . Musimy także mieć jakąś bazę danych , w którym dla danego entitie będą okreslone DATE_FROM oraz DATE_TO , tj daty od kiedy do kiedy dany prefiks był zaliczamy . Przy tworzeniu tego projektu postawiono sobie zadania:

1.Stworzenie  takiego narzędzia dla listy DXCC dla programistów programów krótkofalarskich , by  można je zastosować w każdym języku programowania (Delphi , C ++ , Visual Basic , Microsoft Visual C ++ i inne ) . Narzędzie to powinno zastąpić programistów w pracy dotyczącej zmian w liście dxcc i wykonywać to zadanie automatycznie .Lista DXCC powinna umozliwiać określanie entity i jego parametrów w zależności od daty przeprowadzenia QSO . Baza danych XML powinna zawierać daty DATE_FROM do DATE_TO , w jakim okresie dany entite jest zaliczany .
2.Stworzenie oprogramowania dla korekty niepoprawnych wpisów dotyczących entities oraz towarzyszących mu parametrów CQZone , ITUZone , we wszystkich róznych bazach logów krótkofalarskich , w których niestety dane te nie zawsze są poprawne , co powoduje błędy przy zgłaszaniu dyplomów . Metoda ta powinna dawać poprawną korektę danych dla wszystkich logger-ów niezaleznie jakiej bazy danych używają programy loggujące .
3.Stworzenie uniwersalnego DLL możliwego do zastosowania w przypadku :
1.Gdy robimy pojedyncze QSO w tempie nie przekraczającym szybkości w zawodach. Autorzy stron CLUBLOG dostarczyli narzedzi do sprawdzania takich pojedyńczych QSO także na ich stronach WWW CLUBLOG. Nie można jednak odpytywać w pętli (tj . zestawienie nowego połączenia i odpytanie dla nowego QSO) dla zbyt wielu QSO w jakimś krótkim czasie . Sprawdziłem tutaj jakie jest tutaj ograniczenie i można przyjąć iż w takiej metodzie  po 500 QSOs serwer CLUBLOG przerwie takie połączenie . Do tego celu służą metody hurtowe pobierania danych . Pojedyńcze pobieranie jest opisane tutaj .
2.Gdy chcemy poprawić wiele QSO  z przeszłości . trzeba zastosować metody hurtowe poprzez zaladowanie swojego zbioru ADIF na serwer CLUBLOG  a nastepnie pobranie poprawionego zbioru z CLUBLOG ,opisane niżej oraz tutaj , lub zastosowac metodę hurtową JSON wspomnianą niżej
3.Stworzenie uniwersalnego modułu .dll mozliwego do zastosowania dla wszystkich jezyków programowania np Delphi , C++ , C # , Visual Basic , Microsoft Studio C ++ . itd , co owocuje tym iż  programisci programów krótkofalarskich w których potrzeba aktualnej listy dxcc dla entities aktualnuch jak i w przeszłości , mogą raz na zawsze zapomnieć o pilnowaniu zmian w prefiksach  

Metody użyte do realizacji postawionych celów .

Dla realizacji postawionych celów skorzystano z następujących metod :

1.Dla zrealizowania uniwersalanej listy DXCC w skali światowej możliwej do zastosowania w programie w dowolnym języku programowania zaprojektowano odpowiedni DLL -.Technika DLL jest szeroko stosowana w Windows .Stworzenie uniwersalnej swiatowej listy DXCC dla wszystkich programistów programów krótkofalarskich oraz wszystkich języków oprogramowania , np Delphi , C++ , C # , Visual Basic , Microsoft Studio C ++ . itd . owocuje tym iż  programisci mogą raz na zawsze zapomnieć o pilnowaniu zmian w prefiksach .  Za niego pilnuje tego zespół CLUBLOG .Technicznie funkcje jakie są potrzebne do realizacji listy dxcc są zawarte w zbiorze dll - stosowanym szeroko w Windows .  Dane o entities , prefiksach , wyjatkach ,niepoprawnych znakach są pobierane poprzez Internet w postaci zbioru typu XML .  Prócz tego na serwerze CLUBLOG- są wykonywane odpowiednie obliczenia dla zadanego znaku oraz zadanej daty QSO .  DLL sam pilnuje by codziennie pobierać zbiór XML tj  raz na 1 dzien , a oficjalna lista DXCC ze strony ARRL jest pobierana 1 raz na miesiąc .

Dla wszystkich programistów w skali śwatowej  DLL taki jest bezpłatny , o ile jego oprogramowanie jest także wolne od opłat tj jest  typu free. Programisci którzy będą chcieli zastosować mój produkt , otrzymają ode mnie dokładny opis funkcji jaki ten DLL wykonuje , oraz jakie parametry są przekazywane do DLL i jakie są otrzymywane wraz z opisem struktur (obiektów) jakie muszą zadeklarować w swoim programie użytkowym . W helpie tym brak jest opisu tych struktur ., jako iż nie interesują one zwyczajnych użytkowników . Programistów proszę o napisanie do mnie e-maila na adres sp9auv@wp.pl , z podaniem swych danych oraz nazwą programu w jakim chcą zastosować DLL . W chwili obecnej przetestowano działanie DLL-a w środowisku programu użytkowego DELPHI oraz C++

2.Dla zrealizowania drugiego punktu - tj korekty niepoprawnych wpisów w logger-ach zastosowano technikę polegającą na : 
eksport całego swojego logu z programu loggującego do zbioru ADIF ,
załadowanie tego zbioru na stronę WWW CLUBLOG , która dokona odpowiednich obliczeń korygujących dla poprawnego obliczenia entities i CQZone dla każdego QSO .  Odpowiednich czynności dokonuje tutaj program BROWSER_Chrome.exe zintegrowany z moim programem DXCC_XML_LIST.EXE .
ściągnięcie tak poprawionego zbioru do mojego programu przez wymieniony BROWSER_Chrome.exe . Zbior ten posiada tylko niektóre potrzebne pola ADIF . Zostanie on wstawiony do odpowiedniej tablicy pokazywanej na ekranie , Wykazywane są także wszelkie możliwe różnice w stosunku do zbioru ściągnietego . Wyniki są pokazywane przy zastosowaniu techniki zbioru XML , oraz także podane na podstawie  zbioru ściągniętego  ze strony CLUBLOG . (tutaj są możliwe pewne róznice )

Bardziej wiarygodne są wyniki jakie są w zbiorze ściągniętym po korekcji ze strony CLUBLOG

Po takim obliczeniu zapisujemy nowy skonwertowany zbiór wynikowy ADIF . W zbiorze tym są zapisywane wszystkie pola jakie były obecne w zbiorze wyeksportowanym z loggera, nawet te o niestandardowych nazwach w stosunku do standardu ADIF  ( jak np APP_LOGGER32_NUMBER ) , a nawet te które nie są wyswietlane na ekranie . Wszystkie moje programy mają możliwość rozpoznania do 39 pól o niestandardowych nazwach .Takze podawane są różnorodne róznice dla poszczególnych QSOs i pól , oraz czego one dotyczą , a po kliknieciu na odpowiedniej linijce są pokazywane tylko te QSO , które spełniają warunek różnicy . W dyplomach różnych  np .dotyczących np CQZones , czesto wystepują takie różnice , co może spowodować nie wydanie dyplomu .
W programie DXCC_XML_LIST.EXE zaimplementowano jeszcze jedną metodę dla korekty niepoprawanych wpisów w logger-ach , polegającą na hurtowej metodzie JSON , opisywaną na stronach   www CLUBLOG , jednak z uwagi iż metoda ta nie podaje parametru CQ_Zone , metoda ta  jak na razie została ukryta w programie   .
Na zwrócenie uwagi zasługuje jeszcze parametr ITUZone. W chwili obecnej zbiór XML nie podaje tego parametru . Okreslenie tego parametru jest bardzo trudne, gdyż ITUZone tnie obszary geograficzne liniami prostymi . Nie maj ą one żadnego związku z krajem , czy CQZone . Dlatego w programie  DXCC_XML_LIST.EXE zastosowano stary zbiór XML   wydany z datą 2013-11-10 . Jednak dano tutaj możliwość   wybrania tego parametru także z loggera . Wyboru należy dokonac przed dokonaniem obliczeń .

 

 

Nawigacja:  »Rozdział nie jest podrozdziałem wyższego poziomu«

Uniwersalna Lista DXCC w skali światowej dla wszystkich jezyków programowania

Print this Topic Poprzednia strona Powrót do początku rozdzału Następna strona
Rozszerz wszystkie elementy   Zwiń wszystkie elementy