Hi! all, first of all i want to apologize to my previous post and im new to this arduino stuff. So excuse me for, i may not be able to explain my problem clearly. im using arduino mega 2560, BlueSMiRF Gold, Galaxy mini (2.3.4), installed amarino 1.0 and the amarino plugin bundle.
the code below is to send an integer from arduino to the phone using Bluetooth by linking the program to use the amarino library. But when i press the send button it receives Flag not registered
. I want to send integer 1 whenever the send button is pressed.
Please good sir, im at my wits end.
can anyone check my code and point me where in the code is wrong and what i should do to make it work.
Over here is the code for the android phone
package com.android.bluetoothtry;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import at.abraxas.amarino.Amarino;
import at.abraxas.amarino.AmarinoIntent;
public class MainActivity extends Activity implements OnClickListener {
private static final String DEVICE_ADDRESS = "00:06:66:08:16:AD";
private static final char ARDUINO_FLAG = 'a';
private Button _buttonConnect;
private Button _buttonSend;
private Button _buttonDisconnect;
private BroadcastReceiver _arduinoReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int type = intent.getIntExtra(AmarinoIntent.EXTRA_DATA_TYPE, -1);
if(type == AmarinoIntent.STRING_EXTRA) {
String value = intent.getStringExtra(AmarinoIntent.EXTRA_DATA);
Toast.makeText(MainActivity.this, value, Toast.LENGTH_SHORT).show();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
registerReceiver(_arduinoReceiver, new IntentFilter(AmarinoIntent.ACTION_RECEIVED));
/*
registerReceiver(new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String address = intent.getStringExtra(AmarinoIntent.EXTRA_DEVICE_ADDRESS);
Toast.makeText(MainActivity.this, "Device Connected " + address, Toast.LENGTH_SHORT).show();
}
}, new IntentFilter(AmarinoIntent.ACTION_CONNECTED));
*/
_buttonConnect = (Button) findViewById(R.id.buttonConnect);
_buttonSend = (Button) findViewById(R.id.buttonSend);
_buttonDisconnect = (Button) findViewById(R.id.buttonDisconnect);
_buttonConnect.setOnClickListener(this);
_buttonSend.setOnClickListener(this);
_buttonDisconnect.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
@Override
public void onClick(View v) {
switch(v.getId()) {
case R.id.buttonConnect:
connect();
break;
case R.id.buttonSend:
send();
break;
case R.id.buttonDisconnect:
disconnect();
break;
default:
break;
}
}
private void disconnect() {
Amarino.disconnect(this, DEVICE_ADDRESS);
}
private void send() {
int data = 1;
Amarino.sendDataToArduino(this, DEVICE_ADDRESS, ARDUINO_FLAG, data);
}
private void connect() {
Amarino.connect(this, DEVICE_ADDRESS);
}
}
And over here is the code for arduino
#include <MeetAndroid.h>
MeetAndroid meetAndroid;
int ledPin = 13;
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
pinMode (8, INPUT);
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
meetAndroid.registerFunction(show, 'A');
}
void show(byte flag, byte numOfValues) {
delay(500);
}
void loop() {
meetAndroid.receive();
if (digitalRead (8) == 1) {
digitalWrite (ledPin, HIGH);
delay (2000);
digitalWrite (ledPin, LOW);
meetAndroid.send ("1");
}
}
Please help good sir..