fix: rebuild MES as compilable go-zero+ent backend (renamed bj_power_mes), restore 3 workstation projects from pristine original, align naming; all Go projects go build clean

This commit is contained in:
SunYF
2026-08-27 10:56:41 +08:00
parent 380715f8a9
commit 371b494c54
523 changed files with 67923 additions and 24758 deletions
+57
View File
@@ -0,0 +1,57 @@
package robot
import (
"context"
"strings"
"bj_power_mes/internal/plc"
"bj_power_mes/internal/preload"
)
// StartScanCode 启动扫码
// workpieceType 工件类型
// round 扫码轮次
func (c *Controller) StartScanCode(ctx context.Context, workpieceType int, round int) error {
return c.executeAction(ctx, "StartScanCode",
newArg(int8(workpieceType)),
newArg(int8(round)),
newArg(int16(round)),
newArg(int32(0)),
)
}
// ReadScanCodeData 读取扫码数据
// 返回PLC中32字节的扫码内容,按ASCII字符串解释;读取失败返回错误
func (m *Manager) ReadScanCodeData(ctx context.Context) (string, error) {
pc := m.plcManager.GetPlc()
if pc == nil {
return "", plc.ErrNotConnect
}
addr := preload.GetMAddress("ScanCodeData")
bs, err := pc.Read(addr.Address(), 32)
if err != nil {
return "", err
}
// 去除尾部的\x00
i := len(bs)
for i > 0 && bs[i-1] == 0 {
i--
}
result := string(bs[:i])
return strings.TrimSpace(result), nil
}
// ClearScanCodeData 清除扫码数据
func (m *Manager) ClearScanCodeData(ctx context.Context) error {
pc := m.plcManager.GetPlc()
if pc == nil {
return plc.ErrNotConnect
}
addr := preload.GetMAddress("ScanCodeData")
if err := pc.Write(addr.Address(), make([]byte, 32)); err != nil {
return err
}
return nil
}