auto_bus/src/bus.c

41 lines
981 B
C
Raw Normal View History

#include "bus.h"
2022-05-24 11:39:44 +08:00
#include "math.h"
bus_t *the_bus = NULL;
void RunBus(int direction)
{
2022-05-24 11:43:19 +08:00
if(direction == BUS_CLOCK_WISE)//顺时针
2022-05-24 11:39:44 +08:00
{
the_bus->distance++;
}
2022-05-24 11:43:19 +08:00
else if(direction == BUS_COUNTER_CLOCK_WISE)
2022-05-24 11:39:44 +08:00
{
the_bus->distance--;
}
2022-05-24 11:39:44 +08:00
}
int GetBusPosition()
{
int a,b;
a=the_bus->rail_node_pos->id;//指向站点的指针以及这个指针对应的站台id
b=a*(rails->last_node_distance)+abs(the_bus->distance);
return b;
}
int JudgeOnStation()
{
2022-05-24 18:24:39 +08:00
if(abs(the_bus->distance) == rails->last_node_distance)//表示逆时针
2022-05-24 11:39:44 +08:00
{
2022-05-24 18:24:39 +08:00
the_bus->distance=0;
the_bus->rail_node_pos=rails->last_node;//逆时针往上一个
2022-05-24 11:43:19 +08:00
return BUS_TRUE;
2022-05-24 11:39:44 +08:00
}
2022-05-24 18:24:39 +08:00
else if(abs(the_bus->distance) == rails->next_node_distance)//表示顺时针
{
the_bus->distance=0;
the_bus->rail_node_pos=rails->next_node;//顺时针往下一个
return BUS_TRUE;
}
else
2022-05-24 11:39:44 +08:00
{
2022-05-24 11:43:19 +08:00
return BUS_FAlSE;
2022-05-24 11:39:44 +08:00
}
}