Администрация форума не несёт ответственности за достоверность информации и оставляет за собой право редактировать или в особых случаях даже удалять посты без предупреждения. Спасибо за понимание.

Программирование ATMEL в BASCOM.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Программирование ATMEL в BASCOM. » Basic4android » Что за зверь?


Что за зверь?

Сообщений 1 страница 24 из 24

1

Не по теме и не в тему:
А вы под Андроид не пробовали придумать средство написания ПО без изучения Явы (не на ночь помянута) и Си++ (лучше вообще не видеть)?
Паскаль, Бейсик - пофигу, абы нарисовать простейший интерфейс с менюшками и по ВайФай и Блютузу что-топринять и передать...

0

2

Александр Д. написал(а):

Паскаль, Бейсик - пофигу

Basic4Android https://www.b4x.com/b4a.html

0

3

Пётр написал(а):

Basic4Android

Язык неплохой, но как только дело дойдёт до вайвая, то оказывается что разжеванных примеров то и нет.
Я потратил немало времени, пока с этим разобрался. Особая прелесть в несоответствии числовых типов данных с баскомом.
Хотя приложение по настройке контроллера через блютуз я таки осилил.

0

4

Изучаем Basic4android

0

5

что-то напомнило. Вроде я его пробовал лет "давно" назад.
А он apk компилирует? надо проверить...
зы
... вспомнил: я на стадии установки и настройки OpenJDK чуть не сдох и проклял их нехорошими словами:  OpenJDK 11 requires Windows 64 bit
всё, дальше нет смысла, так как для 64-битных у меня нет драйверов на моё железо
А JDK 8 дико глючил даже на стадии установки.
При регистрации надо даже домашний адрес! Нахрена это Ораклу?!

Отредактировано Александр Д. (2021-01-02 17:32:31)

0

6

Сейчас b4a стал абсолютно бесплатным. apk компилирует. Отладка на живом телефоне через вайфай , или на эмуляторе.
В принципе вначале трудновато, как и во всяком новом деле.
А потом вроде не так всё и сложно.

0

7

Я сейчас изучаю язык Kotlin под Android( купил курс). Иногда читаю и думаю_ вот же примудрили.....Там один из первых заданий написать программу для вычисления квадратного уравнения. На Visuаl Basic, Bascom такую программу можно накидать за 5 минут, а там мучался полдня.. Дочери аналогичную задачу на Pascal сделали за 10 минут, хотя я на этом Pascal в жизни ничего не делал

0

8

Александр Д. написал(а):

что-то напомнило. Вроде я его пробовал лет "давно" назад.
А он apk компилирует? надо проверить...
зы
... вспомнил: я на стадии установки и настройки OpenJDK чуть не сдох и проклял их нехорошими словами:  OpenJDK 11 requires Windows 64 bit
всё, дальше нет смысла, так как для 64-битных у меня нет драйверов на моё железо
А JDK 8 дико глючил даже на стадии установки.
При регистрации надо даже домашний адрес! Нахрена это Ораклу?!

Отредактировано Александр Д. (Сегодня 14:32:31)

есть такое дело. Хотя ,я использую Android Studio. Этот похуже будет , чем Оракл. Вечно что-то загружает , фоновых служб туча хреново...один этот грабл крови уже за 3 месяца...

0

9

radan написал(а):

Изучаем Basic4android

Ну где же вы были до этого ) даже не знал о существовании...

0

10

Василий, можете кинуть пару проектов, чтобы понять идиалогию и синтаксис?
что-то с кнопочками и менюшкой, с Блютуз, с WiFi...

0

11

Обмен данными по вайфай:

Код:
Build1=Default,b4a.example
Group=Default Group
Library1=core
Library2=network
Library3=randomaccessfile
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: https://www.b4x.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="5" android:targetSdkVersion="28"/>~\n~<supports-screens android:largeScreens="true" ~\n~    android:normalScreens="true" ~\n~    android:smallScreens="true" ~\n~    android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~CreateResourceFromFile(Macro, Themes.DarkTheme)~\n~'End of default text.~\n~
Module1=Starter
NumberOfFiles=0
NumberOfLibraries=3
NumberOfModules=1
Version=9.801
@EndOfDesignText@
#Region  Project Attributes 
	#ApplicationLabel: B4A WiFi_test_klient
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim client As Socket
	Dim port As Int = 11113
	Dim AStreams As AsyncStreams
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.
End Sub

