Open Source β€’ Background Tasks: Itoo πŸš€

You will have it running twice in this case
You do not want this

Taifun

I have problem with the code. The code is function but unstable and I dont know, where is problem. Please help



That's a wild guess and I do not think so
You can easily create a test project and add some debug statements to proof, that this is not the case

Can you elaborate? Probably your background process sometimes does not continue after waiting 30min ot 1 hour and the Android operating system is terminating your process?

If you want do do something regularly after a given time (in your case after 30min/1h) usually you use the alarmmanager functionality. My alarmmanager extension is able to do some processing after a given time in the background App Inventor Extensions: Alarm Manager | Pura Vida Apps

Taifun

1 Like

Thanks, You mean than your extesion will be used in Itoo?

No, it's the other way around, my extension will use itoo functionality, Itoo X Framework: Virtual App Inventor environment for Background execution - #2 by Kumaraswamy

Taifun

when i do this, nothing happens, the device does not get connected because im guessing itoo processes cant read the listview1.selectionindex and act upon it. i also added a evaluate but no result of listview1 but still nothing happens.

  • the list view shows both the address and devices name so i cant use listview1.selection and store it via storeproperty block

No? Why not? Don't you think it would probably be a good idea to share your updated blocks?

Taifun

I did a search for you in the itoo thread and found the following BLE example for you

And another example

Don't hesitate to search yourself, too...

Taifun

yeah sorry i was about to, so


i removed all the timers in order to narrow things down.
and when i run this, nothing really happens, the device does not show signs of connecting at all.

well as the listview contains both- the address and the name, i cannot use connectmatchingname or the connectwithaddress block, i would probably need to create a way to save both to utilise them into the itoo procedure blocks.

also, when i directly hardcode it to my devices name using connectmatchingname, this still pops up
17f1178ee267d0707b756ddd313f6b7e0f4daca9_2_690x339

the one below this one is completely hardcoded and what i wanna do is use the listview for connecting the device.

UPDATE:

for this, i got the address from the listview and saved it using storeproperty block

.
but the error 3300 still persists and i dont understand why.
(The device still vibrates for 0.5s as thats what i allowed it to do in bytesreceived blocks so that means that the device IS connected)

First store the address, then connect

Taifun

thank you for your help so far, this fixed the error issue entirely. i am facing a new problem instead of that tho


everything works fine when the set charuuid.text to block is disabled, but when i enable it in order to get the characteristic uuid, i get a runtime error, why so?

and how do i fix this?(the whole itoo process stops working altogether when i enable that speicifc block.

Probably it is a background/foreground thing? This is only a guess...

You are calling GetCharacteristicsForService in the foreground while all ble functionality is in the background

Try to call it in the background, store the result using StoreProperty and then call ui_bleconnect
In ui_bleconnect then use ReadProperty and display it in label charuuid

Alternatively use logcat for debugging without using ui_ procedures

Taifun