当前位置: 首页>>代码示例>>C++>>正文


C++ AP_SerialManager::find_serial方法代码示例

本文整理汇总了C++中AP_SerialManager::find_serial方法的典型用法代码示例。如果您正苦于以下问题:C++ AP_SerialManager::find_serial方法的具体用法?C++ AP_SerialManager::find_serial怎么用?C++ AP_SerialManager::find_serial使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在AP_SerialManager的用法示例。


在下文中一共展示了AP_SerialManager::find_serial方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: init

// init - perform require initialisation including detecting which protocol to use
void AP_Frsky_Telem::init(const AP_SerialManager& serial_manager)
{
    // check for FRSky_DPort
    if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FRSky_DPort, 0))) {
        _protocol = FrSkyDPORT;
        _initialised_uart = true;   // SerialManager initialises uart for us
    } else if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FRSky_SPort, 0))) {
        // check for FRSky_SPort
        _protocol = FrSkySPORT;
        _gps_call = 0;
        _fas_call = 0;
        _vario_call = 0 ;
        _various_call = 0 ;
        _gps_data_ready = false;
        _battery_data_ready = false;
        _baro_data_ready = false;
        _mode_data_ready = false;
        _sats_data_ready = false;
        _sport_status = 0;
        hal.scheduler->register_io_process(AP_HAL_MEMBERPROC(&AP_Frsky_Telem::sport_tick));
    }

    if (_port != NULL) {
        // we don't want flow control for either protocol
        _port->set_flow_control(AP_HAL::UARTDriver::FLOW_CONTROL_DISABLE);
    }
}
开发者ID:0919061,项目名称:ardupilot,代码行数:28,代码来源:AP_Frsky_Telem.cpp

示例2: init

/*
 * init - perform required initialisation
 * for Copter
 */
void AP_Frsky_Telem::init(const AP_SerialManager &serial_manager, const char *firmware_str, const uint8_t mav_type, AP_Float *fs_batt_voltage, AP_Float *fs_batt_mah, uint32_t *ap_value, int32_t *home_distance, int32_t *home_bearing)
{
    // check for protocol configured for a serial port - only the first serial port with one of these protocols will then run (cannot have FrSky on multiple serial ports)
    if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FrSky_D, 0))) {
        _protocol = AP_SerialManager::SerialProtocol_FrSky_D; // FrSky D protocol (D-receivers)
    } else if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FrSky_SPort, 0))) {
        _protocol = AP_SerialManager::SerialProtocol_FrSky_SPort; // FrSky SPort protocol (X-receivers)
    } else if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FrSky_SPort_Passthrough, 0))) {
        _protocol = AP_SerialManager::SerialProtocol_FrSky_SPort_Passthrough; // FrSky SPort and SPort Passthrough (OpenTX) protocols (X-receivers)
        // add firmware and frame info to message queue
        queue_message(MAV_SEVERITY_INFO, firmware_str);
        // save main parameters locally
        _params.mav_type = mav_type; // frame type (see MAV_TYPE in Mavlink definition file common.h)
        _params.fs_batt_voltage = fs_batt_voltage; // failsafe battery voltage in volts
        _params.fs_batt_mah = fs_batt_mah; // failsafe reserve capacity in mAh
        _ap.value = ap_value; // ap bit-field
        _ap.home_distance = home_distance;
        _ap.home_bearing = home_bearing;
    }
    
    if (_port != NULL) {
        hal.scheduler->register_io_process(FUNCTOR_BIND_MEMBER(&AP_Frsky_Telem::tick, void));
        // we don't want flow control for either protocol
        _port->set_flow_control(AP_HAL::UARTDriver::FLOW_CONTROL_DISABLE);
    }
开发者ID:Metello,项目名称:ardupilot,代码行数:29,代码来源:AP_Frsky_Telem.cpp

示例3: init

/*
 * init - perform required initialisation
 */
