juerg asked for fullscreen gui .. and since I was polishing in the area - we now have fullscreen mrl.
The fullscreen button is a toggle button -
- hit it once and it goes fullscreen
- hit it again and it leaves fullscreen
- again - full screen
- if you quit in fullscreen (alt-F4) - then it will remember that the next time it starts - it should start in fullscreen
- you might notice some of the other buttons growing too
- desktop is the concept that you can "undock" and move stuff around - and mrl will remember where you moved stuff - so the next time you start (and hit explode) - the dockable tabs will explode out of the frame and into the place where you last moved them
- its buggy - but its getting closer
- if things get 'too' wacky' you can always delete the gui.json and it will be back to 'normal'
You might be thinking to yourself ... Well, that's cool, but why do you have buttons in a tab to change the gui .. vs. why didn't you add them to the top frame menu - like the help menu? (That's what I asked myself)
There is really a reason to always keep stuff in the tabs. The reason is if two (or more) MRL instances are attached to one another. You'll have remote gui tabs in your control, and pontentially, you can controll the remote fullscreen, and explode, and all (if coded right) the functionality a gui service has on a remote machine. (Now just send a video feed of screen captures - and we have remote desktop :D)
unbeatable immediate respond
unbeatable immediate respond to feature request - how can a day start better?
did you also see what went wrong with my i2c connection with the bno055?
Mats is the local domain
Mats is the local domain expert for I2c
i2c on the Arduino
Hi Juerg
This is really frustrating. Somebody has made major incorrect changes to the i2c implementation on the Arduino / MRLComm without testing it.
/Mats
Hopefully it wasn't me, but
Hopefully it wasn't me, but percentage of change per capita - I would be a likely candidate...
I have very little I2C devices, so on a physical level it would be difficult for me to test, however,
I created the VirtualArduino to help with these sorts of challenges.
It would be great if the continuous integration would test more .. the VirtualArduino and its derived devices should allow this.
I'll start looking at a service/Bno55.py and see if i can begin building a comprable virtual Bno55 to run against.
Sorry if it was me.
i2c and virtual devices
Hi GroG and Juerg
I will fix the broken code in the Arduino service and MRLComm.
Virtual devices are nice, but they are also code, and can behave different than the real device. When I change the Arduino /MRLComm code, will I have to make a similar change to the VirtalArduino ? i
i2c devices are cheap. You only need one type, like for example the ads1115 A/D converter to be able to test both i2c reads and writes. And it cost about 2$.
I think just adding some test methods for Arduino i2cRead and i2cWrite could help detecting when somebody removes neccessary parameters from a method.
The bus is neccessary to have as a parameter in the i2cRead and i2cWrite methods, because all i2c devices on the same Arduinoi share the same i2cBus ( 1 bus = one SDA and one SCL ). And each i2cBus is a single MRLComm device. I think you may have been confused by that, and that I only implemented using a single i2cBus in the Arduino code.
/Mats
Virtual devices are nice, but
Virtual devices are nice, but they are also code, and can behave different than the real device. When I change the Arduino /MRLComm code, will I have to make a similar change to the VirtalArduino ? i
Yes, maintenance to tests is necessary typically. Its a balancing act between being too brittle and too much maintenance to tests vs not good enough tests.
i2c devices are cheap. You only need one type, like for example the ads1115 A/D converter to be able to test both i2c reads and writes. And it cost about 2$.
I'm really interested in a Bno055 for telerobotics - I'll order a couple
I think just adding some test methods for Arduino i2cRead and i2cWrite could help detecting when somebody removes neccessary parameters from a method.
I agree.
The bus is neccessary to have as a parameter in the i2cRead and i2cWrite methods, because all i2c devices on the same Arduinoi share the same i2cBus ( 1 bus = one SDA and one SCL ). And each i2cBus is a single MRLComm device. I think you may have been confused by that, and that I only implemented using a single i2cBus in the Arduino code.
Bno055
Hi
After proofreading the code I found that the prolem was very small. It was because of an incorrect debug statement, and that the i2c code was working well. I was just confused because I didn't recognize the code, since it had gone thru a major refactoring.
I made a minor change to a failing debug statement and a small change to the i2cWriteRead method in MRLComm.
So please test if the bno055 also works. I tested with the Adafruit16CServodriver service and the Mpu6050 service and they both work as expected.
YAY !
YAY !
Can link to the code which
Can link to the code which was broken ? Was it a method/interface signature change ?
bno055, getting zeros, no values