MIT App Inventor and 100+ esp32, how could I do this?!

At its core, the Universal Simulator must emulate various hardware and electronic functions across all 128 wires. Additionally, it should possess the following capabilities:

  1. Profile Management: Enable users to save profiles for each reference, allowing for local and online storage.
  2. Profile Recommendation: Offer suggestions by searching for existing profiles, both locally and online, to streamline usage.
  3. Website Communication: Establish seamless communication with a designated website for data exchange, facilitating information transfer to and from the iESN system.

Essentially, the Universal Simulator aims to be fully integrated with the iESN system, accommodating present and future needs, and ensuring comprehensive connectivity and functionality.

End... I don't make any publicity at iESN. If needed you can delete the logo and reference to iESN and put in the place *****.

Any questions, suggestions, or critics about the above are more than welcome.

Thank you for your time, Dan

I rediscover the wheel...

My dump question is... Does it work with any website that has Discourse, or is dedicated to the AI2 community?!

Seems that a huge part of the iESN system can be based on this...

It should work with any community based on Discourse....

Back to layout.

I spent about four weeks experimenting with 4K/27" system and 3K/13" tablet and I have some conclusions. Please remember that these conclusions came from a noob point of view in ChromeOS and AI2, almost sure that if a real professional on AI2/ChromeOS can have the same mediums at his disposition, possible it will be other conclusions.

First of all, AI2 Companion on both hardware systems crashes. Why it crashes, I don't know, but the logic behind these crashes that I see, I will write it on continuation.

First of all, I have two .aia, one "static" approach and another "dynamic" approach to generating the layout.

That one is the "dynamic" approach.
USLayout_dynamic.aia (141.3 KB)

That one is the "static" approach.
USLayout_static.aia (209.3 KB)

Please don't criticize the unfinished work from both. It is conceptual experimental work not a finished work.

  1. The first conclusion is about the file size, the static approach is almost two times bigger. If I will use that approach in the future, it will be somehow different, because meanwhile, I learn more and more "tips and tricks" about how to approach the static version of the layout.

  2. Another conclusion is about crashing. For example, the dynamic approach crashes after 4 Refresh Companion Screen on 4K/27" 32 GB-RAM, and after 15 Refresh Companion Screen on 3K/13" 8GB-RAM tablet. The static approach crashes after about 16 Refresh Companion Screen on 4K/27" 32 GB-RAM and after about 60 Refresh Companion Screen on 3K/13" 8GB-RAM tablet.

That behavior makes the dynamic approach useless on a 4K/27" machine and a nightmare on the 3K/13" tablet. In the static approach until now, can be supportable the crashes on both systems. Anyway, I don't understand how it is possible that in the same amount of refresh, the RAM is full and simply... crashes, no errors... simply crashes and disconnects from AI2. This can be a bug of ChromeOS or AI2 from my point of view as a noob. Any opinions about that are more than welcome.

Now I want to thank again @TIMAI2 for his dynamic aia, it was a huge inspiration source for me as a noob to understand a huge amount of "tips and tricks" about AI2. Not only his .aia, but his .aia open for me a huge fan of reading about what and how it can do some things.

Anyway, last week I spent learning about how can I generate a second dynamic list from a static list and a dynamic index. I can't. Simply I don't know the tools that I can use to achieve that purpose.

So for me at this point the dynamic approach is death. I can't use it. As I write above, my goal is to prove a concept, the concept of displaying data on 128 cells, not how to generate those cells, statically or dynamically.

Anyway, if @TIMAI2 or another professional here in this community, can, want, have time to correct my "dynamic" .aia, I'll be pleased to use the dynamic approach on continuation. If I have in the final of .aia a list with the cells ID, I think that I can use that list for future purposes.

Anyway, if nobody has time, can, want... I will redesignate a new app with the static approach, I will give an ID to 128 arrangements, as I need as order, I will use the canvas text placement facilities to display the labels, and so on... Or... I can use the same as the above approach, in combination with the label plus extension or... any other combination of the static/dynamic approach of alignments.

I want to thank you for reading this thread and if you can, want, or have time to help. Dan

Can that be one of my issues in using extensions?! Or is there another, unique way to use this extension?!

It simply... doesn't work with every TextBox... At least for me on the companion.

Can you imagine... 128 X 4 blocks, for only one... TextBox, I'll need about 6 to 10 X 128 TextBoxes...

AI2 doesn't have a "compatibility policy" about extensions?!

Seems that I have to choose... between my nightmares and... others... experiments. Which nightmares would you all, recommend to me?!

It is so difficult to have the possibility in software, to customize a... textbox from the padding, border radius, and border color, point of view, in the... 21 century?!

In the final... I will be able to find something that works for my purposes?!

Can someone recommend an extension that works for that purpose?!

Thank you in advance, Dan

The component socket expects a component, but not a list of components

Use a for each in list loop and inside the loop set the properties of the current item (i.e. component) to the value of your choice

Here is an example Examples for Every block for any component blocks - #18 by ABG

Taifun

@Taifun Without luck. On KevinKun website I don't find any documentation about this block. It seems to be outdated the website. It seems that I can use this block to generate a "general" layout and over time, use other blocs from KevinKun enhancement to modify that is particular in every cell.

