# Copyright 2013-2020 BAE Systems, Thales Group, Object Management Group Inc; 2013 Selex ES, DSTO, Atlas Elektronik, EADS Deutschland GmbH # GraphQL Schema for Service PerformSplashSpottingCms # Surveillance radar systems may support engagements against surface targets by # means of a splash spotting video or measured splash positions. In the vicinity of # the target a signal processing is applied which is optimized to observe splashes # of the shells hitting the sea surface. # The splash spotting information may be used to achieve shot corrections for a # running engagement. The engagement may use a fire control channel of the radar # but also of another device like fire control radar. The CMS requests the radar to # localize a splash spotting area at a defined position derived from the target # kinematics. # The use of splash spotting areas may be limited to fire control channels of the # radar. Then, only the localization of a splash spotting area may be done in # accordance with this service. Normally, it shall be localized at the predicted # hitting point. # These splash spotting areas shall not differ in terms of function and performance # so that the selection of the area to be applied to an engagement may be done by # the radar, automatically. The CMS just indicates where to localize it. # If mastership is lost during execution in any of the flows the services are # terminated. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ConfirmRepositionSplashSplottingAreaType { requestId: Int! splashspottingareaid: Int! } # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ConfirmRepositionSplashSplottingAreaInputType { requestId: Int! splashspottingareaid: Int! } # Via this method, the request for the repositioning of a splash spotting area is # confirmed by the subsystem. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ConfirmRepositionSplashSplottingAreaOpType { operation(requestId: ID): [ConfirmRepositionSplashSplottingAreaType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # Via this method, the request for the repositioning of a splash spotting area is # confirmed by the subsystem. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ConfirmRepositionSplashSplottingAreaOpInputType { operation: [ConfirmRepositionSplashSplottingAreaInputType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ConfirmSplashSpottingAreaDeactivationType { requestId: Int! splashspottingareaid: Int! } # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ConfirmSplashSpottingAreaDeactivationInputType { requestId: Int! splashspottingareaid: Int! } # Via this method, the request for the deactivation of a splash spotting area is # confirmed by the subsystem. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ConfirmSplashSpottingAreaDeactivationOpType { operation(requestId: ID): [ConfirmSplashSpottingAreaDeactivationType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # Via this method, the request for the deactivation of a splash spotting area is # confirmed by the subsystem. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ConfirmSplashSpottingAreaDeactivationOpInputType { operation: [ConfirmSplashSpottingAreaDeactivationInputType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ReceiveSplashSplottingAreaPositionType { requestId: Int! splashspottingareaid: Int! } # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ReceiveSplashSplottingAreaPositionInputType { requestId: Int! splashspottingareaid: Int! } # Via this method, the request for a new splash spotting area based on a position # is confirmed by the subsystem. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ReceiveSplashSplottingAreaPositionOpType { operation(requestId: ID): [ReceiveSplashSplottingAreaPositionType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # Via this method, the request for a new splash spotting area based on a position # is confirmed by the subsystem. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ReceiveSplashSplottingAreaPositionOpInputType { operation: [ReceiveSplashSplottingAreaPositionInputType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ReceiveSplashSplottingAreaTrackType { requestId: Int! splashspottingareaid: Int! } # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ReceiveSplashSplottingAreaTrackInputType { requestId: Int! splashspottingareaid: Int! } # Via this method, the request for a new splash spotting area based on a track is # confirmed by the subsystem. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ReceiveSplashSplottingAreaTrackOpType { operation(requestId: ID): [ReceiveSplashSplottingAreaTrackType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # Via this method, the request for a new splash spotting area based on a track is # confirmed by the subsystem. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ReceiveSplashSplottingAreaTrackOpInputType { operation: [ReceiveSplashSplottingAreaTrackInputType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } enum CoordinateKindType { CARTESIAN POLAR WGS84 } # Coordinates in a Cartesian reference frame as described by a coordinate # specification object # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type CartesianPositionType { xCoordinate: Float! # Optional as some sensors are 2D (horizontal plane or no elevation information) zCoordinate: Float yCoordinate: Float! } # Coordinates in a Cartesian reference frame as described by a coordinate # specification object # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input CartesianPositionInputType { xCoordinate: Float! # Optional as some sensors are 2D (horizontal plane or no elevation information) zCoordinate: Float yCoordinate: Float! } # Coordinate in the WGS84 reference system. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type Wgs84PositionType { # Optional as some sensors as 2D (work in horizontal plane) and some other # functions do not supply or require this information either. heightCoordinate: Float latitudeCoordinate: Float! longitudeCoordinate: Float! } # Coordinate in the WGS84 reference system. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input Wgs84PositionInputType { # Optional as some sensors as 2D (work in horizontal plane) and some other # functions do not supply or require this information either. heightCoordinate: Float latitudeCoordinate: Float! longitudeCoordinate: Float! } # Coordinates in a polar reference frame as a described by a coordinate # specification object # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type PolarPositionType { azimuthCoordinate: Float! # Optional as some sensors provide no elevation information elevationCoordinate: Float # Optional as some sensor provide no range information (e.g. most passive sensors) rangeCoordinate: Float # Specifies the origin from which to interpret the polar position. This attribute # is optional as the origin can be implicitly specified according to the value of # the applicable coordinate specification enumeration. origin: Wgs84PositionType } # Coordinates in a polar reference frame as a described by a coordinate # specification object # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input PolarPositionInputType { azimuthCoordinate: Float! # Optional as some sensors provide no elevation information elevationCoordinate: Float # Optional as some sensor provide no range information (e.g. most passive sensors) rangeCoordinate: Float # Specifies the origin from which to interpret the polar position. This attribute # is optional as the origin can be implicitly specified according to the value of # the applicable coordinate specification enumeration. origin: Wgs84PositionInputType } # To offer flexibility, three variants of coordinate system representation are # supported - corresponding to the coordinate_kind_type enumerate. An # implementation should support one kind for each relevant interface as defined by # the coordinate_specification_type value, and it should only send data of that # variant and it should check that all data received is of that variant. It should # not implement conversion of data in an unexpected variant. Receipt of such data # constitutes an error in the operation of the interface. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS union PositionCoordinateType = CartesianPositionType | PolarPositionType | Wgs84PositionType # To offer flexibility, three variants of coordinate system representation are # supported - corresponding to the coordinate_kind_type enumerate. An # implementation should support one kind for each relevant interface as defined by # the coordinate_specification_type value, and it should only send data of that # variant and it should check that all data received is of that variant. It should # not implement conversion of data in an unexpected variant. Receipt of such data # constitutes an error in the operation of the interface. # Exactly one of the optional attributes is to be supplied in each input object. # This type has the same semantics as the corresponding query object type. # Input objects with zero or more than one attributes present are erroneous and should be rejected. input PositionCoordinateInputType { : CoordinateKindType! cartesianPosition: CartesianPositionInputType polarPosition: PolarPositionInputType wgs84Position: Wgs84PositionInputType } # A figure_ref_point specifies a reference point for a figure. # This reference point is a mathematically meaningful point of the figure. For a # circle it is the centre of the circle, for a polygon it is the centre of gravity # of the polygon, etc. # When rotating the figure, the figure_ref_point acts as the rotation point. # When a figure is not slaved to a track its figure_ref_point shall be mapped on a # (moving) geo point. # When the figure is slaved to an object (track, point) its figure_ref_point shall # be mapped on an offset position which is relative to the master object. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type FigureRefPointType { position: PositionCoordinateType! Id: Int! } # A figure_ref_point specifies a reference point for a figure. # This reference point is a mathematically meaningful point of the figure. For a # circle it is the centre of the circle, for a polygon it is the centre of gravity # of the polygon, etc. # When rotating the figure, the figure_ref_point acts as the rotation point. # When a figure is not slaved to a track its figure_ref_point shall be mapped on a # (moving) geo point. # When the figure is slaved to an object (track, point) its figure_ref_point shall # be mapped on an offset position which is relative to the master object. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input FigureRefPointInputType { position: PositionCoordinateInputType! Id: Int! } # A truncated_sector specifies a 2D area in a horizontal plane by means of its # origin, its centre bearing with its bearing delta, and its inner range and outer # range, that together define the truncated sector. # The origin is the figure reference point of the truncated sector. # In case the truncated sector is north oriented, the centre bearing is specified # with respect to true north; otherwise (object oriented) it is specified with # respect to the object's (own ship/other track, point) heading/course. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type TruncatedSectorType { # This attribute specifies the horizontal angle measured clockwise between the # Y-axis of the relevant coordinate system (true north, heading/course) and the # centre bearing line of the truncated sector. centreBearing: Float! # This attribute specifies the bearing delta on each side of a centre bearing line. deltaBearing: Float! # This attribute specifies the range that limits a truncated sector; i.e. the # minimum distance from the truncated sector's origin. innerRange: Float! # This attribute specifies the range that limits a truncated sector; i.e. the # maximum distance from the truncated sector's origin. outerRange: Float! origin: FigureRefPointType } # A truncated_sector specifies a 2D area in a horizontal plane by means of its # origin, its centre bearing with its bearing delta, and its inner range and outer # range, that together define the truncated sector. # The origin is the figure reference point of the truncated sector. # In case the truncated sector is north oriented, the centre bearing is specified # with respect to true north; otherwise (object oriented) it is specified with # respect to the object's (own ship/other track, point) heading/course. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input TruncatedSectorInputType { # This attribute specifies the horizontal angle measured clockwise between the # Y-axis of the relevant coordinate system (true north, heading/course) and the # centre bearing line of the truncated sector. centreBearing: Float! # This attribute specifies the bearing delta on each side of a centre bearing line. deltaBearing: Float! # This attribute specifies the range that limits a truncated sector; i.e. the # minimum distance from the truncated sector's origin. innerRange: Float! # This attribute specifies the range that limits a truncated sector; i.e. the # maximum distance from the truncated sector's origin. outerRange: Float! origin: FigureRefPointInputType } # Definition of a single splash spotting area. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type SplashSpottingAreaType { # Shape and size of the splash spotting area shape: TruncatedSectorType! # Area ID of the splash spotting area. areaId: Int! } # Definition of a single splash spotting area. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input SplashSpottingAreaInputType { # Shape and size of the splash spotting area shape: TruncatedSectorInputType! # Area ID of the splash spotting area. areaId: Int! } # A set consisting of splash spotting areas. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type SplashSpottingAreaSetType { splashSpottingAreaDescriptor: [SplashSpottingAreaType!] } # A set consisting of splash spotting areas. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input SplashSpottingAreaSetInputType { splashSpottingAreaDescriptor: [SplashSpottingAreaInputType!] } # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ReportSplashSpottingAreaActivationStateType { requestId: Int! splashspottingareaset: SplashSpottingAreaSetType! } # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ReportSplashSpottingAreaActivationStateInputType { requestId: Int! splashspottingareaset: SplashSpottingAreaSetInputType! } # Via this interface, the splash spotting areas are reported to the CMS. # The query type for retrieving operations on interface Perform_Splash_Spotting_CMS type ReportSplashSpottingAreaActivationStateOpType { operation(requestId: ID): [ReportSplashSpottingAreaActivationStateType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # Via this interface, the splash spotting areas are reported to the CMS. # The corresponding input type for invoking operations on interface Perform_Splash_Spotting_CMS input ReportSplashSpottingAreaActivationStateOpInputType { operation: [ReportSplashSpottingAreaActivationStateInputType!] # The elements of subsystem name list should correspond to those in the set of operations. subsystemName: [ID!] } # Union of all operations for retrieval on the Perform_Splash_Spotting_CMS interface. union PerformSplashSpottingCmsUnionType = ConfirmRepositionSplashSplottingAreaOpType | ConfirmSplashSpottingAreaDeactivationOpType | ReceiveSplashSplottingAreaPositionOpType | ReceiveSplashSplottingAreaTrackOpType | ReportSplashSpottingAreaActivationStateOpType # Set of all operations for invocation on the Perform_Splash_Spotting_CMS interface. # Exactly one attribute option to be supplied per object; a mutation can contain multiple objects. # To supply zero or more than one option is erroneous and should be rejected. input PerformSplashSpottingCmsMutationOptionsType { confirmRepositionSplashSplottingArea: ConfirmRepositionSplashSplottingAreaOpInputType confirmSplashSpottingAreaDeactivation: ConfirmSplashSpottingAreaDeactivationOpInputType receiveSplashSplottingAreaPosition: ReceiveSplashSplottingAreaPositionOpInputType receiveSplashSplottingAreaTrack: ReceiveSplashSplottingAreaTrackOpInputType reportSplashSpottingAreaActivationState: ReportSplashSpottingAreaActivationStateOpInputType } # Data for all operations that can be retrieved on the Perform_Splash_Spotting_CMS interface. type PerformSplashSpottingCmsObjectType { data(subsystemName: ID, simulated: Boolean): [PerformSplashSpottingCmsUnionType!] } # Data to invoke operations on the Perform_Splash_Spotting_CMS interface. type PerformSplashSpottingCmsMutationType{ PerformSplashSpottingCms( data: [PerformSplashSpottingCmsMutationOptionsType!] ): Boolean } # Schema to define the entry points for the Perform_Splash_Spotting_CMS interface. schema PerformSplashSpottingCms { # Query to retrieve all operations on the Perform_Splash_Spotting_CMS interface. query: PerformSplashSpottingCmsObjectType # Mutation to invoke all operations on the Perform_Splash_Spotting_CMS interface. mutation: PerformSplashSpottingCmsMutationType # Subscription to be informed of all operations on the Perform_Splash_Spotting_CMS interface. subscription: PerformSplashSpottingCmsObjectType }