Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

inacio1981

Basic4android duvias com SERIAL

Mensagens Recomendadas

inacio1981

Boas pessoal, estou a fazer um programa para trabalhar com o meu Arduino através do Android.

O programa é para ligar e desligar as portas do Arduino com checkbox, se a checkbox estiver Checked então a porta vais estar a "1" se não fica a "0"

o meu problema é que sou muito verde na programação e não sei como por o android a enviar o comando pela porta serial (bluetooth).

O codigo está assim:

Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim admin As BluetoothAdmin
Dim timer1 As Timer
Dim serial1 As Serial
Dim foundDevices As List
Type NameAndMac (Name As String, Mac As String)
Dim connectedDevice As NameAndMac
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
Dim txtSend As EditText
Dim TextWriter1 As TextWriter
Dim btnSearchForDevices As Button
Dim btnAllowConnection As Button
Dim Button1 As Button
Dim Button2 As Button
Dim CheckBox1 As CheckBox
Dim CheckBox2 As CheckBox
Dim CheckBox3 As CheckBox
Dim HorizontalScrollView1 As HorizontalScrollView
Dim CheckBox10 As CheckBox
Dim CheckBox4 As CheckBox
Dim CheckBox5 As CheckBox
Dim CheckBox6 As CheckBox
Dim CheckBox7 As CheckBox
Dim CheckBox8 As CheckBox
Dim CheckBox9 As CheckBox
Dim EditText1 As EditText
Dim CheckBox11 As CheckBox
Dim CheckBox13 As CheckBox
Dim CheckBox14 As CheckBox
Dim CheckBox15 As CheckBox
Dim CheckBox16 As CheckBox
Dim CheckBox17 As CheckBox
Dim CheckBox18 As CheckBox
Dim CheckBox19 As CheckBox
Dim CheckBox20 As CheckBox
Dim CheckBox21 As CheckBox
Dim CheckBox22 As CheckBox
Dim CheckBox12 As CheckBox
Dim avancarsbt As Button
Dim CheckBox23 As CheckBox
Dim ImageView1 As ImageView
End Sub
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
'Activity.LoadLayout("Layout1")
Msgbox("Obrigado por experimentar este programa.					 Com ele podemos comunicar com o Arduino Nano v3 atravez do Bluetooth", "Arduino NANO V3 BT")
If FirstTime Then
admin.Initialize("admin")
serial1.Initialize("serial1")
End If
Activity.LoadLayout("1")
End Sub
Sub Activity_Resume
btnSearchForDevices.Enabled = False
btnAllowConnection.Enabled = False
If admin.IsEnabled = False Then
If admin.Enable = False Then
ToastMessageShow("Error enabling Bluetooth adapter.", True)
Else
ToastMessageShow("Enabling Bluetooth adapter...", False)
'the StateChanged event will be soon raised
End If
Else
Admin_StateChanged(admin.STATE_ON, 0)
End If
End Sub
Sub Admin_StateChanged (NewState As Int, OldState As Int)
btnSearchForDevices.Enabled = (NewState = admin.STATE_ON)
btnAllowConnection.Enabled = btnSearchForDevices.Enabled
End Sub
Sub Activity_Pause (UserClosed As Boolean)
If UserClosed = True Then
serial1.Disconnect
End If
End Sub
Sub btnSearchForDevices_Click
foundDevices.Initialize
If admin.StartDiscovery = False Then
ToastMessageShow("Error starting discovery process.", True)
Else
ProgressDialogShow("Searching for devices...")
End If
End Sub
Sub Admin_DiscoveryFinished
ProgressDialogHide
If foundDevices.Size = 0 Then
ToastMessageShow("No device found.", True)
Else
Dim l As List
l.Initialize
For i = 0 To foundDevices.Size - 1
Dim nm As NameAndMac
nm = foundDevices.Get(i)
l.Add(nm.Name)
Next
Dim res As Int
res = InputList(l, "Choose device to connect", -1)
If res <> DialogResponse.CANCEL Then
connectedDevice = foundDevices.Get(res)
ProgressDialogShow("Trying to connect to: " & connectedDevice.Name & " (" & connectedDevice.Mac & ")")
serial1.Connect(connectedDevice.Mac)
End If
End If
End Sub
Sub Admin_DeviceFound (Name As String, MacAddress As String)
Log(Name & ":" & MacAddress)
Dim nm As NameAndMac
nm.Name = Name
nm.Mac = MacAddress
foundDevices.Add(nm)
ProgressDialogShow("Searching for devices (~ device found)...".Replace("~", foundDevices.Size))
End Sub
Sub btnAllowConnection_Click
'this intent makes the device discoverable for 300 seconds.
Dim i As Intent
i.Initialize("android.bluetooth.adapter.action.REQUEST_DISCOVERABLE", "")
i.PutExtra("android.bluetooth.adapter.extra.DISCOVERABLE_DURATION", 300)
StartActivity(i)

