Jump to content

Joel Bodenmann

Administrators
  • Posts

    2,645
  • Joined

  • Last visited

  • Days Won

    2

Everything posted by Joel Bodenmann

  1. You have to set GFX_USE_OS_RAW32 to TRUE in your configuration file to enable the BareMetal (no operating system) port. You can have a look at this example which is a bare metal project for the STM32F746G-Discovery board:
  2. Hi, We certainly can't help you without you providing your algorithm. If it's a small issue we might be able to help you or to give you certain pointers. Developing a dedicated algorithm for this is definitely the right approach as assembling the ring from other existing primitives will result in issues as you mentioned. Depending on your application / use-case you might be able to use the new gdispDrawDualCircle() function that was added 17 hours ago:
  3. Hello Sébastien, If you can share a stripped down version of the project that runs as an x86 project so we can run it on Windows that would be great. Other than that, if you want to dive into it yourself you can simply put a breakpoint at the redrawing function and look at the backtrace to figure out what causes the 2nd redraw.
  4. Hello Sébastien and welcome to the community! First to of all, let me thank you for your very nice post. If everybody would post their questions like this, life would be a whole lot easier for us. The background information you give along the minimized examples are really helpful. I'm on the road right now so I can't run your example - this might have to wait until tomorrow. I also don't know anything on top of my head that might help you - we're going to have a look at this and report back ASAP. Would it be possible for you to attach your simplified code as a ready-to-run projects as a ZIP archive? This would further simplify the process of tracking down & fixing the issue for us. The current version of the uGFX-Studio is pretty much dead. We're not putting any more time into it unless a company requests bug fixes or new features as part of a paid support plan. We started working on a completely new version of the uGFX-Studio which will be a lot better in almost all aspects. You can have a look at that here: Whether or not that tool will be open-sourced has not been decided yet.
  5. Hi, The configuration file is completely independent from whether you use your ILI9341 display controller in 8-bit or in 16-bit mode. It is up to the board file to handle the 8-bit mode correctly.
  6. Hi, There is a GOS port called Raw32 which allows running µGFX on any 32-bit architecture. You can find more about it in the corresponding documentation: https://wiki.ugfx.io/index.php/BareMetal You might want to consider setting the GFX_CPU_XXX macro in case of you're using an explicitly supported CPU to benefit from further, platform specific optimizations.
  7. Hello Jagdish, I'm having troubles finding the link that you're talking about. Can you tell me exactly where I can find that dead "Demos" link?
  8. Excellent work! That pull request has just been merged into the official repository. @Aivars Plume Can you confirm that this fixes the issue that you have been reporting?
  9. Hello @Jagdish Bisawa and welcome to the community! Thank you very much for bringing this to our attention. We took a look at it and fixed several links. Please don't hesitate to let us know if you can find other remaining dead links.
  10. Hello Alex, Thank you very much for sharing your experience. The proper way of handling this is creating separate board files for ChibiOS 2.x and ChibiOS 3.x. If you can share your working board files with us we'd be happy to include them as part of the repository. I hope that your students will enjoy working with µGFX
  11. It would be nice if you could share your finished rendering function. I'm sure that that could be helpful for many people. Maybe it can even be included in the official µGFX library. That might be the case on your computer using the SDL back-end. Running this on real hardware (eg. a Cortex-M4) based system will yield way worse results. The type of interface used between the CPU and the actual display will also have a huge impact.
  12. The gwinXxxCreate() function doesn't exist in that literal form. The "Xxx" are place holders for the name of the widget. You will find functions like gwinButtonCreate(), gwinSliderCreate() and similar. The term gwinXxxCreate() refers to all of these.
  13. Hello Folks, The past couple of weeks we have been busy working on a new website. This time we have been working together with a talented photographer & designer. The result are many great images which give the new website a very polished & professional look. The new website can be found at the usual place: http://ugfx.io The old website will stay available for a few weeks: http://old.ugfx.io Please leave all your comments, feedback, criticism and ideas below. We'd love to hear your opinion!
  14. Hello and welcome to the community! When you say that you can't show them at the same time, what do you have to do to make the others visible? Can you please check that the gwinXxxCreate() functions return valid handles? If the create functions return null pointers that usually indicates that you don't have enough memory left (heap!) to create additional widgets. In that case you want to increase the heap size that you can configure in the configuration file. Alternatively, you can always create all your objects statically and pass the corresponding object pointer as the first parameter to the create function. Are you able to successfully open the font using gdispOpenFont() and draw with the opened font using gdispDrawString()?
  15. Hello and welcome to the community! The way you are using the TOGGLE support of the GINPUT module appears to be correct. The problem you are facing is that the list widget currently simply doesn't support a toggle role to select an entry. Looking at the list widget code we see that right now only two roles to move the selection up and down are defined. To implement the behavior you're looking for, you have to add a 3rd role to the switch() that processes the toggle roles. In that role, you have to programatically select the current list item. I hope that helps. Please don't hesitate to ask if you have any further questions.
  16. Hello David, We'd definitely love to see your gradient code!
  17. Adding a driver for the SSD1322 display controller is currently not on our ToDo list. However, adding such a driver is very easy and doesn't take a lot of time. The reason we don't have it is because we simply never got our hands on an SSD1322 display controller. We can encourage you writing that driver yourself. It is very easy and the existing examples such as the SSD1306 should help you a lot. Please don't hesitate to ask if you have any questions. We are happy to help where ever we can.
  18. Well, I guess I'm a bit late to the party, but here are my two cents (which is really just copy-paste from the documentation) regarding the difference between the Async, GSync and FSync queues that @inmarket mentioned: This is also explained in the corresponding wiki article: https://wiki.ugfx.io/index.php/GQUEUE
  19. Can you please attach a text file containing the complete compilation output?
  20. Hi, Sorry, I was giving wrong information. I was sitting in the bus and didn't check the sources which were written a long time ago... In fact, the current implementation of the graph window doesn't offer changing the line size. You'd have to implement that yourself. As mentioned above, when working with graphs the proper solution is usually to implement a custom widget.
  21. You're welcome
  22. Hi, In µGFX (or rather in the GINPUT module) a mouse and a touchscreen are handled the same way. That is why you will often see variables, functions and options named "mouse" instead of "touchscreen". After all, a touchscreen provides exactly the same input parameters as a mouse does. The terms "mouse up" and "mouse down" refer to the button actions, not the movement of a point. When you click the button on your mouse, you first push it down and then release it. "Mouse down" refers to pushing the button down and "mouse up" refers to releasing it. "Mouse move" refers to moving the mouse around (ie. changing the coordinates). The same applies to the touchscreen: "Mouse down" means that the user put the finger on the touchscreen (without releasing it yet), "Mouse up" means that the user took the finger off the touchscreen and "mouse move" means that the user moved the finger across the touchscreen. I hope that helps. Please don't hesitate to ask if you have any other questions.
  23. The line size is part of the GGraphLineStyle_t struct that in turn is part of the GGraphStyle_t struct. You can change the line size in your style struct, re-apply the modified style using gwinGraphSetStyle() and then issue a redraw using gwinGraphDrawAxis(). Note that by design the axes will now be in the foreground. This means that if your plotted data covered part of the axes the axes will now be covering that part of the data. Therefore, depending on what you are doing you might want to issue a complete redraw of the graph using gwinRedraw(). Furthermore, it might be worthwhile to note that the built-in graph is usually just enough to get started and make a simple proof-of-concept. For any serious application you'll end up implementing a custom widget.
  24. Yes, creating a custom widget is usually the best solution. There is a guide on the wiki explaining the process of creating a custom widget. You can take all the existing widgets as an example (they are all located in /src/gwin/). Creating a custom widget is not as hard as it might look at first glance. Others did it before you as well:
  25. The STM32F746G-Discovery board doesn't have a VS1053 audio codec (it's an external chip!) so you won't be able to run that demo at all. However, you can write a driver for the audio codec that is on that board and then you can use the GAUDIO module. Once you wrote the driver, you will be able to easily play sounds from flash, an SD-Card or any other source that is accessible via the GFILE module. The same applies to the GADC module: The STM32F746G-Discovery board files don't include a driver for the GADC module. You can use it once you wrote the corresponding driver. Feel free to open new forum topics if you have any questions on how to implement these drivers. We are happy to help where ever we can.
×
×
  • Create New...