gtfs_example_write.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/usr/bin/python3.6
  2. #
  3. from google.transit import gtfs_realtime_pb2
  4. from google.transit import gtfs_realtime_pb2 as gtfspb
  5. import urllib.request
  6. import sys
  7. print("ok")
  8. print(gtfs_realtime_pb2)
  9. def gtfs_vehicle_position(vp = None):
  10. if vp is None:
  11. vp = gtfspb.VehiclePosition()
  12. vp.trip.trip_id = "trip_ok"
  13. vp.trip.route_id = "route_ok"
  14. vp.trip.direction_id = 0
  15. vp.trip.start_time = "start_time_ok"
  16. vp.trip.start_date = "start_date_ok"
  17. vp.trip.schedule_relationship = gtfspb.TripDescriptor.ScheduleRelationship.SCHEDULED
  18. vp.stop_id = "x"
  19. vp.current_stop_sequence = 3
  20. vp.current_status = gtfspb.VehiclePosition.VehicleStopStatus.INCOMING_AT
  21. vp.timestamp = 123
  22. vp.congestion_level = gtfspb.VehiclePosition.CongestionLevel.UNKNOWN_CONGESTION_LEVEL
  23. vp.occupancy_status = gtfspb.VehiclePosition.OccupancyStatus.NO_DATA_AVAILABLE
  24. vp.occupancy_percentage = 0
  25. vp.vehicle.id = "9999"
  26. vp.vehicle.label = "label_ok"
  27. vp.vehicle.license_plate = "unknown"
  28. vp.position.latitude = 0
  29. vp.position.longitude = 0
  30. vp.position.bearing = 90
  31. vp.position.odometer = 0
  32. vp.position.speed = 0
  33. #vp.position = p
  34. return vp
  35. def gtfs_alert():
  36. a = gtfspb.Alert()
  37. return a
  38. def gtfs_trip_update():
  39. u = gtfspb.TripUpdate()
  40. return u
  41. def gtfs_feed_entity(f = None):
  42. if f is None:
  43. f = gtfspb.FeedEntity()
  44. f.id = "ok"
  45. gtfs_vehicle_position(f.vehicle)
  46. return f
  47. def gtfs_feed_message(fm = None):
  48. if fm is None:
  49. fm = gtfspb.FeedMessage()
  50. fm.header.gtfs_realtime_version = "2.0"
  51. fm.header.timestamp = 0
  52. for i in range(2):
  53. gtfs_feed_entity(fm.entity.add())
  54. return fm
  55. feedmsg = gtfs_realtime_pb2.FeedMessage()
  56. #vp = gtfs_realtime_pb2.VehiclePosition()
  57. vp = gtfs_vehicle_position()
  58. vp.stop_id = "ok"
  59. print(">>>\n", vp)
  60. fe = gtfs_feed_entity()
  61. print("feed entity>>>\n", fe)
  62. feedmsg = gtfs_feed_message()
  63. print("feed message>>>\n", feedmsg)
  64. fp = open("outpy.pb", "wb")
  65. fp.write(feedmsg.SerializeToString())
  66. fp.close()