Hi,
I want to compile a *.aesl file and load it on the thymio without using the IDE.
Is there a way to do this by using the terminal?
Thank you in advance!
mortadella011
Hi,
I want to compile a *.aesl file and load it on the thymio without using the IDE.
Is there a way to do this by using the terminal?
Thank you in advance!
mortadella011
Hello,
You can do this through asebamassloader. For example in windows you'd have something like:
asebamassloader.exe yourfile.aesl "ser:port=portnumber"Thank you for your quick reply, but it won't work for me.
I connected my Thymio via USB and it is on port 4.
So my command should be like this in the directory of the aesl file:
"C:\Program Files (x86)\AsebaStudio\asebamassloader" test.aesl "ser:port=4"I am on Windows 10 and I run the command with administrator privileges, since I get no response of the programm, it seems it is hung up and i have to stop it with Ctrl+C.
I have the same issue on ubuntu with the following command:
asebamassloader test.aesl "ser:name=Thymio-II"My .aesl file is created with asebastudio and has the following sample code in it:
<!DOCTYPE aesl-source>
<network>
<!--list of global events-->
<!--list of constants-->
<!--show keywords state-->
<keywords flag="true"/>
<!--node thymio-II-->
<node nodeId="1" name="thymio-II">
onevent buttons
if button.forward==1 then
call leds.top(0,0,32)
else
call leds.top(0,0,0)
end
if button.forward==1 then
motor.left.target=200
motor.right.target=200
end
if button.center==1 then
motor.left.target=0
motor.right.target=0
end
if button.backward==1 then
motor.left.target=-200
motor.right.target=-200
end
if button.left==1 then
motor.left.target=-200
motor.right.target=200
end
if button.right==1 then
motor.left.target=200
motor.right.target=-200
end
onevent prox
if prox.ground.delta[0]<300 or prox.ground.delta[1]<300 then
motor.left.target=0
motor.right.target=0
call leds.top(32, 0, 0)
end</node>
</network>What I could find out so far is that when I save the file with asebastudio and open it with notepad++, there is a problem with the coding: It can't display the "<", I just get "<" sign. Correcting that, nothing changes when i use the asebamassloader command.
Thank you in advance for your help.
hi all,
did you try, trough the terminal, to cd in the asebamassloader directory to load the command directly in the directory where the program is ?
For your notepad++, the mistake is that you need to edit a programming text with a code editor like for exemple notepad, in raw text.
i hope it helps you
yes I tried that aswell.
no differences…
The thing is, that I don't get any information from the programm, just no response.
Hi again mortadella011,
Asebamassloader should give you some output even if the aesl file is corrupted. If the program was loaded the output should be:
! XX bytecodes loaded to target thymio-II, you can disconnect target !If the aesl file has a problem it will tell you
Error in XML source file: error occurred while parsing element at
line YY, column ZZ"If the program seems hung up and does not output anything, then either Thymio is not on the port you specified or there is a problem with your Aseba.
I suggest to do the following (on windows):
"C:\Program Files (x86)\AsebaStudio\asebamassloader" test.aesl "ser:name=Thymio-II"Reinstalled everything on Windows but nothing changed.
The firmware was up to date but i reinstalled the latest.
The only thing I get is (on Windows):
Found Thymio-II on port \\.\COM7and on Ubuntu respectively (with self-built aseba from the source on github)
Found Thymio-II on port /dev/ttyACM0EDIT: It finally works now with FW version 9.
Thank you very much for your support.
Indeed, there was a change in the aseba protocol between firmware 9 and 10, and it seems that the asebamassloader contained in the installer package was not recompiled completely. Thanks for your contribution, we will fix this!
Like mentioned above I'm working with FW 9 now.
I use the massloader from Matlab with a system() call. The problem is now that the massloader does not close (no return value) and therefore Matlab can't continue so I have to cancel the operation with Ctrl+C.
This may be caused by the change of the protocol, but please consider checking this as well.
The massloader does not close because it is intended to load the same code to many robots; after loading it tells you when you can disconnect your robot, and will load the code to the next robot you connect too.
However, in Windows 10, we have an unsolved issue on which we are working with the disconnection of the robots which is not detected. Other OS do not pose this reconnection problem.