Sub Activity_Create(FirstTime As Boolean)
	If client.IsInitialized = False Then
client.Initialize("client")
client.Connect("192.168.1.104",port, 30000)
	End If
End Sub

Sub Activity_Resume
	
End Sub

Sub Activity_Pause (UserClosed As Boolean)
	If UserClosed Then
AStreams.Close
	End If
End Sub

Sub StartAstream(s As Socket)
	AStreams.Initialize(s.InputStream, s.OutputStream, "AStreams")
End Sub

Sub client_Connected (Successful As Boolean)
	If Successful Then
StartAstream(client)

send_data( "TEXT MSG HAPPY END! или Привет МИР!")
	Else
ToastMessageShow("Error: " & LastException, True)
	End If
End Sub

Sub AStreams_NewData (Buffer() As Byte)  'Чтение данных
	Dim msg As String
	msg = BytesToString(Buffer, 0, Buffer.Length, "Windows-1251")
	ToastMessageShow(msg, False)
End Sub

Sub send_data(str As String)  'Отправка данных
	If AStreams.IsInitialized = False Then Return
	If str.Length > 0 Then
Dim buffer() As Byte
Dim data As String
data = str & CRLF
buffer = data.GetBytes("Windows-1251")
AStreams.Write(buffer)
	End If
End Sub

Блютуз - управление светодиодами:

Код:
Build1=Default,b4a.ex2_HC06_leds
File1=main.bal
FileGroup1=Default Group
Group=Default Group
Library1=core
Library2=serial
ManifestCode='This code will be applied to the manifest file during compilation.~\n~'You do not need to modify it in most cases.~\n~'See this link for for more information: http://www.basic4ppc.com/forum/showthread.php?p=78136~\n~AddManifestText(~\n~<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/>~\n~<supports-screens android:largeScreens="true" ~\n~    android:normalScreens="true" ~\n~    android:smallScreens="true" ~\n~    android:anyDensity="true"/>)~\n~SetApplicationAttribute(android:icon, "@drawable/icon")~\n~SetApplicationAttribute(android:label, "$LABEL$")~\n~'End of default text.~\n~
NumberOfFiles=1
NumberOfLibraries=2
NumberOfModules=0
Version=9.801
@EndOfDesignText@
#Region  Project Attributes 
	#ApplicationLabel: ex2_HC06_leds
	#VersionCode: 1
	#VersionName: 
	'SupportedOrientations possible values: unspecified, landscape or portrait.
	#SupportedOrientations: unspecified
	#CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	'These global variables will be declared once when the application starts.
	'These variables can be accessed from all modules.
	Dim N As Boolean = False
	Dim NE As Boolean = False
	Dim E As Boolean = False
	Dim SE As Boolean  = False
	Dim S As Boolean = False
	Dim SW As Boolean = False
	Dim W As Boolean = False
	Dim NW As Boolean = False
	
	'From Serial example
	Dim Serial1 As Serial 
	Dim TextReader1 As TextReader
	Dim TextWriter1 As TextWriter
	Dim Timer1 As Timer
	Dim connected As Boolean
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 lblN As Label
	Dim lblE As Label
	Dim lblNE As Label
	Dim lblNW As Label
	Dim lblS As Label
	Dim lblSE As Label
	Dim lblSW As Label
	Dim lblW As Label
	Dim txtLog As EditText
	Dim lblReset As Label
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")
	Activity.LoadLayout("main")
	
	If FirstTime Then
Serial1.Initialize("Serial1")	'initialize the serial port
Timer1.Initialize("Timer1", 200)'initialize Timer1 to create an event every 200ms
	End If
	Activity.AddMenuItem("Connect", "mnuConnect")
	Activity.AddMenuItem("Disconnect", "mnuDisconnect")
	Activity.
End Sub

Sub Activity_Resume
	If Serial1.IsEnabled = False Then
Msgbox("Please enable Bluetooth.", "")
	Else
Serial1.Listen 	'listen for incoming connections
	End If
End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub

Sub mnuConnect_Click
	Dim PairedDevices As Map
	PairedDevices = Serial1.GetPairedDevices
	Dim l As List
	l.Initialize
	For i = 0 To PairedDevices.Size - 1
l.Add(PairedDevices.GetKeyAt(i))
	Next
	Dim res As Int
	res = InputList(l, "Choose device", -1) 	'show list with paired devices
	If res <> DialogResponse.CANCEL Then
