/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 80 || length > 816) { throw new AisMessageException("Message 17 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(2); Pos = new Position(); Pos.Longitude = sixState.Get(18) * 10; Pos.Latitude = sixState.Get(17) * 10; Spare2 = (int)sixState.Get(5); MsgType = (int)sixState.Get(6); StationId = (int)sixState.Get(10); ZCount = (int)sixState.Get(13); SeqNum = (int)sixState.Get(3); NumWords = (int)sixState.Get(5); Health = (int)sixState.Get(3); Data = sixState; }
/// <summary> /// Parse sixbit message /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public void Parse(Sixbit sixState) { if (sixState.BitLength < 19) { throw new AisMessageException("SOTDMA wrong length"); } SyncState = (char)sixState.Get(2); SlotTimeout = (char)sixState.Get(3); SubMessage = (int)sixState.Get(14); }
public void Parse(Sixbit sixState) { if (sixState.BitLength < 19) { throw new AisMessageException("ITDMA wrong length"); } SyncState = (char)sixState.Get(2); SlotInc = (int)sixState.Get(13); NumSlots = (char)sixState.Get(3); KeepFlag = (char)sixState.Get(1); }
static void test_sixbit(Sixbit ais_sixbit) { int msgid; long mmsi; msgid = (int)ais_sixbit.Get(6); ais_sixbit.Get(2); mmsi = ais_sixbit.Get(30); /*out.printf("Length = %d\n", ais_sixbit.length()); * out.printf("msgid = %d\n", msgid); * out.printf("mmsi = %d\n", mmsi);*/ }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void parse(Sixbit six_state) throws SixbitsExhaustedException, AISMessageException public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 2 wrong length"); } base.Parse(sixState); /* Parse the Message 2 */ SlotTimeout = (int)sixState.Get(3); SubMessage = (int)sixState.Get(14); }
/// <summary> /// Parse sixbit message /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 72) { throw new AisMessageException("Message 10 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(2); Destination = sixState.Get(30); Spare2 = (int)sixState.Get(2); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: public void parse(Sixbit six_state) throws SixbitsExhaustedException, AISMessageException public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 3 wrong length"); } base.Parse(sixState); // Parse the Message 3 SlotIncrement = (int)sixState.Get(13); NumSlots = (int)sixState.Get(3); Keep = (int)sixState.Get(1); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 96 || length > 144) { throw new AisMessageException("Message 16 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(2); DestIdA = sixState.Get(30); OffsetA = (int)sixState.Get(12); IncrementA = (int)sixState.Get(10); NumCmds = 1; if (length == 144) { DestIdB = sixState.Get(30); OffsetB = (int)sixState.Get(12); IncrementB = (int)sixState.Get(10); Spare2 = (int)sixState.Get(4); NumCmds = 2; } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 56 || length > 1008) { throw new AisMessageException("Message 8 wrong length"); } base.Parse(sixState); Spare = (int)sixState.Get(2); AppId = (int)sixState.Get(16); /* Store the remaining payload of the packet for further processing */ Data = sixState; }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 72 || length > 1008) { throw new AisMessageException("Message 12 wrong length"); } base.Parse(sixState); Sequence = (int)sixState.Get(2); Destination = sixState.Get(30); Retransmit = (int)sixState.Get(1); Spare = (int)sixState.Get(1); Message = sixState.GetString((length - 72) / 6); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength < 88 || sixState.BitLength > 1008) { throw new AisMessageException("Message 6 wrong length"); } base.Parse(sixState); Sequence = (int)sixState.Get(2); Destination = sixState.Get(30); Retransmit = (int)sixState.Get(1); Spare = (int)sixState.Get(1); AppId = (int)sixState.Get(16); /* Store the remaining payload of the packet for further processing */ Data = sixState; }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 424) { throw new AisMessageException("Message 5 wrong length"); } base.Parse(sixState); Version = (int)sixState.Get(2); Imo = sixState.Get(30); Callsign = sixState.GetString(7); Name = sixState.GetString(20); ShipType = (int)sixState.Get(8); DimBow = (int)sixState.Get(9); DimStern = (int)sixState.Get(9); DimPort = (int)sixState.Get(6); DimStarboard = (int)sixState.Get(6); PosType = (int)sixState.Get(4); Eta = sixState.Get(20); Draught = (int)sixState.Get(8); Dest = sixState.GetString(20); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 40 || length > 1008) { throw new AisMessageException("Message 14 wrong length"); } base.Parse(sixState); Spare = (int)sixState.Get(2); Message = sixState.GetString((length - 40) / 6); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 72 || length > 168) { throw new AisMessageException("Message 7 wrong length"); } base.Parse(sixState); Spare = (int)sixState.Get(2); Destid1 = sixState.Get(30); Sequence1 = (int)sixState.Get(2); NumAcks = 1; if (length > 72) { Destid2 = sixState.Get(30); Sequence2 = (int)sixState.Get(2); NumAcks++; } if (length > 104) { Destid3 = sixState.Get(30); Sequence3 = (int)sixState.Get(2); NumAcks++; } if (length > 136) { Destid4 = sixState.Get(30); Sequence4 = (int)sixState.Get(2); NumAcks++; } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length != 160 && length != 168) { throw new AisMessageException("Message 24 wrong length"); } base.Parse(sixState); PartNumber = (int)sixState.Get(2); if (PartNumber == 0) { /* Parse 24A */ /* Get the Ship Name, convert to ASCII */ Name = sixState.GetString(20); /* Indicate reception of part A */ Flags |= 0x01; } else if (PartNumber == 1) { /* Parse 24B */ ShipType = (int)sixState.Get(8); VendorId = sixState.GetString(7); Callsign = sixState.GetString(7); DimBow = (int)sixState.Get(9); DimStern = (int)sixState.Get(9); DimPort = (int)sixState.Get(6); DimStarboard = (int)sixState.Get(6); Spare = (int)sixState.Get(6); /* Indicate reception of part A */ Flags |= 0x02; } else { throw new AisMessageException("Unknown Message 24 Part #"); } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 312) { throw new AisMessageException("Message 19 wrong length"); } base.Parse(sixState); Regional1 = (int)sixState.Get(8); Sog = (int)sixState.Get(10); PosAcc = (int)sixState.Get(1); Pos = new Position { Longitude = sixState.Get(28), Latitude = sixState.Get(27) }; Cog = (int)sixState.Get(12); TrueHeading = (int)sixState.Get(9); UtcSec = (int)sixState.Get(6); Regional2 = (int)sixState.Get(4); Name = sixState.GetString(20); ShipType = (int)sixState.Get(8); DimBow = (int)sixState.Get(9); DimStern = (int)sixState.Get(9); DimPort = (int)sixState.Get(6); DimStarboard = (int)sixState.Get(6); PosType = (int)sixState.Get(4); Raim = (int)sixState.Get(1); Dte = (int)sixState.Get(1); Spare = (int)sixState.Get(5); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 22 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(1); ChannelA = (int)sixState.Get(12); ChannelB = (int)sixState.Get(12); TxrxMode = (int)sixState.Get(4); Power = (int)sixState.Get(1); var neLongitude = sixState.Get(18); var neLatitude = sixState.Get(17); var swLongitude = sixState.Get(18); var swLatitude = sixState.Get(17); Addressed = (int)sixState.Get(1); BwA = (int)sixState.Get(1); BwB = (int)sixState.Get(1); TzSize = (int)sixState.Get(3); // Is the position actually an address? if (Addressed == 1) { // Convert the positions to addresses Addressed1 = (neLongitude << 12) + (neLatitude >> 5); Addressed2 = (swLongitude << 12) + (swLatitude >> 5); } else { NePos = new Position { Longitude = neLongitude * 10, Latitude = neLatitude * 10 }; SwPos = new Position { Longitude = swLongitude * 10, Latitude = swLatitude * 10 }; } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength == 168) { throw new AisMessageException("Message 23 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(2); NePos = new Position { Longitude = (int)sixState.Get(18) * 10, Latitude = (int)sixState.Get(17) * 10 }; SwPos = new Position { Longitude = (int)sixState.Get(18) * 10, Latitude = (int)sixState.Get(17) * 10 }; StationType = (int)sixState.Get(4); ShipType = (int)sixState.Get(8); Spare2 = sixState.Get(22); TxrxMode = (int)sixState.Get(2); ReportInterval = (int)sixState.Get(4); QuietTime = (int)sixState.Get(4); Spare3 = (int)sixState.Get(6); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 72 || length > 162) { throw new AisMessageException("Message 20 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(2); Offset1 = (int)sixState.Get(12); Slots1 = (int)sixState.Get(4); Timeout1 = (int)sixState.Get(3); Increment1 = (int)sixState.Get(11); NumCmds = 1; if (length > 72) { Offset2 = (int)sixState.Get(12); Slots2 = (int)sixState.Get(4); Timeout2 = (int)sixState.Get(3); Increment2 = (int)sixState.Get(11); NumCmds = 2; } if (length > 104) { Offset3 = (int)sixState.Get(12); Slots3 = (int)sixState.Get(4); Timeout3 = (int)sixState.Get(3); Increment3 = (int)sixState.Get(11); NumCmds = 3; } if (length > 136) { Offset4 = (int)sixState.Get(12); Slots4 = (int)sixState.Get(4); Timeout4 = (int)sixState.Get(3); Increment4 = (int)sixState.Get(11); NumCmds = 4; } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 5 wrong length"); } base.Parse(sixState); UtcYear = (int)sixState.Get(14); UtcMonth = (int)sixState.Get(4); UtcDay = (int)sixState.Get(5); UtcHour = (int)sixState.Get(5); UtcMinute = (int)sixState.Get(6); UtcSecond = (int)sixState.Get(6); PosAcc = (int)sixState.Get(1); Pos = new Position(); Pos.Longitude = sixState.Get(28); Pos.Latitude = sixState.Get(27); PosType = (int)sixState.Get(4); Spare = (int)sixState.Get(10); Raim = (int)sixState.Get(1); SyncState = (int)sixState.Get(2); SlotTimeout = (int)sixState.Get(3); SubMessage = (int)sixState.Get(14); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 9 wrong length"); } base.Parse(sixState); Altitude = (int)sixState.Get(12); Sog = (int)sixState.Get(10); PosAcc = (int)sixState.Get(1); Pos = new Position { Longitude = sixState.Get(28), Latitude = sixState.Get(27) }; Cog = (int)sixState.Get(12); UtcSec = (int)sixState.Get(6); Regional = (char)sixState.Get(8); Dte = (char)sixState.Get(1); Spare = (char)sixState.Get(3); Assigned = (char)sixState.Get(1); Raim = (char)sixState.Get(1); CommState = (char)sixState.Get(1); if (CommState == 0) { SotdmaState = new Sotdma(sixState); } else { ItdmaState = new Itdma(sixState); } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> public virtual void Parse(Sixbit sixState) { Repeat = (int)sixState.Get(2); UserId = sixState.Get(30); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 272 || length > 360) { throw new AisMessageException("Message 21 wrong length"); } base.Parse(sixState); AtonType = (int)sixState.Get(5); Name = sixState.GetString(20); PosAcc = (int)sixState.Get(1); Pos = new Position { Longitude = sixState.Get(28), Latitude = sixState.Get(27) }; DimBow = (int)sixState.Get(9); DimStern = (int)sixState.Get(9); DimPort = (int)sixState.Get(6); DimStarboard = (int)sixState.Get(6); PosType = (int)sixState.Get(4); UtcSec = (int)sixState.Get(6); OffPosition = (int)sixState.Get(1); Regional = (int)sixState.Get(8); Raim = (int)sixState.Get(1); VirtualRenamed = (int)sixState.Get(1); Assigned = (int)sixState.Get(1); Spare1 = (int)sixState.Get(1); if (length > 272) { NameExt = sixState.GetString((length - 272) / 6); } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 11 wrong length"); } base.Parse(sixState); /* Parse the Message 11 */ UtcYear = (int)sixState.Get(14); UtcMonth = (int)sixState.Get(4); UtcDay = (int)sixState.Get(5); UtcHour = (int)sixState.Get(5); UtcMinute = (int)sixState.Get(6); UtcSecond = (int)sixState.Get(6); PosAcc = (int)sixState.Get(1); Pos = new Position { Longitude = sixState.Get(28), Latitude = sixState.Get(27) }; PosType = (int)sixState.Get(4); Spare = (int)sixState.Get(10); Raim = (int)sixState.Get(1); SotdmaState = new Sotdma(); SotdmaState.Parse(sixState); }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { if (sixState.BitLength != 168) { throw new AisMessageException("Message 18 wrong length"); } base.Parse(sixState); Regional1 = (int)sixState.Get(8); Sog = (int)sixState.Get(10); PosAcc = (int)sixState.Get(1); Pos = new Position(); Pos.Longitude = sixState.Get(28); Pos.Latitude = sixState.Get(27); Cog = (int)sixState.Get(12); TrueHeading = (int)sixState.Get(9); UtcSec = (int)sixState.Get(6); Regional2 = (int)sixState.Get(2); UnitFlag = (int)sixState.Get(1); DisplayFlag = (int)sixState.Get(1); DscFlag = (int)sixState.Get(1); BandFlag = (int)sixState.Get(1); Msg22Flag = (int)sixState.Get(1); ModeFlag = (int)sixState.Get(1); Raim = (int)sixState.Get(1); CommState = (int)sixState.Get(1); if (CommState == 0) { SotdmaState = new Sotdma(sixState); } else { ItdmaState = new Itdma(sixState); } }
/// <summary> /// Subclasses need to override with their own parsing method /// </summary> /// <param name="sixState"></param> /// <exception cref="SixbitsExhaustedException"></exception> /// <exception cref="AisMessageException"></exception> public override void Parse(Sixbit sixState) { var length = sixState.BitLength; if (length < 88 || length > 162) { throw new AisMessageException("Message 15 wrong length"); } base.Parse(sixState); Spare1 = (int)sixState.Get(2); Destid1 = sixState.Get(30); MsgId1_1 = (int)sixState.Get(6); Offset1_1 = (int)sixState.Get(12); NumReqs = 1; if (length > 88) { Spare2 = (int)sixState.Get(2); MsgId1_2 = (int)sixState.Get(6); Offset1_2 = (int)sixState.Get(12); NumReqs = 2; } if (length == 160) { Spare3 = (int)sixState.Get(2); Destid2 = sixState.Get(30); MsgId2_1 = (int)sixState.Get(6); Offset2_1 = (int)sixState.Get(12); Spare4 = (int)sixState.Get(2); NumReqs = 3; } }