Package ais :: Module ais_msg_3
[hide private]
[frames] | no frames]

Module ais_msg_3

source code

Autogenerated python functions to serialize/deserialize binary messages.

Generated by: ./aisxmlbinmsg2py.py

Need to then wrap these functions with the outer AIS packet and then convert the whole binary blob to a NMEA string. Those functions are not currently provided in this file.

serialize: python to ais binary deserialize: ais binary to python

The generated code uses translators.py, binary.py, and aisstring.py which should be packaged with the resulting files.


Requires:

Author: xmlbinmsg

Version: 4791

Status: under development

License: Generated code has no license

Classes [hide private]
  Testposition
Use testvalue tag text from each type to build test case the position message

Functions [hide private]
BitVector encode(params, validate=False)
Create a position binary message payload to pack into an AIS Msg position.
dict decode(bv, validate=False)
Unpack a position message
  decodeMessageID(bv, validate=False)
  decodeRepeatIndicator(bv, validate=False)
  decodeUserID(bv, validate=False)
  decodeNavigationStatus(bv, validate=False)
  decodeROT(bv, validate=False)
  decodeSOG(bv, validate=False)
  decodePositionAccuracy(bv, validate=False)
  decodePosition_longitude(bv, validate=False)
  decodePosition_latitude(bv, validate=False)
  decodeCOG(bv, validate=False)
  decodeTrueHeading(bv, validate=False)
  decodeTimeStamp(bv, validate=False)
  decodeRegionalReserved(bv, validate=False)
  decodeSpare(bv, validate=False)
  decodeRAIM(bv, validate=False)
  decodesyncstate(bv, validate=False)
  decodeslotoffset(bv, validate=False)
stdout printFields(params, out=sys.stdout, format='std')
Print a position message to stdout.
dict testParams()
Return a params file base on the testvalue tags.
  addMsgOptions(parser)

Variables [hide private]
  __date__ = '2007-01-04'
Date of last svn commit
  TrueBV = <ais.BitVector.BitVector object at 0x20af290>
Why always rebuild the True bit? This should speed things up a bunch
  FalseBV = <ais.BitVector.BitVector object at 0x20af170>