void AP_Frsky_Telem::init(const AP_SerialManager &serial_manager, const char *firmware_str, const uint8_t mav_type, const AP_Float *fs_batt_voltage, const AP_Float *fs_batt_mah, const uint32_t *ap_valuep)
{
    // check for protocol configured for a serial port - only the first serial port with one of these protocols will then run (cannot have FrSky on multiple serial ports)
    if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FrSky_D, 0))) {
        _protocol = AP_SerialManager::SerialProtocol_FrSky_D; // FrSky D protocol (D-receivers)
    } else if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FrSky_SPort, 0))) {
        _protocol = AP_SerialManager::SerialProtocol_FrSky_SPort; // FrSky SPort protocol (X-receivers)
    } else if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_FrSky_SPort_Passthrough, 0))) {
        _protocol = AP_SerialManager::SerialProtocol_FrSky_SPort_Passthrough; // FrSky SPort and SPort Passthrough (OpenTX) protocols (X-receivers)
        // make frsky_telemetry available to GCS_MAVLINK (used to queue statustext messages from GCS_MAVLINK)
        gcs().register_frsky_telemetry_callback(this);
        // add firmware and frame info to message queue
        queue_message(MAV_SEVERITY_INFO, firmware_str);
        // save main parameters locally
        _params.mav_type = mav_type; // frame type (see MAV_TYPE in Mavlink definition file common.h)
        _params.fs_batt_voltage = fs_batt_voltage; // failsafe battery voltage in volts
        _params.fs_batt_mah = fs_batt_mah; // failsafe reserve capacity in mAh
        if (ap_valuep == nullptr) { // ap bit-field
            _ap.value = 0x2000; // set "initialised" to 1 for rover and plane
            _ap.valuep = &_ap.value;
        } else {
            _ap.valuep = ap_valuep;
        }
    }
    
    if (_port != nullptr) {
        hal.scheduler->register_io_process(FUNCTOR_BIND_MEMBER(&AP_Frsky_Telem::tick, void));
        // we don't want flow control for either protocol
        _port->set_flow_control(AP_HAL::UARTDriver::FLOW_CONTROL_DISABLE);
    }
开发者ID:FantasyJXF,项目名称:ardupilot,代码行数:33,代码来源:AP_Frsky_Telem.cpp

示例4: init

/// Startup initialisation.
void AP_GPS::init(DataFlash_Class *dataflash, const AP_SerialManager& serial_manager)
{
    _DataFlash = dataflash;
    primary_instance = 0;

    // search for serial ports with gps protocol
    _port[0] = serial_manager.find_serial(AP_SerialManager::SerialProtocol_GPS, 0);

#if GPS_MAX_INSTANCES > 1
    _port[1] = serial_manager.find_serial(AP_SerialManager::SerialProtocol_GPS, 1);
    _last_instance_swap_ms = 0;
#endif
}
开发者ID:Bjarne-Madsen,项目名称:ardupilot,代码行数:14,代码来源:AP_GPS.cpp

示例5: detect

/*
   The constructor also initialises the rangefinder. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the rangefinder
*/
AP_RangeFinder_LeddarOne::AP_RangeFinder_LeddarOne(RangeFinder::RangeFinder_State &_state,
                                                   AP_SerialManager &serial_manager) :
    AP_RangeFinder_Backend(_state)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Lidar, 0);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Lidar, 0));
    }
}
开发者ID:BrendanSmith,项目名称:ardupilot,代码行数:14,代码来源:AP_RangeFinder_LeddarOne.cpp

示例6: detect

/*
   The constructor also initialises the rangefinder. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the rangefinder
*/
AP_RangeFinder_uLanding::AP_RangeFinder_uLanding(RangeFinder::RangeFinder_State &_state,
                                                 AP_SerialManager &serial_manager) :
    AP_RangeFinder_Backend(_state)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Aerotenna_uLanding, 0);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Aerotenna_uLanding, 0));
    }
}
开发者ID:LanderU,项目名称:ardupilot,代码行数:14,代码来源:AP_RangeFinder_uLanding.cpp

示例7: init

void AP_Mount_Alexmos::init(const AP_SerialManager& serial_manager)
{
    // check for alexmos protcol
    if ((_port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_AlexMos, 0))) {
        _initialised = true;
        get_boardinfo();
        read_params(0); //we request parameters for profile 0 and therfore get global and profile parameters
    }
}
开发者ID:CUAir,项目名称:ardupilot,代码行数:9,代码来源:AP_Mount_Alexmos.cpp

示例8:

// constructor
AP_Beacon_Pozyx::AP_Beacon_Pozyx(AP_Beacon &frontend, AP_SerialManager &serial_manager) :
    AP_Beacon_Backend(frontend),
    linebuf_len(0)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Beacon, 0);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Beacon, 0));
    }
}
开发者ID:ArduPilot,项目名称:ardupilot,代码行数:10,代码来源:AP_Beacon_Pozyx.cpp

