435 lines
11 KiB
Go
435 lines
11 KiB
Go
package machinedoll
|
||
|
||
import (
|
||
"fmt"
|
||
"net"
|
||
)
|
||
|
||
// 向前aa 05 01 50 01 01 54 dd
|
||
func Forward(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x01, 0x01}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向前停止aa 05 01 50 01 00 55 dd
|
||
func ForwardStop(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x01, 0x00}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向后
|
||
// aa 05 01 50 02 01 57 dd
|
||
func Backward(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x02, 0x01}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向后停止aa 05 01 50 02 00 56 dd
|
||
func BackwardStop(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x02, 0x00}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向左aa 05 01 50 03 01 56 dd
|
||
func Left(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x03, 0x01}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向左停止aa 05 01 50 03 00 57 dd
|
||
func LeftStop(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x03, 0x00}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向右
|
||
func Right(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x04, 0x01}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 向右停止aa 05 01 50 04 00 50 dd
|
||
func RightStop(conn net.Conn) {
|
||
instruction := []byte{0xaa, 0x05, 0x01, 0x50, 0x04, 0x00}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 强抓下抓
|
||
func Grab(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x05, 0x01, 0x50, 0x06, 0x01}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/*
|
||
// 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
_, err = conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
instruction = []byte{0xAA, 0x04, 0x01, 0x50, 0x09, 0x5c, 0xdd}
|
||
_, err = conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}*/
|
||
}
|
||
|
||
// 必中抓
|
||
func Grab2(conn net.Conn) {
|
||
//设置电压
|
||
|
||
instruction := []byte{0xAA, 0x05, 0x01, 0x50, 0x06, 0x01}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
// 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
_, err = conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 弱抓aa 05 01 50 06 00 52 dd
|
||
func WeakGrab(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x05, 0x01, 0x50, 0x06, 0x00}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 投币
|
||
func Coin(conn net.Conn) {
|
||
moveCommand := []byte{0xaa, 0x08, 0x01, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00}
|
||
moveCommand = CalculateChecksum(moveCommand)
|
||
// 发送指令到服务端
|
||
_, err := conn.Write(moveCommand)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
if buf[4] == 1 {
|
||
fmt.Println("上分成功!!!!n = ", n)
|
||
}
|
||
if buf[4] == 0 {
|
||
fmt.Println("上分失败!!!")
|
||
}*/
|
||
}
|
||
|
||
// 剩余局数清零
|
||
func ClearRemainingGames(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x03, 0x01, 0x32}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 计算校验码
|
||
func CalculateChecksum(data []byte) []byte {
|
||
var value = byte(0)
|
||
for i, datum := range data {
|
||
if i > 0 {
|
||
value ^= datum
|
||
}
|
||
}
|
||
//fmt.Println("校验码 value = ", value)
|
||
data = append(data, value, 0xdd)
|
||
return data
|
||
|
||
}
|
||
|
||
// 开启音乐
|
||
func OpenMusic(conn net.Conn) {
|
||
data[43] = 0x01
|
||
instruction := []byte{0xAA, 0x33, 0x01, 0x06}
|
||
instruction = append(instruction, data...)
|
||
instruction = CalculateChecksum(instruction)
|
||
//instruction[1] = byte(len(instruction) - 3)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
// 读取服务端的响应
|
||
/* buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 关闭音乐
|
||
func CloseMusic(conn net.Conn) {
|
||
data[43] = 0x00
|
||
instruction := []byte{0xAA, 0x33, 0x01, 0x06}
|
||
instruction = append(instruction, data...)
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 恢复出厂设置
|
||
func RestoreFactorySettings(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x03, 0x01, 0x38}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 重启主板
|
||
func Reboot(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x03, 0x01, 0x39}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 暂停服务
|
||
func StopServer(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x03, 0x01, 0x37}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 开启服务
|
||
func StartServer(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x03, 0x01, 0x36}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
}
|
||
|
||
// 查询基础参数
|
||
func queryBaseParam(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x03, 0x01, 0x05}
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 设置出奖模式
|
||
func SetPower(conn net.Conn) {
|
||
data[3] = 0x01
|
||
fmt.Println("data.len = ", len(data))
|
||
instruction := []byte{0xAA, 0x33, 0x01, 0x06}
|
||
instruction = append(instruction, data...)
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
/* // 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)*/
|
||
}
|
||
|
||
// 基础设置
|
||
func SetBaseParam(conn net.Conn) {
|
||
instruction := []byte{0xAA, 0x33, 0x01, 0x06}
|
||
instruction = append(instruction, data...)
|
||
instruction = CalculateChecksum(instruction)
|
||
_, err := conn.Write(instruction)
|
||
if err != nil {
|
||
fmt.Println("Failed to send command to server:", err)
|
||
return
|
||
}
|
||
// 读取服务端的响应
|
||
buf := make([]byte, 1024)
|
||
n, err := conn.Read(buf)
|
||
if err != nil {
|
||
fmt.Println("Failed to read response from server:", err)
|
||
return
|
||
}
|
||
fmt.Println("n", n)
|
||
if buf[4] == 1 {
|
||
fmt.Println("设置成功!")
|
||
} else {
|
||
fmt.Println("设置失败!")
|
||
}
|
||
}
|
||
|
||
var data = []byte{
|
||
0x65, //0 几币几玩
|
||
0x00, //1 几币几玩占用位
|
||
0x2D, //2 游戏时间
|
||
0x00, //3 出奖模式0 无概率 1 随机模式 2 固定模式 3 冠兴模式
|
||
0x14, //4 出奖概率
|
||
0x00, //5 出奖概率占用位
|
||
0x00, //6 空中抓物 0关闭 1开启
|
||
0x00, //7 连续投币赠送 范围0~100
|
||
0x00, //8 保夹次数 范围0~6, 6为无限次
|
||
0x01, //9 保夹赠送模式 0送游戏 1送中奖 2送游戏和中奖
|
||
|
||
0x80, //10 强抓力电压
|
||
0x01, //11 强抓力电压占用位
|
||
0x80, //12 中抓力电压
|
||
0x01, //13 中抓力电压占用位
|
||
0x78, //14 弱抓力电压
|
||
0x00, //15 弱抓力电压占用位
|
||
0xE0, //16 中奖电压
|
||
0x01, //17 中奖电压占用位
|
||
0xC8, //18 强抓力时间
|
||
0x00, //19 强抓力时间占用位
|
||
|
||
0x14, //20 放抓时间
|
||
0x32, //21 前后速度
|
||
0x32, //22 左右速度
|
||
0x50, //23 上下速度
|
||
0x9A, //24 放线长度
|
||
0x06, //25 放线长度占用位
|
||
0x00, //26 礼品下放高度
|
||
0x00, //27 礼品下放高度占用位
|
||
0x00, //28 甩抓长度
|
||
0x00, //29 甩抓保护
|
||
|
||
0x78, //30 甩抓电压
|
||
0x00, //31 甩抓电压占用位
|
||
0x32, //32 上拉保护
|
||
0x02, //33 天车自救时间
|
||
0x00, //34 下抓延时
|
||
0x00, //35 下抓延时占用位
|
||
0xC8, //36 抓物延时
|
||
0x00, //37 抓物延时占用位
|
||
0x96, //38 上停延时
|
||
0x00, //39 上停延时占用位
|
||
|
||
0x00, //40 摇杆延时
|
||
0x00, //41 摇杆延时占用位
|
||
0x00, //42 抓物二收
|
||
0x00, //43 待机音乐开关
|
||
0x00, //44 音量大小调整
|
||
0x07, //45 待机音乐选择
|
||
0x08, //46 游戏音乐选择
|
||
0x00, //47 概率队列自动
|
||
}
|