eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaRynek pracy STM32Re: Rynek pracy STM32
  • Data: 2022-07-26 13:53:53
    Temat: Re: Rynek pracy STM32
    Od: Piotr Gałka <p...@c...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu 2022-07-25 o 21:29, heby pisze:

    > Architekturę zrobiłbym zupełnie odwrotnie, tzn moduły rejestrowały by do
    > tabelki co mają.

    Tak mi było dla mnie naturalnie.
    Jak wyszukuję według GUID i jest ich kilka to zakładam, że przyszły
    użytkownik tego kodu (czyli ja za ileś tam lat) w takiej sytuacji będzie
    musiał np wypisać na ekranie numery urządzeń i zapytać użytkownika o
    które urządzenie mu chodzi. Czyli już w momencie wyszukiwania jest mi
    potrzebna tabelka.
    Jeśli chciałbym mieć tabelkę wszystkich, które w danej aplikacji w sumie
    używam to wtedy byłaby to tabelka do której wszyscy zgłaszają co używają.


    >>    fun({0x00112233,
    >> 0x4455,0x6677,{0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0x
    FF}});
    >> }
    >> Drugiego wywołania funkcji fun Builder 5 nie akceptuje.
    >> Próbowałem dawać dodatkowe nawiasy i nic.
    >
    > void fun(GUID const& g);
    >
    > fun( GUID(0x100,0x100,...) ); ?
    >

    Wstawiłem ten const&, żeby nie było, że kombinuję inaczej.
    Żadna z poniższych kombinacji nie przechodzi:
    fun(GUID{0x00112233,0x4455,0x6677,{0x88,0x99,0xAA,0x
    BB,0xCC,0xDD,0xEE,0xFF}});
    fun(GUID(0x00112233,0x4455,0x6677,{0x88,0x99,0xAA,0x
    BB,0xCC,0xDD,0xEE,0xFF}));
    fun(GUID(0x00112233,0x4455,0x6677,(0x88,0x99,0xAA,0x
    BB,0xCC,0xDD,0xEE,0xFF)));
    fun(GUID(0x00112233,0x4455,0x6677,0x88,0x99,0xAA,0xB
    B,0xCC,0xDD,0xEE,0xFF));
    fun(GUID(0x00,0x11,0x22,0x33,0x44,0x55,0x66,0x77,0x8
    8,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF));

    W obu ostatnich przypadkach: Error: Cannot cast from 'int' to '_GUID'.

    To są wszystko próby jakie ja już te 5+ lat temu robiłem.

    Ale właśnie sprawdziłem, że takie coś przechodzi:

    unsigned int a=0x00112233;
    unsigned short b=0x4455;
    unsigned short c=0x6677;
    unsigned char d[8]={0x88,0x99,0xAA,0xBB,0xCC,0xDD,0xEE,0xFF};

    GUID g= {a,b,c,{d[0],d[1],d[2],d[3],d[4],d[5],d[6],d[7]}};

    Dlaczego ten dziadowski GUID, który w sumie jest przecież ciągiem
    bajtów, jest definiowany w taki dziwny sposób to dla mnie zagadka.

    Pamiętam, że wtedy próbowałem podawać dane inaczej (może jest inny
    konstruktor), ale nie trafiłem w nic sensownego.

    To w sumie oznacza, że mógłbym jako parametr konstruktora podać ciąg
    bajtów zapisany jako łańcuch (bo inaczej to chyba nie da się (w moim
    Builderze) wpisać od razu w linijce).
    W konstruktorze klasy bazowej musiałbym to korzystając z tej metody
    zamienić na GUID i przypisać tę wartość zmiennej w tej klasie bazowej
    (ale raczej po prostu GUID a nie referencji do GUID).

    A może bardziej zgodne z defaultową postacią zapisu tych GUID będzie
    jakby konstruktorowi klasy bazowej dać 4 zmienne (dword,word,word,byte*).
    Zakładam, że da się wpisać (byte*)".....". Jak nie to ostatni parametr
    char*.
    byte, word, dword to moje typedef stosowane we wszystkich programach.

    To chyba jest metoda, aby uzyskać mniej więcej to co chciałem.
    Sprawdzę jak zadziała i może przerobię wszystko, co w tym temacie mam
    napisane, ale zdecydowanie nie teraz.

    > Wątpie. Builder nigdy nie był specjalnie nowoczesny

    Możliwe, ale chodzi mi po głowie, że jakieś rzeczy, które oni wcześniej
    zrobili widziałem gdzieś jako nowość w C++11.
    Nie pamiętam o co chodziło - po prostu zapamiętałem zdziwienie, że
    czytam, że coś jest nowe, gdy ja to już od dawna znam.
    P.G.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: