Module new
[hide private]
[frames] | no frames]

Module new

source code

Create new objects of various types. Deprecated.

This module is no longer required except for backward compatibility. Objects of most types can now be created by calling the type object.


Author: xmlbinmsg

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.
source code
dict
decode(bv, validate=False)
Unpack a position message
source code
 
decodeMessageID(bv, validate=False) source code
 
decodeRepeatIndicator(bv, validate=False) source code
 
decodeUserID(bv, validate=False) source code
 
decodeNavigationStatus(bv, validate=False) source code
 
decodeROT(bv, validate=False) source code
 
decodeSOG(bv, validate=False) source code
 
decodePositionAccuracy(bv, validate=False) source code
 
decodePosition_longitude(bv, validate=False) source code
 
decodePosition_latitude(bv, validate=False) source code
 
decodeCOG(bv, validate=False) source code
 
decodeTrueHeading(bv, validate=False) source code
 
decodeTimeStamp(bv, validate=False) source code
 
decodeRegionalReserved(bv, validate=False) source code
 
decodeSpare(bv, validate=False) source code
 
decodeRAIM(bv, validate=False) source code
 
decodesyncstate(bv, validate=False) source code
 
decodeslottimeout(bv, validate=False) source code
 
decodeslotoffset(bv, validate=False) source code
 
printHtml(params, out=sys.stdout) source code
 
printKml(params, out=sys.stdout)
KML (Keyhole Markup Language) for Google Earth, but without the header/footer
source code
stdout
printFields(params, out=sys.stdout, format='std', fieldList=None, dbType='postgres')
Print a slotoffset message to stdout.
source code
str
sqlCreateStr(outfile=sys.stdout, fields=None, extraFields=None, addCoastGuardFields=True, dbType='postgres')
Return the SQL CREATE command for this message type
source code
sqlhelp.create
sqlCreate(fields=None, extraFields=None, addCoastGuardFields=True, dbType='postgres')
Return the sqlhelp object to create the table.
source code
str
sqlInsertStr(params, outfile=sys.stdout, extraParams=None, dbType='postgres')
Return the SQL INSERT command for this message type
source code
sqlhelp.insert
sqlInsert(params, extraParams=None, dbType='postgres')
Give the SQL INSERT statement
source code
dict
testParams()
Return a params file base on the testvalue tags.
source code
 
addMsgOptions(parser) source code
Variables [hide private]
  __version__ = '$Revision: 4791 $'.split() [1]
  __date__ = '$Date: 2007-02-08 $'.split() [1]
  __doc__ = ...
  TrueBV = BitVector(bitstring= "1")
Why always rebuild the True bit? This should speed things up a bunch
  FalseBV = BitVector(bitstring= "0")
