Brian M. Ames
and 1 contributors


Rinchi::CIGIPP::MaritimeSurfaceConditionsControl - Perl extension for the Common Image Generator Interface - Maritime Surface Conditions Control data packet. data packet. =head1 SYNOPSIS

  use Rinchi::CIGIPP::MaritimeSurfaceConditionsControl;
  my $msc_ctl = Rinchi::CIGIPP::MaritimeSurfaceConditionsControl->new();

  $packet_type = $msc_ctl->packet_type();
  $packet_size = $msc_ctl->packet_size();
  $entity_ident = $msc_ctl->entity_ident(51957);
  $region_ident = $msc_ctl->region_ident(64233);
  $scope = $msc_ctl->scope(Rinchi::CIGIPP->GlobalScope);
  $whitecap_enable = $msc_ctl->whitecap_enable(Rinchi::CIGIPP->Disable);
  $surface_conditions_enable = $msc_ctl->surface_conditions_enable(Rinchi::CIGIPP->Disable);
  $sea_surface_height = $msc_ctl->sea_surface_height(32.113);
  $surface_water_temperature = $msc_ctl->surface_water_temperature(0.898);
  $surface_clarity = $msc_ctl->surface_clarity(56.091);


The Maritime Surface Conditions Control packet is used to specify the surface behavior for seas and other bodies of water. This packet is used in conjunction with the Weather Control and Wave Control packets to define sea states.

Regional maritime surface conditions always take precedence over the global surface conditions. Once the surface conditions of a region are set, global changes will not affect the surface conditions within that region unless it is disabled. Global changes will, however, contribute to the conditions within a region's transition perimeter.

If two or more regions overlap, the value of each surface condition attribute defining the sea state within the area of overlap should be the average of the values determined by overlapping the regions.

To determine the maritime surface conditions within areas of overlap or through a transition perimeter, the Host can request the conditions at a specific latitude and longitude by issuing an Environmental Conditions Request packet. The Host can request the instantaneous height of the water surface at a specific latitude and longitude by sending a HAT/HOT Request packet.


None by default.


new $msc_ctl = Rinchi::CIGIPP::MaritimeSurfaceConditionsControl->new()

Constructor for Rinchi::MaritimeSurfaceConditionsControl.

sub packet_type()
 $value = $msc_ctl->packet_type();

Data Packet Identifier.

This attribute identifies this data packet as the Maritime Surface Conditions Control packet. The value of this attribute must be 13.

sub packet_size()
 $value = $msc_ctl->packet_size();

Data Packet Size.

This attribute indicates the number of bytes in this data packet. The value of this attribute must be 24.

sub entity_ident([$newValue])
 $value = $msc_ctl->entity_ident($newValue);

Entity ID. (Entity-based Surface Conditions)

This attribute specifies the entity to which the surface attributes in this packet are applied.

sub region_ident([$newValue])
 $value = $msc_ctl->region_ident($newValue);

Region ID. (Regional Surface Conditions)

This attribute specifies the region to which the surface attributes are confined. Note: Entity ID/Region ID is ignored if Scope is set to Global (0).

sub scope([$newValue])
 $value = $msc_ctl->scope($newValue);


This attribute specifies whether this packet is applied globally, applied to a region, or assigned to an entity. If this value is set to Regional (1), the surface condition properties are applied only within the region specified by Region ID. If this value is set to Entity (2), the properties are applied to the area defined by the moving model specified by Entity ID.

    GlobalScope     0
    RegionalScope   1
    EntityScope     2
sub whitecap_enable([$newValue])
 $value = $msc_ctl->whitecap_enable($newValue);

Whitecap Enable.

This attribute determines whether whitecaps are enabled.

    Disable   0
    Enable    1
sub surface_conditions_enable([$newValue])
 $value = $msc_ctl->surface_conditions_enable($newValue);

Surface Conditions Enable.

This attribute determines the state of the specified surface conditions. If this attribute is set to Disable (0), the surface conditions within the region or entity are the same as the global maritime surface conditions. If the attribute is set to Enable (1), the surface conditions are defined by this packet. This attribute is ignored if Scope is set to Global (0).

    Disable   0
    Enable    1
sub sea_surface_height([$newValue])
 $value = $msc_ctl->sea_surface_height($newValue);

Sea Surface Height.

This attribute specifies the height of the water above MSL at equilibrium. This attribute can also be used to specify the tide level within the surf zone.

sub surface_water_temperature([$newValue])
 $value = $msc_ctl->surface_water_temperature($newValue);

Surface Water Temperature.

This attribute specifies in degrees Celsius the water temperature at the surface.

sub surface_clarity([$newValue])
 $value = $msc_ctl->surface_clarity($newValue);

Surface Clarity.

This attribute specifies the clarity of the water at its surface. This is used to control the visual effect of the water's turbidity and sediment type. A value of 100% indicates pristine water. A value of 0% indicates extremely turbid water.

sub pack()
 $value = $msc_ctl->pack();

Returns the packed data packet.

sub unpack()
 $value = $msc_ctl->unpack();

Unpacks the packed data packet.

sub byte_swap()

Byte swaps the packed data packet.


Refer the the Common Image Generator Interface ICD which may be had at this URL:


Brian M. Ames, <>


Copyright (C) 2009 by Brian M. Ames

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.6 or, at your option, any later version of Perl 5 you may have available.

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 88:

'=item' outside of any '=over'

Around line 463:

You forgot a '=back' before '=head1'