示例9:

// init - performs any required initialisation for this instance
void AP_Mount_SToRM32_serial::init(const AP_SerialManager& serial_manager)
{
    _port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_SToRM32, 0);
    if (_port) {
        _initialised = true;
        set_mode((enum MAV_MOUNT_MODE)_state._default_mode.get());
    }

}
开发者ID:CUAir,项目名称:ardupilot,代码行数:10,代码来源:AP_Mount_SToRM32_serial.cpp

示例10: init

void Network::init(const AP_SerialManager& serial_manager){
	port = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Network, 0);
#if HAL_NETWORK_DEFAULT == HAL_NETWORK_ESP8266
	driver = new Network_esp8266(*this, port);
#else
	driver = NULL;
#endif
	memset (read_buffer,'\0',READ_BUFFER_SIZE);
	memset (send_buffer,'\0',SEND_BUFFER_SIZE);
}
开发者ID:tommp,项目名称:SARGoose,代码行数:10,代码来源:network.cpp

示例11: detect

/*
   The constructor also initialises the rangefinder. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the rangefinder
*/
AP_RangeFinder_LeddarOne::AP_RangeFinder_LeddarOne(RangeFinder::RangeFinder_State &_state,
                                                   AP_SerialManager &serial_manager,
                                                   uint8_t serial_instance) :
    AP_RangeFinder_Backend(_state)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance));
    }
}
开发者ID:Benbenbeni,项目名称:ardupilot-1,代码行数:15,代码来源:AP_RangeFinder_LeddarOne.cpp

示例12: detect

/* 
   The constructor also initialises the proximity sensor. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the proximity sensor
*/
AP_Proximity_LightWareSF40C::AP_Proximity_LightWareSF40C(AP_Proximity &_frontend,
                                                         AP_Proximity::Proximity_State &_state,
                                                         AP_SerialManager &serial_manager) :
    AP_Proximity_Backend(_frontend, _state)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Lidar360, 0);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Lidar360, 0));
    }
}
开发者ID:ArmaJo,项目名称:ardupilot,代码行数:15,代码来源:AP_Proximity_LightWareSF40C.cpp

示例13: detect

/*
   The constructor also initialises the rangefinder. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the rangefinder
*/
AP_RangeFinder_uLanding::AP_RangeFinder_uLanding(RangeFinder &_ranger, uint8_t instance,
                                                             RangeFinder::RangeFinder_State &_state,
                                                             AP_SerialManager &serial_manager) :
    AP_RangeFinder_Backend(_ranger, instance, _state, MAV_DISTANCE_SENSOR_RADAR)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Aerotenna_uLanding, 0);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Aerotenna_uLanding, 0));
    }
}
开发者ID:CUAir,项目名称:ardupilot,代码行数:15,代码来源:AP_RangeFinder_uLanding.cpp

示例14: detect

/* 
   The constructor also initialises the rangefinder. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the rangefinder
*/
AP_RangeFinder_MaxsonarSerialLV::AP_RangeFinder_MaxsonarSerialLV(RangeFinder &_ranger, uint8_t instance,
                                                                 RangeFinder::RangeFinder_State &_state,
                                                                 AP_SerialManager &serial_manager) :
    AP_RangeFinder_Backend(_ranger, instance, _state)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Lidar, 0);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Lidar, 0));
    }
}
开发者ID:IISAR,项目名称:ardupilot,代码行数:15,代码来源:AP_RangeFinder_MaxsonarSerialLV.cpp

示例15: detect

/* 
   The constructor also initialises the rangefinder. Note that this
   constructor is not called until detect() returns true, so we
   already know that we should setup the rangefinder
*/
AP_RangeFinder_LightWareSerial::AP_RangeFinder_LightWareSerial(RangeFinder::RangeFinder_State &_state,
                                                               AP_RangeFinder_Params &_params,
                                                               AP_SerialManager &serial_manager,
                                                               uint8_t serial_instance) :
    AP_RangeFinder_Backend(_state, _params)
{
    uart = serial_manager.find_serial(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance);
    if (uart != nullptr) {
        uart->begin(serial_manager.find_baudrate(AP_SerialManager::SerialProtocol_Rangefinder, serial_instance));
    }
}
开发者ID:jyl58,项目名称:ardupilot,代码行数:16,代码来源:AP_RangeFinder_LightWareSerial.cpp


注:本文中的AP_SerialManager::find_serial方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。