TextBox_test.aia (46.1 KB)

What I want to do... As I can't use the TIMAI2 .aia as a dynamically generated layout because I don't understand what I need to make a dynamic list from a static list, I posted above, I plan to use a "static" design to generate the layout.

I plan to put 128 vertical/horizontal arrangements, give them the 128 IDs, and in each arrangement use TextBoxed (about 5-10 pcs on each arrangement) to display the data.

I tested many extensions that work with TextBoxes but in my approach none work with any TextBox. So... I think that is more complicated. It is possible that what you say above it works, but not as I intend to use it. So... once more time I don't find something closest to what I need for example. :frowning_face:

I bet that any extension works, but seems that my application is out of the AI2 concept or I don't understand how to approach them. But step by step, with some help, is possible to achieve the goals.

Thank you for your time, Dan

The same with the Decoration extension...

Decoration_error

the first error message is trying to tell you, that you should use a horizontal arrangement component instead of a textbox component

Unbenannt

and concerning the second example, what kind of component is the Decoration extension expecting?

Unbenannt2

Taifun

To display some text in some TextBoxes, the AI2 native TextBox, has huge padding that can't be changed, and it is not possible to change the border color. So as is in AI2 is useless for me. So... I read all that I found about extensions that can change the padding, margins, border colors, and so on. Now I tested all that I found but most of all works only in some conditions.

So... the first example is only for layouts... Ufff... Thank you very much for that. I don't see it. I saw "layout" in the block but I don't give importance to this. I was ignorant.

My fight is with TextBoxes. If I can find an extension that changes the margins, padding, borders... I believe that I can use it.

second example... I forgot that the global variable there, was from another test... My fought, back to test Decoration...

Almost what I need...

But... Disappear the text from TextBoxes... I don't find it.

TextBox_test_almost.aia (46.4 KB)

For such small text boxes, disable padding inside the fields.

@Patryk_F thank you very much.

I encountered the problem with disappeared text, indeed the padding is critical.

Now I fight with the next problem.

I plan to extrapolate this logic for 128 cells. I plan to have a horizontal arrangement that fills the parent as high and wide. In that horizontal arrangement, I plan to have 16 vertical arrangements. In every vertical arrangement, I plan to have 8 horizontal arrangements. All static in the designer.

My problem is how I can extract from the arrangement number... only the number and display this number in the first left TextBox from any arrangement/cell.

But first... I must have it live... to see exactly what's happening.

Works_1.aia (46.5 KB)

With this static approach, I hope that I will have 120 numbered with ID as I expect. Will see...

If you build so many layouts statically, and many Text Boxes. You will add many blocks to this... your project will not compile... and there will be problems with uploading it to companion.

@Patryk_F Already I made 128 cels statically, indeed I don't have in those cels any TextBox. But... I have around that 128 cells/arrangements, many other arrangements that make the margins, paddings, and so on... It was my first .aia and was compiled without problems. You can take a look at it, it is above. Now... I will have "clear" arrangements (without supplementary padding, margins arrangements) - here I bet that is not a problem. We will see if I add in every cell 3 (for the moment) TextBoxes in every cell... If there will be problems.

Anyway... It is a few hours of "brute force" work. The only problem that I see is the TextBoxes ID from every cell... I plan to give names as... a chess table... A1, A2... B1, B2... and so on to easily select them directly as columns/rows. We will see...

As I can't use the TIMAI2 idea because I don't understand one thing from there... I can't choose...

By using dynamic components you would save several hours of adding arrangements, Text Boxes, etc. You could also use the names or IDs of these fields in assigning data. During the static method of adding components, you will not extract anything from their names.

I think it's probably better to spend a few hours understanding it.

I can't use this approach. If I use this approach in designing the layout (the graphical part)... If I use this, it will be an entire mess in drawing the arrangements borders for the TextBoxes. So... I must "encode" in a form from the start of the arrangement name and encounter a method to select only some names from them to do the borders and another (from the insight of the cell), to not do the borders.

Let's find a method...

The only method is to make a list of components to which you want to apply the formatting. If you have different formatting for the same component type, you need to make several lists. Alternatively, you can make two large lists. One list contains the components, the other list contains the component names, in the same order. Then, using indexing, you can retrieve the name for a given component, or component by name.

@Patryk_F I "encode" in the name of HorizontalArangements that interest me to have external borders, the expression "EXT" and the real ID-cell - ex:113 - as I want it on the layout.

Now I want to simply check, all HorizontalArangements for the "EXT" and if it has "EXT" - draw borders.

I tried simply "contains / text / piece", doesn't work.
Now I look on the internet how can I make it...

I put a label after the list to see what's insight... I see only UFOs. That was my problem with the TIMAI2 dynamic approach, I don't know what is in the (some, like this) lists. I can't "service" what doesn't work if I can't see them.

EXT.aia (47.2 KB)

As I said above, if I have only one example, I can have a solution...

As I wrote above, it is impossible to return the name of the component used in the designer in the code. There is simply no way to do it and it won't work.

Instead of using the "every" block, you must manually create a list of the arrangements you want to modify.
Do an experiment and see what the "every" block returns, displaying its contents in any label.