重新设计控制器同GUI之间的关系

重写了GetBusDirection函数
This commit is contained in:
2022-06-28 09:57:43 +08:00
parent e5d7f0b238
commit b2b043e227
13 changed files with 110 additions and 39 deletions

View File

@@ -8,7 +8,7 @@
class BusFCFSStrategy : public BusStrategyBase
{
int GetBusDirection(bus_query_t *query);
int GetBusDirection();
bus_query_t *GetTargetQuery();

View File

@@ -9,7 +9,7 @@
class BusSCANStrategy : public BusStrategyBase
{
int GetBusDirection(bus_query_t *query);
int GetBusDirection();
bus_query_t *GetTargetQuery();

View File

@@ -8,7 +8,7 @@
class BusSSTFStrategy : public BusStrategyBase
{
int GetBusDirection(bus_query_t *query);
int GetBusDirection();
bus_query_t *GetTargetQuery();

View File

@@ -6,6 +6,7 @@
#define AUTO_BUS_GUI_BUS_CONTROLLER_BASE_H
#include "QObject"
#include "QString"
#include "QTimer"
#include "railsModel.h"
#include "queryModel.h"
@@ -18,6 +19,8 @@ public:
RailsModel *rails_model;
QueryModel *query_model;
BusModel *bus_model;
QTimer *tick_timer;
int bus_tick;
@@ -25,12 +28,31 @@ public:
virtual ~BusStrategyBase();
virtual int GetBusDirection(bus_query_t *query) = 0;
/**
* 获得当前公交车应该前进的方向
* @return 公交车前进的方向
*/
virtual int GetBusDirection() = 0;
/**
* 获得公交车在当前指定的策略下应该处理的请求
* @return 请求指针
*/
virtual bus_query_t *GetTargetQuery() = 0;
/**
* 获取公交车现在可以处理的请求
* @return 请求指针
*/
virtual bus_query_t *HandleQuery() = 0;
signals:
void DeleteQuerySignal(bus_query_t *query);
public slots:
void AppendQuerySlot(int query_type, int node_id) const;
private:
QString PrintState() const;

View File

@@ -9,9 +9,6 @@
#include "queryModel.h"
#include "define.h"
#include "cstdio"
#include "string"
#include "sstream"
#include "QObject"
#include "QDebug"
#include "QTimer"
@@ -34,6 +31,11 @@ public:
*/
int direction;
/**
* 当前指定处理的请求
*/
bus_query_t *target_query;
QTimer *bus_timer;
explicit BusModel();
@@ -61,11 +63,6 @@ private:
* 轨道的头节点
*/
rail_node_t *rail_head;
/**
* 当前指定处理的请求
*/
bus_query_t *target_query;
};
#endif //AUTO_BUS_GUI_BUS_MODEL_H