From: ganesh.ramasivan@gdcanada.com (Ganesh Ramasivan)
Subject: Re: Variant records..
Date: 17 Feb 2004 06:56:50 -0800
Date: 2004-02-17T06:56:50-08:00 [thread overview]
Message-ID: <e8f9995c.0402170656.45b1aa3d@posting.google.com> (raw)
In-Reply-To: x7vwu6mwzm5.fsf@smaug.pushface.org
Simon Wright <simon@pushface.org> wrote in message news:<x7vwu6mwzm5.fsf@smaug.pushface.org>...
> ganesh.ramasivan@gdcanada.com (Ganesh Ramasivan) writes:
>
> > type RADAR_TYPE_CHOICE is (RADAR_A, RADAR_B, RADAR_C);
> >
> > type RADAR_A_COMMAND_CHOICE is (RADAR_A_STATE,
> > RADAR_A_MODE,
> > RADAR_A_DISPLAY_RANGE_SELECT);
> >
> > type RADAR_B_COMMAND_CHOICE is (RADAR_B_STATE,
> > RADAR_B_MODE,
> > RADAR_B_DISPLAY_RANGE_SELECT);
> >
> > type RADAR_C_COMMAND_CHOICE is (RADAR_C_STATE,
> > RADAR_C_MODE,
> > RADAR_C_DISPLAY_RANGE_SELECT);
>
> I would say you seem to have a basic concept Radar with a set of
> Commands that might apply to any Radar, and three instances of Radar.
>
> type Radar_Kind is (Radar_A, Radar_B, Radar_C);
> type Radar_Command is (State, Mode, Display_Range_Select);
>
> I can see that you might have different sets of states for Radar_A
> than those for Radar_B, but so far your code doesn't say that.
>
> > type RADAR_CHOICE(RADAR_TYPE : RADAR_TYPE_CHOICE :=
> > RADAR_TYPE_CHOICE'FIRST) is
> > record
> > case RADAR_TYPE is
> > when RADAR_A =>
> > null;
> > when RADAR_B =>
> > null;
> > when RADAR_C =>
> > null;
> > end case;
> > end record;
> >
> > How would I specify a variant record which will only allow me to
> > select RADAR_A for the RADAR_TYPE_CHOICE and RADAR_A_STATE for the
> > command choice but not RADAR_C_STATE?
>
> I don't see any command choice here?
>
> I don't really grasp why you want this Radar_Choice thing, perhaps it
> would help if you could say what you would like to appear in the
> places you've marked 'null' ... is it
>
> type RADAR_CHOICE
> (RADAR_TYPE : RADAR_TYPE_CHOICE := RADAR_TYPE_CHOICE'FIRST) is
> record
> case RADAR_TYPE is
> when RADAR_A =>
> Radar_A_Command : Radar_A_Command_Choice;
> when RADAR_B =>
> Radar_B_Command : Radar_B_Command_Choice;
> when RADAR_C =>
> Radar_C_Command : Radar_C_Command_Choice;
> end case;
> end record;
>
>
>
> Sorry that I'm querying your design intent rather than your actual
> question, I haven't understood the question properly!
Sorry. I should not have put in null there.
type RADAR_TYPE_CHOICE is (RADAR_A, RADAR_B);
type RADAR_A_COMMAND_CHOICE is (RADAR_A_STATE,
RADAR_A_MODE,
RADAR_A_DISPLAY_RANGE_SELECT);
type RADAR_B_COMMAND_CHOICE is (RADAR_B_STATE,
RADAR_B_MODE,
RADAR_B_DISPLAY_RANGE_SELECT);
type RADAR_A_COMMAND_TYPE
(RADAR_COMMAND : RADAR_A_COMMAND_CHOICE :=
RADAR_A_COMMAND_CHOICE'FIRST) is
record
case RADAR_COMMAND is
when RADAR_A_DISPLAY_RANGE_SELECT =>
< a whole bunch of operations...>
when others =>
null;
end case;
end record;
type RADAR_B_COMMAND_TYPE
(RADAR_COMMAND : RADAR_B_COMMAND_CHOICE :=
RADAR_B_COMMAND_CHOICE'FIRST) is
record
case RADAR_COMMAND is
when RADAR_B_DISPLAY_RANGE_SELECT =>
< a whole bunch of operations...>
when others =>
null;
end case;
end record;
type RADAR_CHOICE
(RADAR_TYPE : RADAR_TYPE_CHOICE := RADAR_TYPE_CHOICE'FIRST) is
record
case RADAR_TYPE is
when RADAR_A =>
RADAR_A_COMMAND : RADAR_A_COMMAND_CHOICE(????)
when RADAR_B =>
RADAR_B_COMMAND : RADAR_B_COMMAND_CHOICE(????)
end case;
end record;
Anyways, in the case above, how can I pass a second discriminant. This
is because I need to be able to select a particular command for a
particular radar.
Sorry for not having said this in the first place.
Ganesh
next prev parent reply other threads:[~2004-02-17 14:56 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-02-15 22:51 Variant records Ganesh Ramasivan
2004-02-16 10:57 ` Preben Randhol
2004-02-16 15:25 ` Ganesh Ramasivan
2004-02-16 15:46 ` Ludovic Brenta
2004-02-16 16:16 ` Preben Randhol
2004-02-17 14:37 ` Ganesh Ramasivan
2004-02-17 15:43 ` Preben Randhol
2004-02-16 16:59 ` Ganesh Ramasivan
2004-02-16 20:14 ` Simon Wright
2004-02-17 14:56 ` Ganesh Ramasivan [this message]
2004-02-17 15:31 ` Robert I. Eachus
2004-02-16 23:17 ` tmoran
-- strict thread matches above, loose matches on Subject: below --
1999-09-14 0:00 Variant Records Shawn Barber
1999-09-14 0:00 ` David C. Hoos, Sr.
1999-09-14 0:00 ` Matthew Heaney
1999-09-14 0:00 ` Mark Lundquist
1986-10-31 9:08 variant records Dean Luick
1986-11-03 14:17 ` Bev Sobelman
1986-11-05 16:35 ` stuart
1986-11-06 15:40 ` stt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox