<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def write_waypoint(self, latitude=None, longitude=None, description=None):
 """ Adds a waypoint to the current task declaration. The first and the last waypoint added will be treated as takeoff and landing location, respectively. :: writer.write_waypoint( latitude=(51 + 7.345 / 60.), longitude=(6 + 24.765 / 60.), text='Meiersberg', ) # -> $PFLAC,S,ADDWP,5107345N,00624765E,Meiersberg If no ``latitude`` or ``longitude`` is passed, the fields will be filled with zeros (i.e. unknown coordinates). This however should only be used for takeoff and landing points. :param latitude: latitude of the point (between -90 and 90 degrees) :param longitude: longitude of the point (between -180 and 180 degrees) :param description: arbitrary text description of waypoint """


        if not description:
            description = ''

        latitude = self.format_latitude(latitude)
        longitude = self.format_longitude(longitude)

        self.write_config(
            'ADDWP', '%s,%s,%s' % (latitude, longitude, description[0:50])
        )