Why always rebuild the False bit? This should speed things up a bunch
  fieldList = 'MessageID', 'RepeatIndicator', 'UserID', 'Navigat...
  fieldListPostgres = 'MessageID', 'RepeatIndicator', 'UserID', ...
  toPgFields = {'Position_longitude': 'Position', 'Position_lati...
Go to the Postgis field names from the straight field name
  fromPgFields = {'Position':('Position_longitude', 'Position_la...
Go from the Postgis field names to the straight field name
  pgTypes = {'Position': 'POINT',}
Lookup table for each postgis field name to get its type.
  RepeatIndicatorEncodeLut = {'default': '0', 'do not repeat any...
  RepeatIndicatorDecodeLut = {'0': 'default', '3': 'do not repea...
  NavigationStatusEncodeLut = {'under way using engine': '0', 'a...
  NavigationStatusDecodeLut = {'0': 'under way using engine', '1...
  SOGEncodeLut = {'102.2 knots or higher': '102.2',}
  SOGDecodeLut = {'102.2': '102.2 knots or higher',}
  PositionAccuracyEncodeLut = {'low (greater than 10 m)': '0', '...
  PositionAccuracyDecodeLut = {'0': 'low (greater than 10 m)', '...
  TimeStampEncodeLut = {'not available/default': '60', 'manual i...
  TimeStampDecodeLut = {'60': 'not available/default', '61': 'ma...
  RAIMEncodeLut = {'not in use': 'False', 'in use': 'True',}
  RAIMDecodeLut = {'False': 'not in use', 'True': 'in use',}
  syncstateEncodeLut = {'UTC direct': '0', 'UTC indirect': '1', ...
  syncstateDecodeLut = {'0': 'UTC direct', '1': 'UTC indirect', ...
  slottimeoutEncodeLut = {'Last frame in this slot': '0', '1 fra...
  slottimeoutDecodeLut = {'0': 'Last frame in this slot', '1': '...
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 "1")
  • 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): Not used. Should be set to zero. (field automatically set to "0")
  • RAIM(bool): Receiver autonomous integrity monitoring flag
  • syncstate(uint): Sycronization state
  • slottimeout(uint): Frames remaining until a new slot is selected
  • 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 "1")
  • 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): Not used. Should be set to zero. (field automatically set to "0")
  • RAIM(bool): Receiver autonomous integrity monitoring flag
  • syncstate(uint): Sycronization state
  • slottimeout(uint): Frames remaining until a new slot is selected
  • 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

printFields(params, out=sys.stdout, format='std', fieldList=None, dbType='postgres')

source code 

Print a slotoffset message to stdout.

Fields in params:
  • MessageID(uint): AIS message number. Must be 1 (field automatically set to "1")
  • 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): Not used. Should be set to zero. (field automatically set to "0")
  • RAIM(bool): Receiver autonomous integrity monitoring flag
  • syncstate(uint): Sycronization state
  • slottimeout(uint): Frames remaining until a new slot is selected
  • 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

sqlCreateStr(outfile=sys.stdout, fields=None, extraFields=None, addCoastGuardFields=True, dbType='postgres')

source code 
Return the SQL CREATE command for this message type
Parameters:
  • outfile - file like object to print to.
  • fields - which fields to put in the create. Defaults to all.
  • extraFields - A sequence of tuples containing (name,sql type) for additional fields
  • addCoastGuardFields (bool) - Add the extra fields that come after the NMEA check some from the USCG N-AIS format
  • dbType - Which flavor of database we are using so that the create is tailored ('sqlite' or 'postgres')
Returns: str
sql create string

See Also: sqlCreate

sqlCreate(fields=None, extraFields=None, addCoastGuardFields=True, dbType='postgres')

source code 
Return the sqlhelp object to create the table.
Parameters:
  • fields - which fields to put in the create. Defaults to all.
  • extraFields - A sequence of tuples containing (name,sql type) for additional fields
  • addCoastGuardFields (bool) - Add the extra fields that come after the NMEA check some from the USCG N-AIS format
  • dbType - Which flavor of database we are using so that the create is tailored ('sqlite' or 'postgres')
Returns: sqlhelp.create
An object that can be used to generate a return

sqlInsertStr(params, outfile=sys.stdout, extraParams=None, dbType='postgres')

source code 
Return the SQL INSERT command for this message type
Parameters:
  • params - dictionary of values keyed by field name
  • outfile - file like object to print to.
  • extraParams - A sequence of tuples containing (name,sql type) for additional fields
Returns: str
sql create string

See Also: sqlCreate

sqlInsert(params, extraParams=None, dbType='postgres')

source code 
Give the SQL INSERT statement
Parameters:
  • params - dict keyed by field name of values
  • extraParams - any extra fields that you have created beyond the normal ais message fields
Returns: sqlhelp.insert
insert class instance

To Do: allow optional type checking of params?

Warning: this will take invalid keys happily and do what???

testParams()

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

Variables Details [hide private]

__doc__

Value:
'''

Autogenerated python functions to serialize/deserialize binary message\
s.

Generated by: ./aisxmlbinmsg2py.py

Need to then wrap these functions with the outer AIS packet and then
...

fieldList

Value:
'MessageID', 'RepeatIndicator', 'UserID', 'NavigationStatus', 'ROT', '\
SOG', 'PositionAccuracy', 'Position_longitude', 'Position_latitude', '\
COG', 'TrueHeading', 'TimeStamp', 'RegionalReserved', 'Spare', 'RAIM',\
 'syncstate', 'slottimeout', 'slotoffset',

fieldListPostgres

Value:
'MessageID', 'RepeatIndicator', 'UserID', 'NavigationStatus', 'ROT', '\
SOG', 'PositionAccuracy', 'Position', 'COG', 'TrueHeading', 'TimeStamp\
', 'RegionalReserved', 'Spare', 'RAIM', 'syncstate', 'slottimeout', 's\
lotoffset',

toPgFields

Go to the Postgis field names from the straight field name
Value:
{'Position_longitude': 'Position', 'Position_latitude': 'Position',}

fromPgFields

Go from the Postgis field names to the straight field name
Value:
{'Position':('Position_longitude', 'Position_latitude',),}

RepeatIndicatorEncodeLut

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

RepeatIndicatorDecodeLut

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

NavigationStatusEncodeLut

Value:
{'under way using engine': '0', 'at anchor': '1', 'not under command':\
 '2', 'restricted maneuverability': '3', 'constrained by her draught':\
 '4', 'moored': '5', 'aground': '6', 'engaged in fishing': '7', 'under\
 way sailing': '8', 'reserved for future use (hazmat)': '9', 'reserved\
 for future use': '10', 'reserved for future use': '11', 'reserved for\
 future use': '12', 'reserved for future use': '13', 'reserved for fut\
ure use': '14', 'not defined = default': '15',}

NavigationStatusDecodeLut

Value:
{'0': 'under way using engine', '1': 'at anchor', '2': 'not under comm\
and', '3': 'restricted maneuverability', '4': 'constrained by her drau\
ght', '5': 'moored', '6': 'aground', '7': 'engaged in fishing', '8': '\
under way sailing', '9': 'reserved for future use (hazmat)', '10': 're\
served for future use', '11': 'reserved for future use', '12': 'reserv\
ed for future use', '13': 'reserved for future use', '14': 'reserved f\
or future use', '15': 'not defined = default',}

PositionAccuracyEncodeLut

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

PositionAccuracyDecodeLut

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

TimeStampEncodeLut

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

TimeStampDecodeLut

Value:
{'60': 'not available/default', '61': 'manual input', '62': 'dead reck\
oning', '63': 'inoperative',}

syncstateEncodeLut

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

syncstateDecodeLut

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

slottimeoutEncodeLut

Value:
{'Last frame in this slot': '0', '1 frames left': '1', '2 frames left'\
: '2', '3 frames left': '3', '4 frames left': '4', '5 frames left': '5\
', '6 frames left': '6', '7 frames left': '7',}

slottimeoutDecodeLut

Value:
{'0': 'Last frame in this slot', '1': '1 frames left', '2': '2 frames \
left', '3': '3 frames left', '4': '4 frames left', '5': '5 frames left\
', '6': '6 frames left', '7': '7 frames left',}