Discussion:
uml diagrams, code in c
Tim Reilly
2010-11-23 19:11:02 UTC
Permalink
I want to design a state machine.

I went through the simple c++ example and made the cpp make file and got hello world. I would like to code in c however. Do I simply change the items in the makefile to c instead of cpp?

Also when I call object model diagram or statechart windows photo viewer says there is nothing there. Is there something wrong with my setup? Any suggestions?
I can't read the cmd shell to see what is going on because it terminates too quickly.

Also Is there a way to load an existing project into Astade so I could get a model diagram?

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685143

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-24 06:22:34 UTC
Permalink
Hi Tim,

if you want to code C-Statecharts with Astade you should look to get the newest version first, because using C-statecharts with the Astade C runtime is a relative new feature. You might start with the Version you have, but if getting problems, try:
http://daily.astade.de

If you look for an example, check out the Astade Model from here: http://astade.tigris.org/source/browse/astade/

Open the model in astade/Model

In the Model there are some unit test components. The "ACF_Test" is the one you are looking for. It is an example for coding C statecharts and use it with the C Framework.

Obviously there is a makefile example for C projects, too.

To your diagram problem:
In the Astade install directory there are two batch files "sc.bat" and "omd.bat" which are used to generate the diagrams. You might edit them (first of all, putting "pause" somewhere) to solve the problem with the windows viewer.

Let me know, if you are successful ;-)

Regards

Thomas

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685237

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-24 19:55:02 UTC
Permalink
Hi Thomas,

I put the "pause" in before the dot and png files are deleted in the sc.bat and omd.bat and now I can see the state charts! Thanks! I actually got omd diagrams to work by just deleting the del statements in omd.bat, but I am sure your way is better.


I didn't see the file you mentioned. I've attached where I looked, I didn't directly see the acf files.

Also,
my simple test case.

Also my simple make file. This one works with the very simple example on the .de site. The one in the tutorial won't let you run the program. (it builds though)

My home project is that I have data from the WWVB time signal from Colorado which I captured with a cypress PSOC processor. (directly, no extra active parts). I have a text file, and I would like to develop the algorithm using the text file on a pc, and them move it to the PSOC.

Also I do want to learn about object oriented progamming too.

Any information where I am making mistakes would be helpful.

Best Regards,
Tim

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685448

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-25 06:47:29 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
I put the "pause" in before the dot and png files are deleted in the sc.bat and omd.bat and now I can see the state charts! Thanks! I actually got omd diagrams to work by just deleting the del statements in omd.bat, but I am sure your way is better.
You could also delete the "del" statement.

What happens:
The batch file generates the graphic, calls the viewer and thereafter deletes the graphic.

If you use a viewer which disconnects from the console, the batch continius and deletes the graphic, before the viewer can open it.

If you remove the line with the "del" statement, always the last graphic stays in your temp directory and is overwritten, when you generate the next one.
I think you could do it that way.

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685532

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-25 06:53:25 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
I didn't see the file you mentioned. I've attached where I looked, I didn't directly see the acf files.
Astade is hosted in a SVN Repository.

SVN works in that way, that you can copy (check out) the whole directory tree to your local disk and open it there.

What you should do:

1. install SVN (maybe TortoiseSVN)
2. Check out the repository
3. Open the astade/Model model on your local disk

Inside the model you'll find the mentioned example.

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685533

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-25 00:51:23 UTC
Permalink
Hi Thomas,

A couple of things:

I forgot to mention I am now running the latest build.

I have a new makefile kind of a hybrid of my old one, with some things stolen from the windows make file in the Astade directory. It should look for files in the auto directory when I get Astade to auto generate files. The windows make in the Astade directory causes complaining about wxwidgets stuff.

I figured out how to get a c build. Now I can build main with a c extension.

I can't seem to get any autogenerated files. I have tried everything that seems reasonable.

If you delete a class Astade gets very angry, complains about enumeration and wipes out the whole project!! Not too fun.

If you have any examples of state machine project(s) with syntax on the guard, trigger etc. I would be very grateful.

