码迷,mamicode.com
首页 > 其他好文 > 详细

《实时控制软件设计》第二周作业

时间:2016-12-04 16:40:32      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:ted   state   get   car   blog   作业   表示   复合   machine   

 状态分析

由题目描述,只有两种不同事件,一个是车辆进入,一个是车辆离开,与之对应的传感器信号,起落杆信号,通行灯信号都是一同变化,因此可以简化成两种复合状态。

 

代码实现

 

传感器头文件

//
// Created by zhuhaihao on 2016/12/4.
//

#ifndef STATEMACHINE_STATEMACHINE_H
#define STATEMACHINE_STATEMACHINE_H

class Sensor {
public:
    Sensor();

    Sensor(bool state);

    bool getState() const;

    void setState(bool newState) ;

    void restore() ;

private:

    // 这里用一个状态表示车辆进入传感器信号和车辆离开传感器信号的状态
    // 如果为true表示车辆进入 false表示车辆离开
    bool state;
};
#endif //STATEMACHINE_STATEMACHINE_H

 

传感器实现

//
// Created by zhuhaihao on 2016/12/4.
//

#include "../Header/Sensor.h"
#include <iostream>

using  namespace std;

Sensor::Sensor() {
    state = false;
}

Sensor::Sensor(bool state) {
    this->state = state;
}

bool Sensor::getState() const {
    return this->state;
}

void Sensor::setState(bool newState) {
    this->state = newState;
}

void Sensor::restore() {
    this->state = false;
}

 

其余部件的代码类似于传感器。所有代码在这里  https://github.com/hacktw/RTCSD2016

 

//
// Created by zhuhaihao on 2016/12/4.
//

#include "../Header/GurdSystem.h"
#include <iostream>

using namespace std;

void GurdSystem::carIn() {
    this->sensor.setState(true);
    cout << "now the car are comming in..." << endl;
    if ( !this->lifter.getState() ) {
        this->lifter.action();
        cout << "lifter up..." << endl;
    }
    if ( !this->light.getState() ) {
        this->light.action();
        cout << "light green..." << endl;
    }
}

void GurdSystem::carOut() {
    this->sensor.setState(false);
    cout << "now the car are comming out..." << endl;
    if ( this->lifter.getState() ) {
        this->lifter.action();
        cout << "lifter down..." << endl;
    }
    if ( this->light.getState() ) {
        this->light.action();
        cout << "light red..." << endl;
    }
}

 

测试截图

 

技术分享

《实时控制软件设计》第二周作业

标签:ted   state   get   car   blog   作业   表示   复合   machine   

原文地址:http://www.cnblogs.com/hacktw/p/6130728.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!