WaveForms SDK - spójność dokumentacji i przykładów

Tutaj umieszczamy tematy związane z językami programowania niepasującymi do innych działów.
Regulamin forum
Temat prosimy poprzedzić nazwą języka umieszczonego w nawiasach kwadratowych np. [Pascal].
Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

WaveForms SDK - spójność dokumentacji i przykładów

Postautor: tasza » piątek 24 lut 2017, 14:31

hej

uwaga, będę się wyżalać.

bo ja przegryzam się pracowicie przez przykłady do WaveForms SDK i normalnie zaczynam wymiękać….

sygnatura funkcji FDwfAnalogIOChannelNodeStatus jest taka:

dwf.h pisze:

Kod: Zaznacz cały

DWFAPI BOOL FDwfAnalogIOChannelNodeStatus(HDWF hdwf, int idxChannel, int idxNode, double *pvalue);


No super, dodali też garść constów aby ładnie wszystko wyglądało w pliku *.h

dwf.h pisze:

Kod: Zaznacz cały

// analog io channel node types
const ANALOGIO analogioEnable       = 1;
const ANALOGIO analogioVoltage      = 2;
const ANALOGIO analogioCurrent      = 3;
const ANALOGIO analogioPower        = 4;
const ANALOGIO analogioTemperature  = 5;


Tylko z tego w ogóle nie korzystają :!: , a wszelkie identyfikatory są wbite w wywołania na przysłowiową pałkę :evil: o, tak:

analogio_analogdiscovery2_systemmonitor.cpp pisze:

Kod: Zaznacz cały

FDwfAnalogIOChannelNodeStatus(hdwf, 2, 0, &vUSB);
FDwfAnalogIOChannelNodeStatus(hdwf, 2, 1, &aUSB);
FDwfAnalogIOChannelNodeStatus(hdwf, 2, 2, &degDevice);

FDwfAnalogIOChannelNodeStatus(hdwf, 3, 0, &vAUX);
FDwfAnalogIOChannelNodeStatus(hdwf, 3, 1, &aAUX);


dobrze, że chociaż zmienne nazwali tak, że jakiś trop jest ...

no I teraz proszę mi pokazać palcem miejsce w dokumentacji czy gdziekolwiek w necie nawet , gdzie jest napisane że analogowy kanał (idxChannel) numer 2 to jest monitoring USB,
że AUX (jak domniemywam to zewnętrzne zasilanie za zadku AD2) to ma numer 3
i dlaczego kontrolowane napięcie ma idxNode 0, prąd ma 1 a temperatura pudełka ma 2 a w const jest inaczej?
Aha, no i co jest w takim razie pod idxChannel o wartościach 0 i 1?

Wykminiłam z przykładu, że to kanały zasilacza, po resztą to intuicyjne jest
dwf.h pisze:

Kod: Zaznacz cały

FDwfAnalogIOChannelNodeSet(HDWF hdwf, int idxChannel, int idxNode, double value);

Użyli tak:
analogio_analogdiscovery2_power.cpp pisze:

Kod: Zaznacz cały

// enable positive supply
 FDwfAnalogIOChannelNodeSet(hdwf, 0, 0, 1);
// enable negative supply
 FDwfAnalogIOChannelNodeSet(hdwf, 1, 0, 1);


w przykładach dla python to wszystko jest analogicznie, tylko po pythonowemu….

oczywiście ja nie omieszkam `przejść` się funkcją FDwfAnalogIOChannelNodeName() po kolejnych kanałach i nodach no i zobaczymy co tam mi się wypisze, no ale litości…..

no dobra, ja portuje właśnie niektóre przykłady do AD2 na Object Pascal i zakładałam, że dokumentacja vs example vs `WaveForms SDK Reference Manual.pdf` jest spójna, bo to podstawa takiej zabawy…

no chyba że ja coś źle czytam zupełnie albo nie tam gdzie trzeba , tym bardziej wdzięczna będę za podpowiedź….
:roll:
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)

SuperGość
Uber Geek
Uber Geek
Posty: 2346
Rejestracja: piątek 04 wrz 2015, 09:03

Re: WaveForms SDK - spójność dokumentacji i przykładów

Postautor: SuperGość » piątek 24 lut 2017, 14:41

No ja ci nie pomogę, bo ani nie wnikałem na razie w SDK.

Awatar użytkownika
tasza
Geek
Geek
Posty: 1082
Rejestracja: czwartek 12 sty 2017, 10:24
Kontaktowanie:

Re: WaveForms SDK - spójność dokumentacji i przykładów

Postautor: tasza » piątek 24 lut 2017, 17:40

nie no jasne, spoko...
ja sama sobie pomogłam kawałkiem kodu nabazgranym na kolanie:

Kod: Zaznacz cały

#include <cstring>
#include "sample.h"
int main( int argc, char *argv[] ){
    HDWF handle;
    int   ch, nd;
    char szErrMessage [512] = "";
    char szName[32], szLabel[16], szNodeName[32], szNodeUnits[16];
    if( FDwfDeviceOpen( -1, &handle ) == 0 ) {     
        FDwfGetLastErrorMsg( szErrMessage );   
        printf( "err when access ad2 [%s]\n", szErrMessage );   
        return 0;
    }
    // listuj kanaly
    printf ("---------------------------------------------------------\n" );   
    for (int ch = 0; ch < 5; ch++ ) {
       FDwfAnalogIOChannelName(handle, ch, szName, szLabel);        
       printf ("%02d | %32s | %16s|\n", ch, szName, szLabel );     
    }
    printf ("---------------------------------------------------------\n\n" );
    printf ("device tree:\n\n" );         
    // albo lepiej wymaluj drzewko
    for (ch = 0; ch < 5; ch++ ) {
        FDwfAnalogIOChannelName(handle, ch, szName, szLabel);        
        printf ("%02d - %s (%s)\n", ch, szName, szLabel );     
        for (nd = 0; nd < 6; nd++ ) {
            FDwfAnalogIOChannelNodeName(handle, ch, nd, szNodeName, szNodeUnits);   
            if ( strlen( szNodeName ) ) {
                printf ("  %02d - %s (%s)\n", nd, szNodeName, szNodeUnits );     
            }
        }
    }
    FDwfDeviceCloseAll();
}

moje czarodziejskie pudełko pokazuje tak:
ad2-showme.png

i do dalszej pracy to wystarczy zupełnie.
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
______________________________________________ ____ ___ __ _ _ _ _
Kończysz tworzyć dopiero, gdy umierasz. (Marina Abramović)


Wróć do „Inne języki programowania”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 5 gości