Wątek przeniesiony 2020-02-25 12:12 z C/C++ przez Shalom.

Poprawienie programu do monitorowania fotowoltaiki

0

Witam
próbowałem poprawić program do monitorowania fotowoltaiki aby działało na trzy falowniki aktualnie program pobierany z strony działa na dwa falowniki oto link do programu https://sourceforge.net/proje[...]monitor/files/auroramon-1.07/
niestety mój efekt nie jest taki jak oczekiwalem grafika mi się rozjechała lub po nakładała, nie mogę wczytać w codeblock plików zródłowych brak pliku wx lub za mała wiedza , program napisany w c++ z dodatkiem wx 2.8
czy jest ktoś na tyle dobry w c++ aby to poprawił na trzy falowniki ?

Dodam wersje co ja próbowałem poprawiać ale nie działa jak powinno , zrobiłem zmiany wielkości okien bo się nie mieściły dane lub zlewały , spolszczyłem program w dużym stopniu , poprawiłem plik make

1

Obawiam się, że do takiego problemu nikt za darmo nie usiądzie. Możesz jedynie liczyć na łut szczęścia, że któryś z forumowiczów przerabiał kiedyś taki problem sam, ale to dość niszowa sprawa także nie łudziłbym się.

Więcej szczęścia miałbyś postując w Ogłoszenia drobne.

0

program nie przynosi żadnych dochodów to dla wiedzy jak działa fotowoltaika i ile generuje prądu , może kasa to nie wszystko i ktoś z większą wiedzą niż moja poprawi to na trzy falowniki

0

Gdyby ten kod miał przyzwoitą jakość, to by się znalazł ktoś, kto to zrobi (np ja).
Niestety najpierw trzeba przebić się przez krzaczory.
Mi wystarczy trafiać w pracy na takie krzaczory.

5

Strasznie ciężko czyta się ten kod.
Ale może to ci pomoże:
Szybka analiza wskazała mi że istnieje define N_INV, prawdopodobnie wystarczy zmienić w nim wartość, oraz przekompilować kod.

auroramon.h:#define N_INV     2      // max. of 2 inverters
0

niestety sama zmiana jednej linijki nic nie daje , ja zmieniłem sporo linijek kodu ale poruszanie się w zmiennej Y X trochę ciężko jest poustawiać grafikę , niestety grafika mi się rozjechała :(
ok może się spróbuje w ten sposób na forum to co nie wiem jak zrobić
kod

    for(ix=0; ix<N_PANEL_GROUPS; ix++)
    {
            pConfig->SetPath(wxString::Format(_T("/panelgroup%d"), ix));
            pConfig->Read(_T("tilt"), &panel_groups[ix].tilt, 0);
            pConfig->Read(_T("facing"), &panel_groups[ix].facing, 0);
    }

jak dopisac aby robilo w pliku conf
[panelgroup2]
tilt=0
facing=0

0

IMHO przerobienie tego kodu aby obsługiwał trzy falowniki nie jest sprawą trywialną w stylu zmienimy wartość w #define z dwóch na trzy i wszystko będzie dobrze.
Niestety nie obejdzie się bez gruntownego "przegryzienia" przez ten kod. W najlepszym razie będzie trzeba zmienić tylko kod bezpośrednio powiązany z tablicami.

INVERTER inverters[N_INV];
int inverter_address[N_INV] = {2, 0};

Patrząc na ten kod, ma ochotę napisać go jeszcze raz w jakimś innym IDE (np. Qt), i kto wie czy nie okazało by się to najszybszym rozwiązaniem.

0

TomaszLiMoon jeśli potrafisz to napisać w inny sposób aby działało to na trzy falowniki jestem bardzo ciekawy jak to będzie działać i efekt końcowy , na razie mam dwa falowniki ale nie długo będę miał trzeci , chwilowo pogoda nie pozwala na prace na zewnątrz wiec czekam na pogodę bardziej przyjazna , chciał bym zwrócić uwagę że program działa na raspberry pi wiec styl pisania tylko na windowsa odpada

1

Jeśli niekoniecznie chcesz mieć ten programik to zrobiłem mały rekonesans i znalazłem kilka innych alternatywnych rozwiązań:
http://www.curtronics.com/Solar/AuroraData.html
https://openenergymonitor.org/forum-archive/node/10536.html
Może akurat po małych zmianach Ci podpasuje. Patrzyłem też po tym "twoim" programiku i niestety ale to się nadaje tylko do napisania od nowa ;)

0

tomasz3dk miło że podsyłasz mi te linki ale już testowałem wszystko co tylko możliwe ten program aurora też , jak nadal najlepszy jest auroramon tylko brakuje opcji więcej niż dwa falowniki to jak na razie to największy błąd programu , gdyby był napisany na 64 falowniki to by był najlepszy z wszystkich co znam i testowałem

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0