-
Notifications
You must be signed in to change notification settings - Fork 0
/
load_package_module.go
39 lines (33 loc) · 1.07 KB
/
load_package_module.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
package protocol
import (
"gdcl/fsm"
)
const (
LOAD_PACKAGE_IDLE = iota
LOAD_PACKAGE_UP
)
type LoadPackageModule struct {
DockModule
packageData []byte
}
func loadPackage(state int, input interface{}, output interface{}, data interface{}) {
module := data.(*LoadPackageModule)
packet := DantePacketNew(LOAD_PACKAGE, module.packageData)
module.ToDockLink <- *packet
}
func disconnect(state int, input interface{}, output interface{}, data interface{}) {
module := data.(*LoadPackageModule)
packet := DantePacketNew(DISCONNECT, []byte{})
module.ToDockLink <- *packet
}
func LoadPackageModuleNew(toDockLink chan DantePacket, packageData []byte) *LoadPackageModule {
var module LoadPackageModule
module.DockModule.DockModuleInit(toDockLink, &module)
module.packageData = packageData
module.stateTable = map[int][]fsm.State{
LOAD_PACKAGE_IDLE: {{Input: DantePacketCommand{RESULT}, NewState: LOAD_PACKAGE_UP, Action: loadPackage}},
LOAD_PACKAGE_UP: {{Input: DantePacketCommand{RESULT}, NewState: LOAD_PACKAGE_IDLE, Action: disconnect}},
}
module.reader()
return &module
}