Serial1.Connect(PairedDevices.Get(l.Get(res))) 'convert the name to mac address
	End If
End Sub

Sub Serial1_Connected (Success As Boolean)
	If Success Then
ToastMessageShow("Connected successfully", False)
TextReader1.Initialize(Serial1.InputStream)
TextWriter1.Initialize(Serial1.OutputStream)
Timer1.Enabled = True
connected = True
	Else
connected = False
Timer1.Enabled = False
Msgbox(LastException.Message, "Error connecting.")
	End If
End Sub

Sub mnuDisconnect_Click
	Serial1.Disconnect
	connected = False
End Sub

Sub Timer1_Tick
	If connected Then
If TextReader1.Ready Then 'check if there is any data waiting to be read
	txtLog.Text = txtLog.Text & TextReader1.ReadLine & CRLF'add the incoming message to the txtlog and go to the next line of txtlog
	txtLog.SelectionStart = txtLog.Text.Length	'move to the last character in the txtlog to create "scrolling" efect
End If
	End If
End Sub

Sub lblN_Click
	If connected Then	'only apply if connected to a bluetooth device
If N Then'if the button is ON
	N = False
	lblN.Color = Colors.Gray 
	TextWriter1.WriteLine("B")	'write a string to the serial port to switch OFF the corresponding LED
Else	'if button is OFF
	N = True
	lblN.Color = Colors.Red 
	TextWriter1.WriteLine("A")	'write a string to the serial port to switch ON the corresponding LED
End If
TextWriter1.Flush'clear the serialport TX buffer to make sure the previous string gets sent
	End If
End Sub
Sub lblW_Click
	If connected Then
If W Then
	W = False
	lblW.Color = Colors.Gray 
	TextWriter1.WriteLine("N")
Else
	W = True
	lblW.Color = Colors.Green 
	TextWriter1.WriteLine("M")
End If
TextWriter1.Flush
	End If
End Sub
Sub lblSW_Click
	If connected Then
If SW Then
	SW = False
	lblSW.Color = Colors.Gray 
	TextWriter1.WriteLine("L")
Else
	SW = True
	lblSW.Color = Colors.RGB(255,128,0)  'orange
	TextWriter1.WriteLine("K")
End If
TextWriter1.Flush
	End If
End Sub
Sub lblSE_Click
	If connected Then
If SE Then
	SE = False
	lblSE.Color = Colors.Gray 
	TextWriter1.WriteLine("H")
Else
	SE = True
	lblSE.Color = Colors.Blue  
	TextWriter1.WriteLine("G")
End If
TextWriter1.Flush
	End If
	
End Sub
Sub lblS_Click
	If connected Then
If S Then
	S = False
	lblS.Color = Colors.Gray 
	TextWriter1.WriteLine("J")
Else
	S = True
	lblS.Color = Colors.Red 
	TextWriter1.WriteLine("I")
End If
TextWriter1.Flush
	End If	
End Sub
Sub lblNW_Click
	If connected Then
If NW Then
	NW = False
	lblNW.Color = Colors.Gray 
	TextWriter1.WriteLine("P")
Else
	NW = True
	lblNW.Color = Colors.Blue 
	TextWriter1.WriteLine("O")
End If
TextWriter1.Flush
	End If
End Sub
Sub lblNE_Click
	If connected Then
If NE Then
	NE = False
	lblNE.Color = Colors.Gray 
	TextWriter1.WriteLine("D")
Else
	NE = True
	lblNE.Color = Colors.RGB(255,128,0)	'orange
	TextWriter1.WriteLine("C")
End If
TextWriter1.Flush
	End If
End Sub
Sub lblE_Click
	If connected Then
If E Then
	E = False
	lblE.Color = Colors.Gray 
	TextWriter1.WriteLine("F")
Else
	E = True
	lblE.Color = Colors.Green  
	TextWriter1.WriteLine("E")
End If
TextWriter1.Flush
	End If	
End Sub

'Clear all the LEDs when the user clicks on Reset
Sub lblReset_Click
	If connected Then
