sourceafParrotSdk2::NetworkConfig.fan

using inet::IpAddr

** Default network configuration when communicating with the drone.
const class NetworkConfig {
    
    ** The drone's IP address.
    const IpAddr    droneIpAddr         := IpAddr("192.168.1.1")

    
    
    // ---- Drone Comms Ports ----
    // taken from ARDrone_SDK_2_0_1/ARDroneLib/Soft/Common/config.h
    
    ** Used to retrieve 'version.txt' on drone connect. 
    const Int   ftpPort             := 5551 // FTP

    // Not used
//  const Int   authPort            := 5552 // AUTH
    
    ** The TCP port that Record Video is streamed over.
    const Int   videoRecPort        := 5553 // VIDEO_RECORDER
    
    ** The UDP port that NavData packets are received on.
    const Int   navDataPort         := 5554 // NAVDATA
    
    ** The TCP port that Video data is streamed over.
    const Int   videoPort           := 5555 // VIDEO

    ** The UDP port that Command packets are transmitted on.
    const Int   cmdPort             := 5556 // AT
    
    // Not used
//  const Int   capturePort         := 5557 // CAPTURE

    // Not used
//  const Int   printfPort          := 5558 // PRINTF
    
    ** The port that TCP config data is received on.
    const Int   controlPort         := 5559 // CONTROL

    
    
    // ---- Interval and Timeouts ----
    
    ** The interval to wait in between sending repeated commands to the drone, such as 'takeOff' 
    ** or 'moveLeft'. 
    const Duration  cmdInterval             := 25ms
    
    ** The timeout used when waiting for a config command acknowledgement.
    ** See 'NavDataFlags.controlCommandAck'.
    const Duration  configCmdAckTimeout     := 1sec

    ** The timeout used when waiting for the config command acknowledgement flag to clear.
    ** See 'NavDataFlags.controlCommandAck'.
    const Duration  configCmdAckClearTimeout:= 1sec

    ** The timeout used when opening a TCP connection.
    const Duration  tcpConnectTimeout       := 2sec
    
    ** The timeout used when waiting to receive data on a TCP port.
    const Duration  tcpReceiveTimeout       := 2sec
    
    ** The timeout used when waiting to receive data on a FTP port.
    const Duration  ftpConnectTimeout       := 2sec
    
    ** The timeout used when waiting to receive data on a TCP port.
    const Duration  ftpReceiveTimeout       := 2sec
    
    ** The timeout used when waiting to receive data on a UDP port.
    const Duration  udpReceiveTimeout       := 1sec
    
    ** The timeout used when waiting for actions to complete, such as 'takeOff' or 'hover'.
    const Duration  actionTimeout           := 10sec
    
    // ----
    
    ** Standard it-block ctor should you wish to change any config.
    ** 
    ** pre>
    ** syntax: fantom
    ** config := DroneConfig {
    **     it.droneIpAddr = "2.121.135.58"
    ** }
    ** <pre
    new make(|This|? f := null) { f?.call(this) }

}