Portál AbcLinuxu, 20. dubna 2024 03:50


Dotaz: Definice proměnných

3.11.2019 21:26 Jirka | skóre: 25
Definice proměnných
Přečteno: 320×
Odpovědět | Admin
Zdravím všechny,
po večerech tu bojuju s problémem, jak kameře arducam sdělit dobu expozice, co po ní chci.
Klíčová část programu:
int i;
scanf("%d", &i);
        
   // for (i = 1; i < 65500; i = i * 1.031 + 1 )
         
        arducam_set_control(camera_instance, V4L2_CID_EXPOSURE, i);
        usleep(100);
        sprintf(file_name, "arducam_%d.raw", 10000 + i);
        save_image(camera_instance, file_name, width, height);
        
    
Jedná se o ten řádek "arducam_set_control".
Když natvrdo zadám "i = 3200", vše funguje jak má. To samý, když místo "i" napíšu rovnou 3200. (samozřejmě kromě názvu souboru o 2 řádky níž)
Když použiju momentálně zakomentovanej řádek, funguje to taky - udělá mraky postupně delších a delších expozic zaokrouhlených na celý čísla.

Ale stdin prostě nefachčí, název souboru je uložen správně, expozice je ale furt jakási implicitní, ať zadám typ proměnný jako unsigned, signed nebo float.
Co dělám blbě? Díky.
Dokud to funguje, nešťourej se v tom!...

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.11.2019 01:06 debian+
Rozbalit Rozbalit vše Re: Definice proměnných
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nemas pytat od uzivatela pred inicializaciou kamery nahodou? Kedze pri nacitani z klavesnice dlho nie je spojeny s kamerou data?

Daj nasledovne a ci to stale blbne?
if(scanf("%d", &i) != 1)
{
	perror("scanf error");
	exit(1);
}
DaBler avatar 4.11.2019 11:52 DaBler | skóre: 17 | blog: dabler | Brno
Rozbalit Rozbalit vše Re: Definice proměnných
Odpovědět | | Sbalit | Link | Blokovat | Admin
Vůbec nekontrolujete návratové hodnoty funkcí, a především funkce arducam_set_control. Zkuste se podívat sem:

https://github.com/ArduCAM/MIPI_Camera/blob/master/RPI/preview_resolution.c#L50
4.11.2019 17:02 Jirka | skóre: 25
Rozbalit Rozbalit vše Re: Definice proměnných
Odpovědět | | Sbalit | Link | Blokovat | Admin
Díky za obě odpovědi, jak scanf, tak ani kamera nehlásí po úpravě kódu žádnou chybu.
:-(
Dokud to funguje, nešťourej se v tom!...
4.11.2019 19:23 debian+
Rozbalit Rozbalit vše Re: Definice proměnných
Nemas zatvoreny stdin? Presmerovany (ak sa da)?

Funguje ta cast programu zvlast ako cisto rydzy program?

Ak ani jedno toto, tak potom zostava moznost este jedna, nespravne pointery a zrejme nieco sa poskodilo. To znamena, poriadne sa vyspat a skontrolovat a riadok po riadku ako bezi program, ci ti nieco neuslo, alebo si sa nezmylil.
4.11.2019 19:29 Jirka | skóre: 25
Rozbalit Rozbalit vše Re: Definice proměnných
Tak asi vyřešeno, z nějakého důvodu kameře nelze zadávat parametry jako gain, mód a expozici v libovolném pořadí.
Pokud ji zadám jako první parametr po arducam_init_camera, vezme to proměnnou i ze stdin. A teď už jen zjistit proč. :-)
Dokud to funguje, nešťourej se v tom!...
4.11.2019 19:55 at zije litak
Rozbalit Rozbalit vše Re: Definice proměnných
Takze jsi nam lhal a ten kod nefunguje jen pokud tam natvrdo doplnis hodnotu? Funguje jen kdyz je uplne jiny?
Řešení 1× (Jirka (tazatel))
4.11.2019 22:10 Jirka | skóre: 25
Rozbalit Rozbalit vše Re: Definice proměnných
Troll?
Ne, není jiný, jen jsem kód v dotazu posunul hned za inicializaci kamery, předtím byl až za nastavením módu a gainu (to tu nevidíš). A teď funguje i vstup ze stdinu, což předtím naprosto nelogicky nešel, i když se kamera navenek tvářila spokojeně.
Asi tohle výrobce senzoru zapomněl do dokumentace napsat...
Odklikávám vyřešeno.
Dokud to funguje, nešťourej se v tom!...

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.