In ~/tool-src/opengeode/tests/testsuite/test-save using OG 4.1.23, the generated C code for GET_PARAM appears to be incorrect.
Using "make test-c" gives this output:
void _0_og_GET_PARAM()
{
asn1SccMyInteger idx = 0;
asn1SccSeqOf tmp41;
asn1SccUint max_range_2;
asn1SccUint min_range_2;
// param := save_buffer(0) (66,25)
ctxt.param = (asn1SccBoolType) ctxt.save_buffer.arr[0];
// idx := length (save_buffer) - 1 (68,25)
idx = (asn1SccMyInteger) (ctxt.save_buffer.nCount - 1);
// save_buffer := if length(save_buffer) > 1
// then save_buffer(1, idx) else {} fi (70,25)
min_range_2 = 1;
max_range_2 = idx;
if ((ctxt.save_buffer.nCount > 1))
{
tmp41 = (asn1SccSeqOf) ctxt.save_buffer; <<<<<<<<<<<<<<< does not remove the first element of save_buffer
}
else
{
tmp41 = (asn1SccSeqOf) asn1SccSeqOf_constant;
}
ctxt.save_buffer = (asn1SccSeqOf) tmp41;
// RETURN (None,None) at 170, 302
return;
}
I'm having trouble verifying this. In OG 4.1.23 when I copy the procedure symbol for UpdateFaultState (in this SDL file here) and paste it into another OpenGeode instance, I do not see the original fault behaviour. However, the procedure symbol does not copy. What is pasted is in fact the previous symbol that was copied (if any). It is only the UpdateFaultState procedure that suffers the problem; the other ones can be copied freely.
So I would say that either the original problem is resolved but I am seeing another problem that was previously hidden, or that the fix has not been fully effective.
Seen on OG 4.1.20
If a nested state is created on a diagram partition and then referenced on a second partition, it is not recognised as a nested state. Double-clicking on it gives again the "create nested state" prompt instead of navigating to the contents.
Verified fixed in 4.1.23
Seen in OG 4.1.20
It is not possible to export the statechart view to a PNG. If this is attempted (via File->Export to PNG), a PNG is created but it contains the most recently edited diagram.
Verified fixed in 4.1.23
Seen in OG 4.1.20
It is not possible to export the statechart view to a PNG. If this is attempted (via File->Export to PNG), a PNG is created but it contains the most recently edited diagram.
Seen on OG 4.1.20
If a nested state is created on a diagram partition and then referenced on a second partition, it is not recognised as a nested state. Double-clicking on it gives again the "create nested state" prompt instead of navigating to the contents.
This would probably be a good one to try it on:
Thanks, in this case it is using the plain TASTE 10 VM in VirtualBox.
Yes, that's what I have to do manually to restore the implementation
If a function in the Interface view that already has an implementation is renamed, the implementation is lost. It stays in the folder with the old implementation name, which is no longer accessible from the interface view.
Preferred behaviour would be to populate the renamed function with the previous implementation.
OK to wait for the next version, this issue can be closed.
InterfaceView version="1.2" asn1file="app_model.acn" UiFile="interfaceview.ui.xml" modifierHash="b87cedc4"
If a function in the Interface view that already has an implementation is renamed, the implementation is lost. It stays in the folder with the old implementation name, which is no longer accessible from the interface view.
Preferred behaviour would be to populate the renamed function with the previous implementation.
Seen in OpenGeode 3.11.1 and 4.1.15
This transition generates illegal Ada:
when 4 =>
-- get_sender(sender) (1,5)
RI_0_get_sender(ctxt.sender);
-- EnqueueTC(newTC) (224,17)
p_0_EnqueueTC(ctxt.newTC);
-- NEXT_STATE - (226,22) at 288, 760
case ctxt.State is
when =>
trId := next_timeslot_0_START;
when others =>
trId := -1;
end case;
Note: in case it is significant, this signal may be received while the FSM is inside a nested state.
Verified fixed
Sending separately by email.
Seen in OpenGeode 3.11.1 and 4.1.15
This transition generates illegal Ada:
when 4 =>
-- get_sender(sender) (1,5)
RI_0_get_sender(ctxt.sender);
-- EnqueueTC(newTC) (224,17)
p_0_EnqueueTC(ctxt.newTC);
-- NEXT_STATE - (226,22) at 288, 760
case ctxt.State is
when =>
trId := next_timeslot_0_START;
when others =>
trId := -1;
end case;
Note: in case it is significant, this signal may be received while the FSM is inside a nested state.