TextWriter1.WriteLine("B")
TextWriter1.Flush
TextWriter1.WriteLine("D")
TextWriter1.Flush
TextWriter1.WriteLine("F")
TextWriter1.Flush
TextWriter1.WriteLine("H")
TextWriter1.Flush
TextWriter1.WriteLine("J")
TextWriter1.Flush
TextWriter1.WriteLine("L")
TextWriter1.Flush
TextWriter1.WriteLine("N")
TextWriter1.Flush
TextWriter1.WriteLine("P")
TextWriter1.Flush

lblN.Color = Colors.Gray 
lblNE.Color = Colors.Gray
lblE.Color = Colors.Gray
lblSE.Color = Colors.Gray
lblS.Color = Colors.Gray
lblSW.Color = Colors.Gray
lblW.Color = Colors.Gray
lblNW.Color = Colors.Gray

N = False
NE = False
E = False
SE = False
S = False
SW = False
W = False
NW = False
	End If
End Sub

'Set all the LEDs when the user holds in Reset
Sub lblReset_LongClick
	If connected Then
TextWriter1.WriteLine("A")
TextWriter1.Flush
TextWriter1.WriteLine("C")
TextWriter1.Flush
TextWriter1.WriteLine("E")
TextWriter1.Flush
TextWriter1.WriteLine("G")
TextWriter1.Flush
TextWriter1.WriteLine("I")
TextWriter1.Flush
TextWriter1.WriteLine("K")
TextWriter1.Flush
TextWriter1.WriteLine("M")
TextWriter1.Flush
TextWriter1.WriteLine("O")
TextWriter1.Flush

lblN.Color = Colors.Red 
lblNE.Color = Colors.RGB(255,128,0)	'orange
lblE.Color = Colors.Green
lblSE.Color = Colors.Blue
lblS.Color = Colors.Red
lblSW.Color = Colors.RGB(255,128,0)	'orange
lblW.Color = Colors.Green
lblNW.Color = Colors.Blue

N = True
NE = True
E = True
SE = True
S = True
SW = True
W = True
NW = True
	End If
End Sub

+2

12

Если нужны полные проекты, пишите, сброшу на почту

0

13

Вывод графиков возможен?

0

14

Кстати, вспомнил что SpiderBasic также позволяет компилировать под андроид. Правда он транслирует бейсик-код в JavaScript, но судя по всему возможен запуск JS на андроиде.
По синтаксису SpiderBasic во многом совместим с PureBasic (разработчик тот же).

+1

15

Yuriy.pv написал(а):

Вывод графиков возможен?

Там код
https://cs5-2.4pda.to/8192983.jpg

0

16

Либой  Socket не поделитесь?
Выше пример, где получаете данные?

Отредактировано Yuriy.pv (2021-01-08 22:25:37)

0

17

Yuriy.pv написал(а):

Либой  Socket не поделитесь?

Это стандартная библиотека, просто её нужно включить (NETWORK):
https://forumupload.ru/uploads/0000/25/b8/2/t165581.jpg

0

18

какой писец установка этой проги!!!...
С какой тёплой ностальгией я вспоминаю ТЕ времена, когда "принёс дискету, скопировал на Диск С, запустил" - всё работает...

https://forumupload.ru/uploads/0000/25/b8/439/t927314.jpg

первое я нашел. Откуда брать второе? android sdk / android.jar

0

19

Нужно установить Android SDK. https://ru.wikipedia.org/wiki/Android_SDK

Отредактировано Пётр (2021-04-17 18:44:35)

0

20

спасибо, Пётр. Попробую...

ps
облом! Официально только Microsoft® Windows® 7/8/10 (64-bit)
с какого-то левого качаю для win 32 бита.

жесть! И какой простой юзер в этом огороде разберётся?!

Отредактировано Александр Д. (2021-04-18 09:55:26)

0

21

ничего не получается.
Это какой-то писец... ((

0

22

поставил win10 64, поставил Яву, Андроид SDK
Скачал примеры. Интерфейс явно поменяли в новых версиях, а в инструкциях всё под старый :(
Короче, чего-то хочет при компиляции, но что - ХЗ, никаких пометок в ошибке.
Куда рыть, товарищи? :(

0

23

radan написал(а):

.

Василий, не возьмётесь за приложение для Андроид (и потом желателен ИОС) для управления по Блютуз нашим JDY-40?

0

24

Доброго здоровья! Кто то освоил сей компилятор? Что то с самого начала ничего не понятно. Хотелось бы тоже что - то принимать/передавать посредством Bluetooth...

0


Вы здесь » Программирование ATMEL в BASCOM. » Basic4android » Что за зверь?