Why always rebuild the False bit? This should speed things up a bunch
  RepeatIndicatorEncodeLut = {'default': '0', 'do not repeat any more': '3'}
  RepeatIndicatorDecodeLut = {'0': 'default', '3': 'do not repeat any more'}
  NavigationStatusEncodeLut = {'engaged in fishing': '7', 'moored': '5', 'not defi...
  NavigationStatusDecodeLut = {'11': 'reserved for future use', '10': 'reserved fo...
  SOGEncodeLut = {'102.2 knots or higher': '102.2'}
  SOGDecodeLut = {'102.2': '102.2 knots or higher'}
  PositionAccuracyEncodeLut = {'low (greater than 10 m)': '0', 'high (greater than...
  PositionAccuracyDecodeLut = {'1': 'high (greater than 10 m)', '0': 'low (greater...
  TimeStampEncodeLut = {'dead reckoning': '62', 'inoperative': '63', 'not a...
  TimeStampDecodeLut = {'60': 'not available/default', '61': 'manual input'...
  RAIMEncodeLut = {'in use': 'True', 'not in use': 'False'}
  RAIMDecodeLut = {'True': 'in use', 'False': 'not in use'}
  syncstateEncodeLut = {'UTC indirect': '1', 'UTC direct': '0', 'synchroniz...
  syncstateDecodeLut = {'1': 'UTC indirect', '0': 'UTC direct', '3': 'synch...
  typeChoices = 'binary', 'nmeapayload', 'nmea'
  outputChoices = 'std', 'html', 'xml'
  outfile = file(options.outputFileName, 'w')
  msgDict = {'MessageID': '3', 'RepeatIndicator': options.Repeat...
  bitLen = len(bits)
  bits = bits+ BitVector(size= (6-(bitLen % 6)))

Function Details [hide private]

encode(params, validate=False)

source code 

Create a position binary message payload to pack into an AIS Msg position.

Fields in params:
  • MessageID(uint): AIS message number. Must be 1 (field automatically set to "3")
  • RepeatIndicator(uint): Indicated how many times a message has been repeated
  • UserID(uint): Unique ship identification number (MMSI)
  • NavigationStatus(uint): What is the vessel doing
  • ROT(int): RateOfTurn
  • SOG(udecimal): Speed over ground
  • PositionAccuracy(uint): Accuracy of positioning fixes
  • Position_longitude(decimal): Location of the vessel East West location
  • Position_latitude(decimal): Location of the vessel North South location
  • COG(udecimal): Course over ground
  • TrueHeading(uint): True heading (relative to true North)
  • TimeStamp(uint): UTC second when the report was generated
  • RegionalReserved(uint): Reserved for definition by a regional authority. (field automatically set to "0")
  • Spare(uint): Reserved for definition by a regional authority. (field automatically set to "0")
  • RAIM(bool): Receiver autonomous integrity monitoring flag
  • syncstate(uint): Sycronization state
  • slotoffset(uint): In what slot will the next transmission occur. BROKEN
Parameters:
  • params - Dictionary of field names/values. Throws a ValueError exception if required is missing
  • validate - Set to true to cause checking to occur. Runs slower. FIX: not implemented.
Returns: BitVector
encoded binary message (for binary messages, this needs to be wrapped in a msg 8

Note: The returned bits may not be 6 bit aligned. It is up to you to pad out the bits.

decode(bv, validate=False)

source code 

Unpack a position message

Fields in params:
  • MessageID(uint): AIS message number. Must be 1 (field automatically set to "3")
  • RepeatIndicator(uint): Indicated how many times a message has been repeated
  • UserID(uint): Unique ship identification number (MMSI)
  • NavigationStatus(uint): What is the vessel doing
  • ROT(int): RateOfTurn
  • SOG(udecimal): Speed over ground
  • PositionAccuracy(uint): Accuracy of positioning fixes
  • Position_longitude(decimal): Location of the vessel East West location
  • Position_latitude(decimal): Location of the vessel North South location
  • COG(udecimal): Course over ground
  • TrueHeading(uint): True heading (relative to true North)
  • TimeStamp(uint): UTC second when the report was generated
  • RegionalReserved(uint): Reserved for definition by a regional authority. (field automatically set to "0")
  • Spare(uint): Reserved for definition by a regional authority. (field automatically set to "0")
  • RAIM(bool): Receiver autonomous integrity monitoring flag
  • syncstate(uint): Sycronization state
  • slotoffset(uint): In what slot will the next transmission occur. BROKEN
Parameters:
  • bv (BitVector) - Bits defining a message
  • validate - Set to true to cause checking to occur. Runs slower. FIX: not implemented.
Returns: dict
params

decodeMessageID(bv, validate=False)

source code 
None

decodeRepeatIndicator(bv, validate=False)

source code 
None

decodeUserID(bv, validate=False)

source code 
None

decodeNavigationStatus(bv, validate=False)

source code 
None

decodeROT(bv, validate=False)

source code 
None

decodeSOG(bv, validate=False)

source code 
None

decodePositionAccuracy(bv, validate=False)

source code 
None

decodePosition_longitude(bv, validate=False)

source code 
None

decodePosition_latitude(bv, validate=False)

source code 
None

decodeCOG(bv, validate=False)

source code 
None

decodeTrueHeading(bv, validate=False)

source code 
None

decodeTimeStamp(bv, validate=False)

source code 
None

decodeRegionalReserved(bv, validate=False)

source code 
None

decodeSpare(bv, validate=False)

source code 
None

decodeRAIM(bv, validate=False)

source code 
None

decodesyncstate(bv, validate=False)

source code 
None

decodeslotoffset(bv, validate=False)

source code 
None

printFields(params, out=sys.stdout, format='std')

source code 

Print a position message to stdout.

Fields in params:
  • MessageID(uint): AIS message number. Must be 1 (field automatically set to "3")
  • RepeatIndicator(uint): Indicated how many times a message has been repeated
  • UserID(uint): Unique ship identification number (MMSI)
  • NavigationStatus(uint): What is the vessel doing
  • ROT(int): RateOfTurn
  • SOG(udecimal): Speed over ground
  • PositionAccuracy(uint): Accuracy of positioning fixes
  • Position_longitude(decimal): Location of the vessel East West location
  • Position_latitude(decimal): Location of the vessel North South location
  • COG(udecimal): Course over ground
  • TrueHeading(uint): True heading (relative to true North)
  • TimeStamp(uint): UTC second when the report was generated
  • RegionalReserved(uint): Reserved for definition by a regional authority. (field automatically set to "0")
  • Spare(uint): Reserved for definition by a regional authority. (field automatically set to "0")
  • RAIM(bool): Receiver autonomous integrity monitoring flag
  • syncstate(uint): Sycronization state
  • slotoffset(uint): In what slot will the next transmission occur. BROKEN
Parameters:
  • params - Dictionary of field names/values.
  • out - File like object to write to
Returns: stdout
text to out

testParams()

source code 
Return a params file base on the testvalue tags.
Returns: dict
params based on testvalue tags

addMsgOptions(parser)

source code 
None

Variables Details [hide private]

__date__

Date of last svn commit
Value:
'2007-01-04'                                                           
      

TrueBV

Why always rebuild the True bit? This should speed things up a bunch
Value:
<ais.BitVector.BitVector object at 0x20af290>                          
      

FalseBV

Why always rebuild the False bit? This should speed things up a bunch
Value:
<ais.BitVector.BitVector object at 0x20af170>                          
      

RepeatIndicatorEncodeLut

None
Value:
{'default': '0', 'do not repeat any more': '3'}                        
      

RepeatIndicatorDecodeLut

None
Value:
{'0': 'default', '3': 'do not repeat any more'}                        
      

NavigationStatusEncodeLut

None
Value:
{'aground': '6',
 'at anchor': '1',
 'constrained by her draught': '4',
 'engaged in fishing': '7',
 'moored': '5',
 'not defined = default': '15',
 'not under command': '2',
 'reserved for future use': '14',
...                                                                    
      

NavigationStatusDecodeLut

None
Value:
{'0': 'under way using engine',
 '1': 'at anchor',
 '10': 'reserved for future use',
 '11': 'reserved for future use',
 '12': 'reserved for future use',
 '13': 'reserved for future use',
 '14': 'reserved for future use',
 '15': 'not defined = default',
...                                                                    
      

SOGEncodeLut

None
Value:
{'102.2 knots or higher': '102.2'}                                     
      

SOGDecodeLut

None
Value:
{'102.2': '102.2 knots or higher'}                                     
      

PositionAccuracyEncodeLut

None
Value:
{'low (greater than 10 m)': '0', 'high (greater than 10 m)': '1'}      
      

PositionAccuracyDecodeLut

None
Value:
{'1': 'high (greater than 10 m)', '0': 'low (greater than 10 m)'}      
      

TimeStampEncodeLut

None
Value:
{'dead reckoning': '62',
 'inoperative': '63',
 'manual input': '61',
 'not available/default': '60'}                                        
      

TimeStampDecodeLut

None
Value:
{'60': 'not available/default',
 '61': 'manual input',
 '62': 'dead reckoning',
 '63': 'inoperative'}                                                  
      

RAIMEncodeLut

None
Value:
{'in use': 'True', 'not in use': 'False'}                              
      

RAIMDecodeLut

None
Value:
{'True': 'in use', 'False': 'not in use'}                              
      

syncstateEncodeLut

None
Value:
{'UTC direct': '0',
 'UTC indirect': '1',
 'synchronized to a base station': '2',
 'synchronized to another station': '3'}                               
      

syncstateDecodeLut

None
Value:
{'0': 'UTC direct',
 '1': 'UTC indirect',
 '2': 'synchronized to a base station',
 '3': 'synchronized to another station'}                               
      

typeChoices

None
Value:
'binary', 'nmeapayload', 'nmea'                                        
      

outputChoices

None
Value:
'std', 'html', 'xml'                                                   
      

outfile

None
Value:
file(options.outputFileName, 'w')                                      
      

msgDict

None
Value:
{'MessageID': '3', 'RepeatIndicator': options.RepeatIndicatorField, 'U
serID': options.UserIDField, 'NavigationStatus': options.NavigationSta
tusField, 'ROT': options.ROTField, 'SOG': options.SOGField, 'PositionA
ccuracy': options.PositionAccuracyField, 'Position_longitude': options
.Position_longitudeField, 'Position_latitude': options.Position_latitu
deField, 'COG': options.COGField, 'TrueHeading': options.TrueHeadingFi
eld, 'TimeStamp': options.TimeStampField, 'RegionalReserved': '0', 'Sp
are': '0', 'RAIM': options.RAIMField, 'syncstate': options.syncstateFi
...                                                                    
      

bitLen

None
Value:
len(bits)                                                              
      

bits

None
Value:
bits+ BitVector(size= (6-(bitLen % 6)))