-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathelev_main.go
117 lines (87 loc) · 3.64 KB
/
elev_main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
package main
import (
"./order_distribution"
"./FSM"
"./order_handler"
"./network"
"./logger"
"./driver"
"fmt"
"time"
)
const NumFloors = driver.NumFloors
const NumButtons = driver.NumButtons
var OrderQueue := []Order
//FSM
/*
floorEvent <- chan int, //heis ved etasje til order_handler
buttonEvent <- chan OrderButton //knappetrykk til order_handler
*/
//Elev_driver
floor_event := make(chan int) //heis ved etasje til order_handler
button_event := make(chan OrderButton) //knappetrykk til order_handler
//Order_dist.
peers := make(chan int) //status of peer to peer fra network
newOrder := make(chan Order) //ekstern ordre fra order handler for kost funksjonen
assignedNewOrder := make(chan Order) //ekstern ordre til order handler, med heisID
//Order_handler
assignedNewOrder := make(chan Order) //ekstern ordre fra order_dist. , med heisID
elev_send_cost_value = make(chan Cost)
elev_send_new_order = make(chan Order)
elev_send_remove_order = make(chan Order)
elev_receive_cost_value = make(chan int)
elev_receive_new_order = make(chan Order)
elev_receive_remove_order = make (chan Order)
//Network
peers := make(chan int) //status of peer to peer til order_dist.
func main(){
fmt.Printf("Elev_driver started\n")
driver.ElevInit()
//Initialisere
go FSM.init()
go order_handler.init()
go network.UPD_init(elev_send_cost_value,
elev_send_new_order,
elev_send_remove_order,
elev_receive_cost_value,
elev_receive_new_order,
elev_receive_remove_order)
buttonEvent := make(chan driver.OrderButton)
floorEvent := make(chan int)
for {
ButtonLights()
}
go driver.EventListener(buttonEvent, floorEvent)
fmt.Printf("Elev_driver ended\n")
}
/*
//FSM
setMotorDir := make(chan<- int) //set motor direction fra order_handler
//Elev_driver
floorEvent := make(<-chan int) //heis ved etasje til order_handler
buttonEvent := make(<-chan OrderButton) //knappetrykk til order_handler
//Order_dist.
peers := make(chan<- int) //status of peer to peer fra network
sendCostValue := make(<-chan int) //kostverdi til nettverk for broadcasting
receiveCostValue := make(chan<- int) //kostverdig fra nettverk til action_select
newOrder := make(chan <- Order) //ekstern ordre fra order handler for kost funksjonen
assignedNewOrder := make(<- chan Order) //ekstern ordre til order handler, med heisID
//Order_handler
setMotorDir := make(<-chan int) //Set motor direction til FSM, FSM calls function
floorEvent := make(chan<- int) //heis ved etasje fra elev_driver
buttonEvent := make(chan<- OrderButton) //knappetrykk fra elev_driver
newOrder := make(<- chan Order) //ekstern ordre til order_distribution for kost funksjonen
assignedNewOrder := make(chan <- Order) //ekstern ordre fra order_dist. , med heisID
sendRemoveOrder := make(<- chan Order) //ekstern ordre til network som skal fjernes
receiveRemoveOrder := make(chan <- Order) //ekstern order fra network som skal fjernes
sendNewOrder := make(<- chan Order) //ekstern ordre til network som skal legges til
receiveNewOrder := make(chan <- Order) //ekstern ordre fra network som skal legges til
//Network
peers := make(chan<- int) //status of peer to peer til order_dist.
sendCostValue := make(chan<- int) //kostverdi fra order_dist. for broadcasting
receiveCostValue := make(<-chan int) //kostverdi til order_dist fra broadcast
sendRemoveOrder := make(chan<- Order) //ekstern ordre fra orderhandler som skal broadcastes som remove order
receiveRemoveOrder := make(<-chan Order) //ekstern order til orderhandler som skal fjernes
sendNewOrder := make(chan <- Order) //ekstern ordre fra orderhandler som skal broadcastes
receiveNewOrder := make(<- chan Order) //ekstern ordre til orderhandler som skal legges til
*/