Innanzitutto i codici IRDA per comandare il Navibot:
Frequency; 38000
Header Time On: 4508
Header Time Off; 4437
Bit One on: 605
Bit One off: 1621
Bit Zero on: 605
Bit Zero off: 509
Hex Code PreData 8181
Command:
On/Off 00ff
Home 807f
Start Auto 40bf
Spot c03f
Repeat 20df
Manual Start/Stop 10ef
Avanti a05f
Sinistra 609f
Destra e01f
Altri codici da testare:
50af
d02f
30cf
b04f
708f
Questo i listati:
Irda.java:
package com.example.cristina.IRda;
import android.app.Activity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.hardware.ConsumerIrManager;
import android.widget.ImageButton;
import android.os.Handler;
public class Irda extends Activity implements View.OnTouchListener {
private Handler handler1 = new Handler();
private Runnable runnable1 = new Runnable() {
@Override
public void run() {
su();
handler1.postDelayed(this, 1); //ripete l'operazione ogni 500 millisecondi
}
};
private Handler handler2 = new Handler();
private Runnable runnable2 = new Runnable() {
@Override
public void run() {
sinistra();
handler2.postDelayed(this, 1); //ripete l'operazione ogni 500 millisecondi
}
};
private Handler handler3 = new Handler();
private Runnable runnable3 = new Runnable() {
@Override
public void run() {
destra();
handler3.postDelayed(this, 1); //ripete l'operazione ogni 500 millisecondi
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_irda);
ImageButton power = (ImageButton) findViewById(R.id.power);
ImageButton home = (ImageButton) findViewById(R.id.home);
ImageButton auto = (ImageButton) findViewById(R.id.auto);
ImageButton max = (ImageButton) findViewById(R.id.max);
ImageButton spot = (ImageButton) findViewById(R.id.spot);
ImageButton up = (ImageButton) findViewById(R.id.up);
ImageButton left = (ImageButton) findViewById(R.id.left);
ImageButton right = (ImageButton) findViewById(R.id.right);
ImageButton manual = (ImageButton) findViewById(R.id.manual);
ImageButton pausa = (ImageButton) findViewById(R.id.pausa);
up.setOnTouchListener(this);
left.setOnTouchListener(this);
right.setOnTouchListener(this);
power.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 19, 23,
19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23,
62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
home.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 19, 23,
19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23,
62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
auto.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 62, 23,
19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23,
62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
manual.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 19, 23,
19, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
62, 23, 62, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
spot.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62, 23,
19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
max.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 19, 23,
62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23,
62, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
/* left.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 62, 23,
62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23,
19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
right.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19,
23, 19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62,
23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
*/
pausa.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19,
23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 19, 23, 19,
23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 19, 23, 62, 23, 62, 23, 62,
23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
// Perform action on click
}
});
}
//************************************************************************
public void su() {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 19, 23,
62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
62, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
}
public void sinistra() {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 19, 23, 62, 23,
62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23,
19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
}
public void destra() {
ConsumerIrManager mCIR;
mCIR = (ConsumerIrManager) getSystemService(CONSUMER_IR_SERVICE);
int[] pattern = {173, 170, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19,
23, 19, 23, 62, 23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 62, 23, 62, 23, 62,
23, 62, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23, 19, 23,
19, 23, 19, 23, 62, 23, 62, 23, 62, 23, 62, 23, 62, 23, 2500};
mCIR.transmit(38000, pattern);
}
public void start1() {
handler1.postDelayed(runnable1, 1); // avvia il loop
}
public void stop1() {
handler1.removeCallbacks(runnable1); // cancella il loop
}
public void start2() {
handler2.postDelayed(runnable2, 1); // avvia il loop
}
public void stop2() {
handler2.removeCallbacks(runnable2); // cancella il loop
}
public void start3() {
handler3.postDelayed(runnable3, 1); // avvia il loop
}
public void stop3() {
handler3.removeCallbacks(runnable3); // cancella il loop
}
@Override
public void onPause() { // quando va in pausa ferma il loop
super.onPause();
handler1.removeCallbacks(runnable1);
handler2.removeCallbacks(runnable2);
handler3.removeCallbacks(runnable3);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (v.getId() == R.id.up) {
start1();
}
if (v.getId() == R.id.left) {
start2();
}
if (v.getId() == R.id.right) {
start3();
}
}
if (event.getAction() == MotionEvent.ACTION_UP) {
if (v.getId() == R.id.up) {
stop1();
}
if (v.getId() == R.id.left) {
stop2();
}
if (v.getId() == R.id.right) {
stop3();
}
}
return false;
}}
Qui invece il file Activity_irda.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ff000000"
android:id="@+id/dd">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Power"
android:id="@+id/textView6"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true"
android:textColor="#ffffffff"
android:layout_marginLeft="55dp"
android:layout_marginTop="35dp" />
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/power"
android:layout_below="@+id/textView6"
android:layout_alignParentStart="true"
android:background="@drawable/power"
android:layout_marginLeft="55dp"
android:focusableInTouchMode="false" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Home"
android:id="@+id/textView7"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:textColor="#ffffffff"
android:layout_marginTop="35dp"
android:layout_marginRight="55dp" />
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/home"
android:layout_below="@+id/textView7"
android:layout_alignParentEnd="true"
android:background="@drawable/home"
android:layout_marginRight="55dp"
android:focusableInTouchMode="false" />
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/up"
android:background="@drawable/up"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true" />
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/left"
android:background="@drawable/left"
android:layout_toEndOf="@+id/auto"
android:layout_below="@+id/up" />
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/right"
android:background="@drawable/right"
android:layout_below="@+id/up"
android:layout_toEndOf="@+id/up" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/power"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="20dp"
android:id="@+id/linearLayout2">
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Auto"
android:id="@+id/textView9"
android:textColor="#ffffffff"
android:layout_below="@+id/power"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal" />
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Manual"
android:id="@+id/textView10"
android:textColor="#ffffffff"
android:layout_alignParentStart="false"
android:layout_alignParentBottom="false"
android:layout_below="@+id/power"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal" />
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Spot"
android:id="@+id/textView11"
android:textColor="#ffffffff"
android:layout_below="@+id/power"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal" />
<TextView
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Max"
android:id="@+id/textView8"
android:textColor="#ffffffff"
android:layout_below="@+id/power"
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center_horizontal" />
</LinearLayout>
<ImageButton
android:layout_height="25dp"
android:id="@+id/auto"
android:background="@drawable/bottone"
android:layout_width="50dp"
android:layout_weight="0"
android:gravity="center_horizontal"
android:layout_below="@+id/linearLayout2"
android:layout_marginLeft="27dp" />
<ImageButton
android:layout_height="25dp"
android:id="@+id/manual"
android:background="@drawable/bottone"
android:layout_width="50dp"
android:layout_weight="0"
android:gravity="center_horizontal"
android:layout_alignBottom="@+id/auto"
android:layout_toEndOf="@+id/power"
android:layout_marginLeft="8dp" />
<ImageButton
android:layout_height="25dp"
android:id="@+id/spot"
android:background="@drawable/bottone"
android:layout_width="50dp"
android:layout_weight="0"
android:gravity="center_horizontal"
android:layout_below="@+id/linearLayout2"
android:layout_toStartOf="@+id/home"
android:layout_marginRight="8dp" />
<ImageButton
android:layout_height="25dp"
android:id="@+id/max"
android:background="@drawable/bottone"
android:layout_width="50dp"
android:layout_weight="0"
android:gravity="center_horizontal"
android:layout_marginLeft="25dp"
android:layout_alignBottom="@+id/spot"
android:layout_alignStart="@+id/textView7" />
<ImageView
android:layout_width="187dp"
android:layout_height="28dp"
android:id="@+id/imageView"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="50dp"
android:background="@drawable/samsunglogo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="by Marco Giglio 2014"
android:id="@+id/textView"
android:textColor="#fff9f9f9"
android:textAlignment="center"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/manual" />
<ImageButton
android:layout_width="70dp"
android:layout_height="70dp"
android:id="@+id/pausa"
android:background="@drawable/pause"
android:layout_below="@+id/left"
android:layout_toStartOf="@+id/right" />
</RelativeLayout>
Qui invece i file originali pronti da usare con Android Studio:
https://www.mediafire.com/folder/b202qgggvup4h/