Regards,

Tim

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685478

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-25 07:00:17 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
I can't seem to get any autogenerated files. I have tried everything that seems reasonable.
To have autogenerated files, you have to tell Astade which files to generate ;-)

You do it that way:

1. Select the component and make it the "active component" (as I can see in your attachments, you did this already)

2. select your class and select "Add to active component" (as I can see in your attachments, you didn't this)

After you've done this you can let Astade generate the files by ether:

- select "generate code" on the class
- select "regenerate all" on the component
- press the left button in the toolbar

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685535

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-25 07:07:21 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
If you delete a class Astade gets very angry, complains about enumeration and wipes out the whole project!! Not too fun.
This could happen, if you delete a class, which is still added to an active component. Don't do that.
Actually it's a bug.

(If you achived it in another way, let me know, how)

If it happens, open the component file in a text editor (The file "ModelNode.ini" in the component folder)
and remove the coresponding line in the [Classes] section.

If you are in doubt, remove the whole [Classes] section and add the classes you need afterwards in the tree dialog.

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685536

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Anders Larsen
2010-11-25 11:57:37 UTC
Permalink
Hi,
Post by Thomas Spitzer
Post by webpost-jqHnx1hy4Dsdnm+
If you delete a class Astade gets very angry, complains about enumeration and wipes out the whole project!! Not too fun.
This could happen, if you delete a class, which is still added to an active component. Don't do that.
Actually it's a bug.
if it's a bug we should fix it - but I can't reproduce it, neither on Linux nor on Windows.
Anytime I try to delete a class it gets deleted all right - if it belonged to the active component, I get the "enumeration" message, but other than that the model stays intact.

There must be more preconditions that I do not know about.

BTW, on Windows I'm using the latest daily from http://daily.astade.de/2010-11-24/

Cheers
Anders

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685596

To unsubscribe from this discussion, e-mail: [users-unsubscribe-***@public.gmane.orgis.org].
t.spitzer-sQvDcPvFtuYByEq3+
2010-11-25 12:15:46 UTC
Permalink
Post by Anders Larsen
if it's a bug we should fix it - but I can't reproduce it, neither on Linux nor on Windows.
Anytime I try to delete a class it gets deleted all right - if it
belonged to the active component, I get the "enumeration" message,
but other than that the model stays intact.
The model stays intact. But the component now contains an entry, you
cannot delete any more.
Whenever Astade tries a refresh of the tree, you get the "enumeration"
message, which might look like "model destroyed"

In addition, you cannot "repair" the component other than with a text editor.

I agree, that we should fix it. Do you have an idea, how Astade should
behave in that case?

I guess, best would be, if the Component "repaires itself" if the
situation comes up. Maybe giving a notification to the user?

What do you think?

But, Tim might have found another error. The "delete a class which is
in component" was only my guess.

Thomas

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685597

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Anders Larsen
2010-11-25 14:31:03 UTC
Permalink
Hi again,
Post by t.spitzer-sQvDcPvFtuYByEq3+
The model stays intact. But the component now contains an entry, you
cannot delete any more.
Whenever Astade tries a refresh of the tree, you get the "enumeration"
message, which might look like "model destroyed"
I just committed a fix (r2188) - Astade now removes a class (or a statechart)
from all components before deleting it.
It should be available here (http://daily.astade.de/2010-11-26/) in about
12 hours from now...

The fix prevents the problem from appearing in the future, but it does not
repair an already damaged model.
Post by t.spitzer-sQvDcPvFtuYByEq3+
In addition, you cannot "repair" the component other than with a text editor.
I guess, best would be, if the Component "repaires itself" if the
situation comes up. Maybe giving a notification to the user?
I'm not sure about it - adding more (and more) code only to automatically
repair the damages of bugs of the past doesn't sound like a good idea.
Perhaps we should create a separate repair-tool and remove such work-arounds
from Astade proper?
Post by t.spitzer-sQvDcPvFtuYByEq3+
But, Tim might have found another error. The "delete a class which is
in component" was only my guess.
@Tim: What exactly do you mean by "...wipes out the whole project"?
Did Astade really delete the model? Was there anything left (weird files,
empty directories, ...)?
Any hint how to reproduce the problem is highly appreciated (so we can fix
it soon)!

Cheers
Anders

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685639

To unsubscribe from this discussion, e-mail: [users-unsubscribe-***@public.gmane.orgis.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-25 22:16:37 UTC
Permalink
Hi Anders and Thomas,

Actually I have lost the project 3 times. I have lost it both when deleting a package and a class. I am sure it is because I am doing things to it as beginner you haven't thought of.

I tried to break it several times this morning by deleting classes and packages but couldn't.

I actually figured out exactly how I broke it yesterday. Referencing the first attachment I put in a class sm, which I set to type c. I then added a state machine with the same name. I put in the relations which is probably incorrect. **I am a neophyte object oriented guy.**

If you then delete the class it will give you the error in attachment two and all the files in the model directory are deleted.

Attachment 3 shows what happens when you reopen the model.

I am sorry if I caused you guys extra work because of somthing silly I did.

I got the auto generated state machine code now!!!


Is there a way to get the state machine code to be c instead of cpp ?


Thanks for all of the help!

Thomas:

I'll install Tortise and check out the state machine example code.

I know why I was having problems with the make file.

I missed the section "additional make targets" in your example. This was after a graphic and I somehow missed it.

http://astade.de/doku2640.html?id=tutorial:helloworld


Regards,

Tim

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685721

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-26 07:05:09 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
If you then delete the class it will give you the error in attachment two and all the files in the model directory are deleted.
Hmm.. you found a nasty bug. I checked it, it's true. If you delete a class, which has a relation to itself, you get this error.

Let's see, what this is ...

Thank you for testing for us.

Thomas

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685805

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-26 07:34:49 UTC
Permalink
Hi Thomas,

I found another bug. When load an existing model that has a state machine you are trying to build in c, on the first build it invokes the cpp compiler. You get all kinds of errors related to cpp. If you then click on the state machine and hit generate, I think someting in Astade sees the statemachName_impl and then on the next build it tries to compile with the c compiler.

When it does build I get some errors.

I am attaching the model.


Also, when I used Tortise to pull down the model, I don't see the state charts.

Best Regards,

Tim

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685814

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-26 08:42:55 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
When load an existing model that has a state machine you are trying to build in c, on the first build it invokes the cpp compiler.
Have a look in the "auto" folder. If you first generate the class in cpp, and therafter generate it as .c you have both versions in the directory.
"Regenerate" does not delete the file which is coded in the other language. Maybe it has to do with this?
Post by webpost-jqHnx1hy4Dsdnm+
Also, when I used Tortise to pull down the model, I don't see the state charts.
State charts are generated using the bath sc.bat in the Astade dirctory. Place a "pause" inside the batch and see what the reason is.
I guess, you should delete the "del" line there, as you did in the omd.bat.

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685820

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-26 17:16:16 UTC
Permalink
Hi Thomas,

I shouldn't have used the term statecharts. Sorry.

When I pulled the Component_ACF_test from my local svn directory and placed the components into a folder and invoked Astade I don't see any associated packages, where the statemachine and states would be. I do get the components. What am I missing ? Is this because I am running windows or somthing ? I attached a screenshot of the local directory and what Astade shows.

Regards,

Tim
Post by Thomas Spitzer
Post by webpost-jqHnx1hy4Dsdnm+
When load an existing model that has a state machine you are trying to build in c, on the first build it invokes the cpp compiler.
Have a look in the "auto" folder. If you first generate the class in cpp, and therafter generate it as .c you have both versions in the directory.
"Regenerate" does not delete the file which is coded in the other language. Maybe it has to do with this?
Post by webpost-jqHnx1hy4Dsdnm+
Also, when I used Tortise to pull down the model, I don't see the state charts.
State charts are generated using the bath sc.bat in the Astade dirctory. Place a "pause" inside the batch and see what the reason is.
I guess, you should delete the "del" line there, as you did in the omd.bat.
------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685916

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-26 19:36:09 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
When I pulled the Component_ACF_test from my local svn directory and placed the components into a folder and invoked Astade I don't see any associated packages, where the statemachine and states would be.
Of course, this cannot work.

An Astade Model is a whole directory tree. The top level folder has to be a "Model" folder.
Don't try to separate things in that tree, Astade will get confused about that and may not be able to open it.

What you checked out from SVN ist an Astade Model. Just open it (Select File->open Model and then choose the folder astade/Model)
Than you should see the whole Model.

If you want to copy parts of that Model into another Model, open that other model with another instance of Astade and use drag and drop from one Astade Tree to the other.

Don't copy files from and to the Astade Model Directory with Explorer or something. If you not know exactly what you're doing, you'll end in a mess ;-)

It's not designed to work in such a way. Let Astade manage the Astade Model tree.

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685938

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Anders Larsen
2010-11-26 22:07:23 UTC
Permalink
Hi,
Post by Thomas Spitzer
If you want to copy parts of that Model into another Model, open that
other model with another instance of Astade and use drag and drop
from one Astade Tree to the other.
still on my to-do list:
it seems drag-'n-drop sometimes doesn't copy but _moves_ elements to
the destination,
thereby damaging the source model...

Take care
Anders

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685965

To unsubscribe from this discussion, e-mail: [users-unsubscribe-***@public.gmane.orgis.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-26 23:58:25 UTC
Permalink
Hi Thomas and Anders,

I was just trying that. Thomas, had told me how to load the whole model into Astade and that worked, but I couldn't seem to get drag an drop to work.

I was wondering if part of my problmes with my simple state machine was I didn't have the acf framework.

I have come to the conclusion you guys are way way ahead of me, and I don't have enough background to get this tool going for me.

You guys have made a great effort, I think my background, and the Astade documentation is a little light for me to be productive, at least now.

I have noticed there are some books about embedded programming using UML, maybe I'll spend some money and get smarter.

As a novice who has searched a lot of UML sites, unlike programming sites which are numerous, there are very few UML tools with useful project files, especially for guys whose real interest is embededed processors.

I have been intriuged by UML, I have done a lot of state diagrams for cplds, fpgas etc. and coded it into VHDL, and the promise of language independence intrigues me. But I feel I have hit the wall of horrible unproductivity. I was on vacation this week, have to go back to the day job next week.

Thanks for your patience, it was a pleasure interfacing with you guys.

Take care,

Tim
Post by Anders Larsen
Hi,
Post by Thomas Spitzer
If you want to copy parts of that Model into another Model, open that
other model with another instance of Astade and use drag and drop
from one Astade Tree to the other.
it seems drag-'n-drop sometimes doesn't copy but _moves_ elements to
the destination,
thereby damaging the source model...
Take care
Anders
------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685992

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-11-27 07:55:16 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
I was wondering if part of my problmes with my simple state machine was I didn't have the acf framework.
But you found it now? It's located in the Astade install directory.
Post by webpost-jqHnx1hy4Dsdnm+
I have come to the conclusion you guys are way way ahead of me, and I don't have enough background to get this tool going for me.
Don't give up so fast. The tools for model driven development have lots of options and it take some time to manage them. But it's worth the effort.
Post by webpost-jqHnx1hy4Dsdnm+
You guys have made a great effort, I think my background, and the Astade documentation is a little light for me to be productive, at least now.
That's true. But see also this point: Astade is Open Source. It's public. So even you could add Tutorials to the project. As long as nobody does it, ther will be none.
For us its nearly impossible to do it without people like you, who have the questions. We work with the tool for years now, so we don't see what needs explanation.
Post by webpost-jqHnx1hy4Dsdnm+
I have noticed there are some books about embedded programming using UML, maybe I'll spend some money and get smarter.
If embedded programming is your goal, Astade can help you. I did a webserver for an ATmega128 with Astade, begin of the year. If you like, I'll send you the model.

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2686062

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
webpost-jqHnx1hy4Dsdnm+
2010-12-05 06:33:19 UTC
Permalink
Hi Thomas,

You are right. Thanks for the encouragement. I'll work with Astade some more. Your AT128 project, was that done in C or C++? It looks like AVRs use C compilers, and UML seems to be aimed at object oriented languages with classes. I would be interested in the model, to see how you approached the problem with Astade to get C code.

Also, if you have a simple state machine set up in c, that builds (like your light switch or similar) that would help. I wasn't able to get anything to build within the model.

Regards,

Tim

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2687933

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Thomas Spitzer
2010-12-05 17:36:12 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
Your AT128 project, was that done in C or C++?
It is in C.
Post by webpost-jqHnx1hy4Dsdnm+
I would be interested in the model, to see how you approached the problem with Astade to get C code.
I can send the Model to you.
Post by webpost-jqHnx1hy4Dsdnm+
Also, if you have a simple state machine set up in c, that builds (like your light switch or similar) that would help.
In the Astade Model there is an example. In the Unit Test section there
is an component "ACF_test" which is an example for a state chart use in
C environment.
Post by webpost-jqHnx1hy4Dsdnm+
I wasn't able to get anything to build within the model.
So lets do a "step by step" tutorial:

Lets start in a desktop environment. You use Windows, correct?
And you want to generate state charts using only C, correct?

So you should start the following way:

1. Install Astade
2. Check out the Astade Model
3. Open the Model
4. Test weather you installation is OK: Can you see object model
diagrams? Can you see state charts?
5. Select ACF_test as active component
6. generate code for it (should be in the "auto" folder
7. Have a rough look into the generated code

If you work in Windows, some additional work to do:

8. Adapt the file ACF_Hal.c (in "manual") so it can work for Windows
9. Add a Configuration for Windows (if you need help, mail in this list)
10. Switch on "tracing" for the classes "TickTackToe" and friends
11. Compile the Program
12. You should get the following Text output:

Initialisation done!
[1291570132.795] ~ (!) 0x7fff0f0e7020:trigger_impl
[1291570132.795] 0x7fff0f0e7020:trigger_impl (!) 0x7fff0f0e7020:trigger
[1291570132.795] ~ (!) 0x7fff0f0e7060:TickTackToe_impl
[1291570132.795] 0x7fff0f0e7060:TickTackToe_impl (!)
0x7fff0f0e7060:TickTackToe
[1291570132.795] ~ ==> 0x7fff0f0e7060:TickTackToe Initialize()
[1291570132.795] 0x7fff0f0e7060:TickTackToe >>> tick
[1291570132.795] ~ <== 0x7fff0f0e7060:TickTackToe
[1291570132.795] ~ ==> 0x7fff0f0e7020:trigger Initialize()
[1291570132.795] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
testonly()
[1291570132.795] 0x7fff0f0e7020:trigger >-- 0x7fff0f0e7060:TickTackToe
push
[1291570132.795] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570132.795] 0x7fff0f0e7020:trigger >>> onlystate
[1291570132.795] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
falseAlways()
[1291570132.795] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570132.795] ~ <== 0x7fff0f0e7020:trigger
[1291570132.795] ~ --> 0x7fff0f0e7020:trigger ACF_timeout
[1291570132.795] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger
TakeEvent()
[1291570132.795] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
test()
[1291570132.795] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570132.795] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
testonly()
[1291570132.795] 0x7fff0f0e7020:trigger >-- 0x7fff0f0e7060:TickTackToe
push
[1291570132.795] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570132.795] 0x7fff0f0e7020:trigger >>> onlystate
[1291570132.795] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
falseAlways()
[1291570132.795] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570132.795] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger
[1291570132.795] 0x7fff0f0e7020:trigger --> 0x7fff0f0e7060:TickTackToe
push
[1291570132.795] 0x7fff0f0e7060:TickTackToe ==>
0x7fff0f0e7060:TickTackToe TakeEvent()
[1291570132.795] 0x7fff0f0e7060:TickTackToe >>> tack
[1291570132.795] 0x7fff0f0e7060:TickTackToe <==
0x7fff0f0e7060:TickTackToe
[1291570132.795] 0x7fff0f0e7020:trigger --> 0x7fff0f0e7060:TickTackToe
push
[1291570132.795] 0x7fff0f0e7060:TickTackToe ==>
0x7fff0f0e7060:TickTackToe TakeEvent()
[1291570132.795] 0x7fff0f0e7060:TickTackToe >>> toe
[1291570132.795] 0x7fff0f0e7060:TickTackToe >>> tick
[1291570132.795] 0x7fff0f0e7060:TickTackToe <==
0x7fff0f0e7060:TickTackToe
[1291570133.295] ~ --> 0x7fff0f0e7020:trigger ACF_timeout
[1291570133.295] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger
TakeEvent()
[1291570133.295] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
test()
[1291570133.295] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570133.295] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
testonly()
[1291570133.295] 0x7fff0f0e7020:trigger >-- 0x7fff0f0e7060:TickTackToe
push
[1291570133.295] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570133.295] 0x7fff0f0e7020:trigger >>> onlystate
[1291570133.295] 0x7fff0f0e7020:trigger ==> 0x7fff0f0e7020:trigger_impl
falseAlways()
[1291570133.295] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger_impl
[1291570133.295] 0x7fff0f0e7020:trigger <== 0x7fff0f0e7020:trigger
[1291570133.295] 0x7fff0f0e7020:trigger --> 0x7fff0f0e7060:TickTackToe
push

