From 84fb8e390b83dc9482524c12d7af6c93405c3fc1 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期五, 08 十二月 2023 16:36:32 +0800
Subject: [PATCH] debug

---
 model/device_plc.go |   83 +++++++++++++++++++++++------------------
 1 files changed, 46 insertions(+), 37 deletions(-)

diff --git a/model/device_plc.go b/model/device_plc.go
index 785ab8e..a6e7331 100644
--- a/model/device_plc.go
+++ b/model/device_plc.go
@@ -5,34 +5,42 @@
 	"apsClient/pkg/sqlitex"
 	"encoding/json"
 	"fmt"
-	"gorm.io/gorm"
+	"github.com/jinzhu/gorm"
 )
 
 type (
 
 	// DevicePlc 璁惧鐨凱LC閰嶇疆
 	DevicePlc struct {
-		gorm.Model `json:"-"`
-		Id         int                `gorm:"primarykey;type:int;" json:"id"`
-		Brand      string             `gorm:"type:varchar(191);comment:PLC鍝佺墝" json:"brand"`
-		Method     constvar.PlcMethod `gorm:"type:varchar(191);comment:鎺ュ彛鏂瑰紡" json:"method"`
-		//PortName   string `gorm:"type:varchar(191);comment:绔彛鍚嶇О" json:"portName"`
-		//Frequency  int    `gorm:"type:int(11);comment:鏁版嵁鏇存柊棰戠巼 0-瀹炴椂鏇存柊 1-1娆�/绉�" json:"frequency"`
-		Address    string `gorm:"type:varchar(191);comment:PLC鍦板潃" json:"address"` //plc ip鍦板潃锛� method = modbusTCP鐢�
-		Port       int    `gorm:"type:int(11);comment:绔彛" json:"port"`            //plc 绔彛鍙凤紝  method =  modbusTCP鐢�
-		BaudRate   int    `gorm:"type:int(11);comment:娉㈢壒鐜�"  json:"baudRate"`      //涓插彛娉㈢壒鐜囷紝 method = serial鏃� 鐢�
-		SerialName string `gorm:"type:int(11);comment:涓插彛鍚嶇О"  json:"serialName"`   //涓插彛鍚嶇О锛宮ethod = serial鏃� 鐢�
-		IsOpen     bool   `gorm:"type:tinyint(1);comment:鏄惁寮�鍚�" json:"isOpen"`
-		Detail     string `gorm:"type:varchar(2048);comment:鏁版嵁璇︽儏" json:"-"`
+		gorm.Model
+		DeviceID   string             `gorm:"column:device_id;type:varchar(255);not null;unique" json:"deviceID"` //璁惧缂栧彿
+		Brand      string             `gorm:"type:varchar(191)" json:"brand"`
+		Method     constvar.PlcMethod `gorm:"type:varchar(191)" json:"method"`
+		Address    string             `gorm:"type:varchar(191)" json:"address"` //plc ip鍦板潃锛� method = modbusTCP鐢�
+		Port       int                `json:"port"`                             //plc 绔彛鍙凤紝  method =  modbusTCP鐢�
+		BaudRate   int                `json:"baudRate"`                         //涓插彛娉㈢壒鐜囷紝 method = serial鏃� 鐢�
+		SerialName string             `json:"serialName"`                       //涓插彛鍚嶇О锛宮ethod = serial鏃� 鐢�
+
+		DataBit int             `gorm:"type:int(11)"  json:"dataBit"` //鏁版嵁浣嶏紝method = modbusRTU 鐢�
+		StopBit int             `gorm:"type:int(11)"  json:"stopBit"` //鍋滄浣嶏紝method = modbusRTU 鐢�
+		Parity  constvar.Parity `gorm:"type:int(11)"  json:"parity"`  //鏍¢獙鏂瑰紡锛宮ethod = modbusRTU 鐢�
+
+		IsOpen bool   `json:"isOpen"`
+		Detail string `gorm:"type:varchar(2048)" json:"-"`
 
 		Details []*DevicePlcAddress `gorm:"-" json:"details"`
+
+		MaxTryTimes     int   `gorm:"-" json:"-"` //鏈�澶у啓鍏ラ噸璇曟鏁�
+		CurrentTryTimes int   `gorm:"-" json:"-"` //褰撳墠鍐欏叆閲嶈瘯娆℃暟
+		CurrentErr      error `gorm:"-" json:"-"` //褰撳墠鎶ラ敊
 	}
 
 	DevicePlcAddress struct {
-		StartAddress int    `json:"startAddress"` // 鏁版嵁璧峰鍦板潃
-		Length       int    `json:"length"`       // 鏁版嵁闀垮害
-		Type         string `json:"type"`         // 鏁版嵁绫诲瀷
-		FieldName    int    `json:"fieldName"`    // 瀵瑰簲绯荤粺瀛楁
+		Channel      int32                             `json:"channel"`      // 鏁版嵁璧峰鍦板潃
+		StartAddress int                               `json:"startAddress"` // 鏁版嵁璧峰鍦板潃
+		Length       int                               `json:"length"`       // 鏁版嵁闀垮害
+		Type         constvar.PlcStartAddressValueType `json:"type"`         // 鏁版嵁绫诲瀷
+		FieldName    constvar.PlcStartAddressType      `json:"fieldName"`    // 瀵瑰簲绯荤粺瀛楁
 	}
 
 	DevicePlcSearch struct {
@@ -49,12 +57,15 @@
 }
 
 func (slf *DevicePlc) AfterFind(tx *gorm.DB) error {
-	details := make([]*DevicePlcAddress, 0)
-	err := json.Unmarshal([]byte(slf.Detail), &details)
-	if err != nil {
-		return err
+	if slf.Detail != "" {
+		details := make([]*DevicePlcAddress, 0)
+		err := json.Unmarshal([]byte(slf.Detail), &details)
+		if err != nil {
+			return err
+		}
+		slf.Details = details
 	}
-	slf.Details = details
+
 	return nil
 }
 
@@ -77,16 +88,25 @@
 	return slf
 }
 
-func (slf *DevicePlcSearch) SetId(id int) *DevicePlcSearch {
-	slf.Id = id
+func (slf *DevicePlcSearch) SetId(id uint) *DevicePlcSearch {
+	slf.ID = id
+	return slf
+}
+
+func (slf *DevicePlcSearch) SetDeviceId(deviceId string) *DevicePlcSearch {
+	slf.DeviceID = deviceId
 	return slf
 }
 
 func (slf *DevicePlcSearch) build() *gorm.DB {
 	var db = slf.Orm.Table(slf.TableName())
 
-	if slf.Id > 0 {
-		db = db.Where("id = ?", slf.Id)
+	if slf.ID > 0 {
+		db = db.Where("id = ?", slf.ID)
+	}
+
+	if slf.DeviceID != "" {
+		db = db.Where("device_id = ?", slf.DeviceID)
 	}
 
 	if slf.Order != "" {
@@ -102,17 +122,6 @@
 
 	if err := db.Create(record).Error; err != nil {
 		return fmt.Errorf("create err: %v, record: %+v", err, record)
-	}
-
-	return nil
-}
-
-// CreateBatch 鎵归噺鎻掑叆
-func (slf *DevicePlcSearch) CreateBatch(records []*DevicePlc) error {
-	var db = slf.build()
-
-	if err := db.Create(&records).Error; err != nil {
-		return fmt.Errorf("create batch err: %v, records: %+v", err, records)
 	}
 
 	return nil

--
Gitblit v1.8.0