serial1.Listen
End Sub
Sub Serial1_Connected (Success As Boolean)
ProgressDialogHide
Log("connected: " & Success)
Activity.LoadLayout("2")
TextWriter1.Initialize(serial1.OutputStream)
If Success = False Then
Log(LastException.Message)
ToastMessageShow("Error connecting: " & LastException.Message, True)
Else

End If
End Sub
Sub avancarsbt_Click
Activity.LoadLayout("2")
End Sub
Sub CheckBox23_CheckedChange(Checked As Boolean)
Activity.LoadLayout("1")
End Sub
Sub ImageView1_Click

End Sub
Sub ImageView1_LongClick

End Sub
Sub CheckBox0_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox1_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox2_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox3_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox4_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox5_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox6_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox7_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox8_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox9_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox10_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox11_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox12_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox13_CheckedChange(Checked As Boolean)
If Checked = True Then
'codigo
Else
'codigo
End If
End Sub
Sub CheckBox14_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox15_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox16_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox17_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox18_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox19_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox20_CheckedChange(Checked As Boolean)

End Sub
Sub CheckBox21_CheckedChange(Checked As Boolean)

End Sub

neste caso eu julgo que o que falta tem de ser posto aqui (se quiser ligar a porta 13):

Sub CheckBox13_CheckedChange(Checked As Boolean)
If Checked = True Then
'codigo
Else
'codigo
End If
End Sub

mas tenho a sensação que tenho de fazer mais alguma configuração, tenho tentado ver os tutorials mas não percebo nada do que eles explicam.

Que quiser experimentar o que está feito pode pedir que eu envio.

Agradecia uma ajuda da vossa parte.

Cumprimentos,

Pedro Inácio

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
KTachyon

Epah, não faças isso. Vi no outro tópico que já tinhas mexido um pouco em Java. A linguagem do Android já abstrai o hardware através de uma máquina virtual, estares a programar noutra linguagem para abstraíres a linguagem oficial só tende a piorar (principalmente tendo em conta que nem estás a mudar de paradigma de programação). No fundo só tens que perceber as diferenças de sintaxe de BASIC para Java, porque a lógica da programação em qualquer uma delas é praticamente igual.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
inacio1981

eu tive java mas já não me lembro de nada.

o pouco que me lembro de programação deve-se ao facto de gostar de brincar com o arduino, AVR e pic, mas ultimamente até tenho usado o Flowcode por ser muito mais fácil de criar o código mas que me fez esquecer um pouco da programação (c++).

por estar muito esquecido é que tenho tentado usar o basic4android, é muito facil de criar tudo, o problema é que eu não aprendi na escola a utilizar a porta serial e não sei como fazer-lo, alias na escola pouco aprendi, o que sei é as custas da minha curiosidade e de andar sempre a picar um amigo que também dá uns toques e vamos aprendendo os dois.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.