Távirányító Androiddal
Samsung telefonok újabb típusaiban van infra adó, ennek a vezérlését szeretném bemutatni JAVA-ban.
Mivel jó néhány PIC-es projektemben van infra vevő, gondoltam elkészítek hozzá adót is. Csupán néhány sor kód az egész. Először engedélyeznünk kell a manifest file-ban a hozzáférést az infrához:
uses-permission android:name="android.permission.TRANSMIT_IR"
Az infrát a következő képpen érhetjük el az eszközünkön:
private ConsumerIrManager IR =(ConsumerIrManager) getSystemService(Context.CONSUMER_IR_SERVICE);
A kód küldése:
if(IR.hasIrEmitter()) //Ellenőrizzük, hogy az eszközben van-e inra adó
{
IR.transmit(38222,VolumeDown);
Log.e(TAG, "Succesfull transmitt IR!\n");
}
else
{
//Messagebox
Toast.makeText(getApplicationContext(), "No IRDA", Toast.LENGTH_LONG).show();
Log.e(TAG, "NO IR!\n");
}
Az IR.transmit első paramétere a vivő frekvencia, a második pedig egy tömb a magas és alacsony szint időkkel. Itt megjegyezném, hogy az android fejlesztő hivatalos oldalán félre érthetően van megadva:
„Parameters carrierFrequency The IR carrier frequency in Hertz. pattern The alternating on/off pattern in microseconds to transmit.”
Nem mikrosec időket tartalmaz a tömb, hanem a vivőfrekvenciából tudjuk kiszámolni a jel hosszát. Egy példa: a NEC IR szabvány 38222Hz vivő frequencián küldi ki a jelet. A start jel hossza 9ms amit 4,5ms szünet követ. 1/38222 az ~26uSec, tehát a jelsorozatunk első két eleme 341 és 170 (0x0155, 0x00AA).
A példaprogramot hamarosan felteszem.