DDS C++ - Служба распространения данных

Я начал работать с C#, и я пытаюсь проверить код, который следует для приложения dds. Я взял это из: http://www.laas.fr/files/SLides-A_Corsaro.pdf

using System;
/**********************************************************
 * Definition for the TempSensorType
 **********************************************************/
enum TemperatureScale{
    CELSIUS,
    KELVIN,
    FAHRENHEIT
};
struct TempSensorType{
    short id;
    float temp;
    float hum;
    TemperatureScale scale;
};
#pragma keylist TempSensor id

/**********************************************************
 * Main
 **********************************************************/
static public void Main(string[] args){

    dds::Topic<TempSensorType> tsTopic(TempSensorTopic);
    dds::DataWriter<TempSensorType> dw(tsTopic);
    dds::DataReader<TempSensorType> dr(tsTopic);
    dds::SampleInfoSeq info;

    TempSensorSeq data;
    TempSensorType ts;
    ts = new TempSensorType { 1, 25.0F, 65.0F, CELSIUS };
    dw.write(ts);
    ts = new TempSensorType { 2, 26.0F, 70.0F, CELSIUS };
    dw.write(ts);
    ts = new TempSensorType { 3, 27.0F, 75.0F, CELSIUS };
    dw.write(ts);
    sleep(10);
    while (true){
        dr.read(data, info);
        for (int i = 0; i < data.length(); ++i)
            std::cout << data[i] << std::endl;
        sleep(1);
    }
    Console.WriteLine("Bonjour");
}

Я начинаю понимать назначение каждого куска кода. Но у меня есть сомнения по поводу 4 первых строк в основной части, которые начинаются с "dds::", и я думаю, что они не правы - я получаю "Ожидается идентификатор". Если бы вы могли помочь, это было бы благодарно.

1 ответ

Решение

На мой взгляд, это не действительный код DDS. Кажется, что вы пропустили определение IDL (это должно объяснить #pragma) и код.

Сначала необходимо создать разделы в файле.idl, затем создать идентификатор, чтобы создать классы, которые вы используете в своей программе, а затем использовать программные библиотеки, и все отсутствует.

Начните загружать реализацию DDS, такую ​​как OpenDDS или Fast-RTPS. В дополнение к этому вы можете проверить раздел OpenDDS на этом сайте с рабочего примера OpenDDS с нуля.

Другие вопросы по тегам