If you put this text into Trace2UML (the Astade Seqence chart drawer)
you get the attached picture

Lets try to follow this 12 steps.

Thomas

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2688009

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Anders Larsen
2010-11-26 12:26:42 UTC
Permalink
Post by Thomas Spitzer
Post by webpost-jqHnx1hy4Dsdnm+
If you then delete the class it will give you the error in attachment two
and all the files in the model directory are deleted.
Hmm.. you found a nasty bug. I checked it, it's true. If you delete a class,
which has a relation to itself, you get this error.
Well, it's certainly _allowed_ for a class to have relations to itself
(e.g. think of a node of a chained list), so Astade shouldn't crash when
deleting such class.

And of course Astade must never, ever crash in this spectacular way,
sorry for the inconvenience, Tim, and thanks for the detailed report.

I'll see if I can come up with a solution soon.

Cheers
Anders

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685862

To unsubscribe from this discussion, e-mail: [users-unsubscribe-***@public.gmane.orgis.org].
Thomas Spitzer
2010-11-26 08:49:38 UTC
Permalink
Post by webpost-jqHnx1hy4Dsdnm+
Is there a way to get the state machine code to be c instead of cpp ?
There are 5 statechart coders installed with Astade. Look into the install directory, there you find them.

You can select the statechart coder to use for a certain state chart by configure the "coder suffix" in the statechart properties.

if you want state charts in C, coded for the Astade C Framework, you should type "ACF" as coder suffix

@Anders: It seems, that the StateCartCoderACF++ is missing in the windows installer :-(

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685823

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Anders Larsen
2010-11-26 10:52:38 UTC
Permalink
Post by Thomas Spitzer
@Anders: It seems, that the StateCartCoderACF++ is missing in the windows installer :-(
Added (in SVN r2189) - a new installer should appear here
http://daily.astade.de/2010-11-27/
in ~15 hours from now.

Cheers
Anders

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685848

To unsubscribe from this discussion, e-mail: [users-unsubscribe-***@public.gmane.orgis.org].
webpost-jqHnx1hy4Dsdnm+
2010-11-26 17:22:11 UTC
Permalink
Thanks Anders,

I'll try it when it comes in. You guys have a lot of passion for this tool. A big investment in time.

Regards,

Tim

------------------------------------------------------
http://astade.tigris.org/ds/viewMessage.do?dsForumId=3430&dsMessageId=2685917

To unsubscribe from this discussion, e-mail: [users-unsubscribe-HcrAt6aCZFAWBrYXtHbyV9i2O/***@public.gmane.org].
Loading...