Hi !

I've just updated my eclipse mrl sources and built a fresh Myrobolab.jar . i've changed the start argument with SwingGui and all work well . But i see some errors in the log at the bottom of python tab . No red band at the bottom of the gui's window.

I don' know if it's important but here is what i saw ( the script is sweety.py with virtual arduino ) :


[varduino.mrlcomm] [ERROR] writeByte overrun - should be  -32,768 <= value <= 32,767 - value = 74276230
[gui] [WARN] no such method LogGui.onState(Log) :  - attempting upcasting
[gui] [WARN] searching through 63 methods
[gui] [ERROR] did not find method - onState(Log)
java.lang.NoSuchMethodException: could not find Serial.refresh(ordinal 0) in declared methods
    at org.myrobotlab.codec.MethodCache.getCandidateOnOrdinalSignature(MethodCache.java:68)
    at org.myrobotlab.service.WebGui.processMessageAPI(WebGui.java:793)
    at org.myrobotlab.service.WebGui.handle(WebGui.java:605)


As you can see i didn't copy-paste all, but i think it's enouth !





5 years 9 months ago

Beetle !

Ok, thanks for reporting - let's get virtual Sweety worky :)

  • could not find Serial.refresh(ordinal 0 The way to interact with serial connections was refactored 

    It's a widget !!! - so everyone can use it and it only takes 2 lines of code in SwingGui !
    It has an 'editable' drop down so it can show you the ports found on the machine, but you can still add 'custom' ports like tcp://somehost:8080 
    Its one piece of code - so you fix it once and everyone benefits !
    - in the refactor method name refresh got changed to getPortNames (WebGui wasn't updated - now it is  FIXED


  • The LogGui didn't have a onState(Log log) method - FIXED
  • The buffer overrun might be initial communication problem ? - not sure .. I'll have to look deeper into that - also ran into a bug with double tabs which I need to look further into 

    The two items fixed should be in the latest (just pull)


5 years 9 months ago

I fixed some more errors - (get the latest in another pull) ..
one place is in your overriden Sweety.publishState()

I think I underestand you wanted all the services refreshed at that point - perhaps you should have a seperate method.

The framework calls this method and quite likely the other services are even created yet .. 
I added a null pointer check to each, but I don't think this is the way to go.

preferrably Sweety can have a refresh() method which calls all the broadcastState() methods.

Another change I added is the peers are 'created' in the constructor of Sweety ... 

Hope this is better for you 


Thx Greg, sorry to didn't answer in the chatbox, i had to go quickly ... Thanks For you help, there's some month that i didn't worked on sweety, i've to re-learn and remember some things ! Lot of change to do in sweety.java ...