Torizon getting started

Dear sir/madam, I am familiar with Visual Studio and i was using it in my toradex colibri imx6 with wince for GUI application developments. So, once when i came to know that Wince support will not be available, i tried to switch over to embedded linux and i tried with yocto project which was very tricky and i have build a linux OS with meta-mono and i was able to run mono GUI applications but they are not suitable for real time applications as they are pretty slow and so i tried to switch over to eclipse and using gtk , but gtk was so hard to learn and now i came to know about torizon, through which we can use visual studio with torizon extension for development.

  1. So can i create GUI based applications for torizon with VS2017?
  2. Will toradex provide support if i proceed with application development in Torizon using VS2017?
  3. Also i found two variants in Torizon OS (console and Docker runtime), can both of these be used with Visual Studio 2017?
  4. Kindly share me the procedures regarding dockers and container setups.

Environment:

  • Colibri iMX6DL 512MB V1.1A,
  • Colibri Evaluation board V3.2,
  • Torizon

Thanks and Regards,
Nishanth

Greetings @nishanth1829

So can i create GUI based applications for torizon with VS2017?

At the moment the VS extension for Torizon only supports C/C++, while you can create some kind of GUI application using just this it wouldn’t be ideal. We are working on expanding the utility of the extension to other languages/frameworks that would be more suitable for GUI development.

We also have various documentation on using other languages/frameworks but with Visual Studio Code.

.NET Core: .NET Core Development and Debugging on Torizon Using Visual Studio Code | Toradex Developer Center
Python: Python Development and Debugging on TorizonCore Using Visual Studio Code | Toradex Developer Center

So I guess to be more specific here I would need to know more about any requirements or preferences you may have regarding your application.

Will toradex provide support if i proceed with application development in Torizon using VS2017?

Yes we are willing to provide some support here especially with Torizon as we’d like to know the pain points of transitioning from WinCE to Linux (Torizon) as you are so that we may provide better documentation/support in the future.

Also i found two variants in Torizon OS (console and Docker runtime), can both of these be used with Visual Studio 2017?

For the VS extension the variant with the Docker runtime is required as it uses containers in the backend to operate.

Kindly share me the procedures regarding dockers and container setups.

You can find all public documentation for Torizon here: Torizon | Toradex Developer Center

Docker itself is also a very big and broad ecosystem so there is also a lot of good resources regarding this outside of our documentation that you may want to take a look at.

I hope this helps cover your questions, feel free to comment below if you have further questions or need clarification on anything I’ve said.

Best Regards,
Jeremias

Thank you both for the questions and the answers. I have another question, though:

will Toradex provide an Eclipse based tutorial on how to run and debug C/C++ (or even better, any Makefile based project) in Torizon?

Thank you,

@hyperion

Hi could you create a separate question post for this? It helps search-ability and organization for others who may have a similar question as yours when they go through the site.

Thank you!

I have a question additional to the initial question.
Assume a case where I have a application and I am migrating from Windows CE base to Torizon and want soft realtime requiremnts and pre emption. My Application is divided into 4 parts and their program language is also below.

  1. Application code , C, C++
  2. GUI, Not revealed
  3. External device high speed Communication, C,C++
  4. Other Software components which run when required from touch screen. C,C++

My Application team has provided the source code of only for the application part point no.1 above and I need to develop GUI and other program from scratch with a totally new approach. I want to develop using torizon pre empt version using VS.

My Question is can I use different containers for each of my application part as explained above? Which is probably true to my knowledge after some study with Torizon and want to know the best approach if any from Toradex.

Can I use Different language for every container?
Like I use VS for C, C++ development whereas i I use VS code to design GUI in .NET platform until there is a good platform support for GUI design also in VS itself.

Can I use External tools to develop fantastic GUI and pack them into containers and deploy them on torizon? If yes then give me a detailed procedure or use case for the same.

Is there any extension under plan to provide .NET or any other platform which is good for GUI and also light weight at the same time?

My application is soft realtime so I need to move ahead with Torizon with RT patch.also tell the pre emption options provided by Torizon.

The reason for moving from win CE on a different vendor’s SBC was that the application is 10+years old and requires a total new approach and fantastic GUI as per today’s and futuristic approach.

Regards
Nadim

My Question is can I use different containers for each of my application part as explained above?

Yes this in fact how we intend for people to be using containers with a multi-container approach.

Can I use Different language for every container?

As long as you account for how the different parts of the system will interact with one another then I don’t see an issue with multiple languages.

Can I use External tools to develop fantastic GUI and pack them into containers and deploy them on torizon?

Can you clarify what you mean here by “external tools”?

Is there any extension under plan to provide .NET or any other platform which is good for GUI and also light weight at the same time?

We are currently documenting/researching on providing samples for various .NET frameworks that would be good for this. Are you looking for a native GUI or web-based, or does it not matter?

Best Regards,
Jeremias

–>Yes this in fact how we intend for people to be using containers with a multi-container approach.

After following a lot of turorials from the Developer web page, i conclude the things are explained in a lot complicated way for a new comer. Partly tutorials are in commandline or termianl whereas partly they are explained in IDE like using Visual studio for example.

–>As long as you account for how the different parts of the system will interact with one another then I don’t see an issue with multiple languages.

Is there any standardized way developed by you to make various containers share variables or data live. Not by saving it to a file and accessing. Sharing variables i mean that value change at any one container should be reflected in other.

–>Can you clarify what you mean here by “external tools”?

For example, i develop a GUI in Qt open source IDE, and want to pack it as container and run on torizon, I will communcate the date from this container to my application code container to complete the feature.

We are currently documenting/researching on providing samples for various .NET frameworks that would be good for this. Are you looking for a native GUI or web-based, or does it not matter?

Anything that is lightweight and featuristic and proven with Torizon for GUI.

Thank you for your feedback on the documentation I’ll relay this back to our documentation team internally.

There are various data-sharing methods for containers. You said file access/writing is not a method you want to use however. How about network? Or containers could also share and transmit some data via Linux ports. But network or creating some kind of API would probably be the most common if that is acceptable for your system.

As for external tools, at the moment we only “officially” support the extensions we provide for Visual Studio and Visual Studio Code. Any other IDEs or tooling outside of this is up to the customer to integrate. We eventually plan to open source our extension which may be of help with this. Alternatively you can always request support for a specific IDE and we may take it into consideration, but no guarantees on this.