@Hider998

Почему при запуске таймера крашится QML?

Для опроса модема используется таймер на стороне QML. Каждые 30 мс он посылает запрос в спец.класс SerialPort и ответ записывает в консоль.
Код QML
Timer {
        id: timer1
        interval: 30
        repeat: true
        running: false

        onTriggered: {
            consile.append(sePort.readDataPort());
        }
    }
...
   ToolButton {
            id: callBt
            x: 10
            y: 0
            width: 50
            height: 50
            text: "Connect"
            Layout.rowSpan: 1
            Layout.fillWidth: false
            Layout.fillHeight: true
            transformOrigin: Item.Center
            antialiasing: false
            smooth: false
            scale: 1
            tooltip: "Connect"
            iconSource: "images/connect.png"
            iconName: "connect.png"
            visible: true
            anchors.verticalCenterOffset: 0
            anchors.verticalCenter: parent.verticalCenter
            action: Action{
                shortcut: "Ctrl + F5"
                onTriggered: {
                    sePort.openPort();
                    if(sePort.stance() === true){
                        timer1.start();    // Скорее всего ошибка именно здесь, если убрать эту строчку остальное работает.
                        consile.append("Соединение установлено");
                        stance.text = "Соединение: Подключено"
                        stance.color = "Green"
                    } else {
                        consile.append("Ошибка соединения");
                        stance.text = "Соединение: Не соединено"
                        stance.color = "Black"
                    }
                }
            }
        }
ToolButton {
            id: discallBt
            x: 70
            width: 50
            height: 50
            text: "Disconnect"
            iconSource: "images/disconnect.png"
            tooltip: "Disconnect"
            Layout.fillHeight: true
            action: Action{
                shortcut: "Ctrl + F5"
                onTriggered: {
                    sePort.closePort();
                    if (sePort.stance() !== true){
                        <b>timer1.stop();</b>
                        stance.text = "Соединение: Не соединено"
                        stance.color = "Black"
                    }
                    consile.text = "";
                }
            }
        }

При нажатии кнопки callBt программа крашится без разъяснений.
При отладке показывает Segmentation Fault.
Не могу понять, в чем дело. Подскажите, плз. Заранее спасибо.
  • Вопрос задан
  • 187 просмотров
Пригласить эксперта
Ответы на вопрос 1
PavelK
@PavelK
А как объект передаёте в QML ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы