rssp
This commit is contained in:
parent
71f8163cab
commit
08ff1930f6
@ -302,7 +302,7 @@ func signalOperation(c *gin.Context) {
|
|||||||
// @Success 200 {object} string
|
// @Success 200 {object} string
|
||||||
// @Failure 500 {object} dto.ErrorDto
|
// @Failure 500 {object} dto.ErrorDto
|
||||||
// @Router /api/v1/simulation/axleSection/operation [post]
|
// @Router /api/v1/simulation/axleSection/operation [post]
|
||||||
func axleSectionOperation(c *gin.Context) {
|
func axleSectionOperation(c *gin.Context) { //操作:设置故障占用、取消故障占用、计轴直接复位、计轴预复位
|
||||||
req := &dto.AxleSectionOperationReqDto{}
|
req := &dto.AxleSectionOperationReqDto{}
|
||||||
if err := c.ShouldBind(&req); err != nil {
|
if err := c.ShouldBind(&req); err != nil {
|
||||||
panic(sys_error.New("输入参数格式错误", err))
|
panic(sys_error.New("输入参数格式错误", err))
|
||||||
|
37
third_party/message/rssp_crc.go
vendored
37
third_party/message/rssp_crc.go
vendored
@ -189,3 +189,40 @@ func CrcBitOrientedMsbFirst(data []byte, polynomial uint32, width int) uint32 {
|
|||||||
}
|
}
|
||||||
return register1 & significant_mask
|
return register1 & significant_mask
|
||||||
}
|
}
|
||||||
|
func Crc(data []byte,
|
||||||
|
polynomial uint32,
|
||||||
|
width int,
|
||||||
|
initial_value uint32,
|
||||||
|
input_reflected bool,
|
||||||
|
result_reflected bool,
|
||||||
|
final_xor_value uint32) uint32 {
|
||||||
|
length := len(data)
|
||||||
|
var register1 uint32 = initial_value
|
||||||
|
var significant_mask uint32 = 0xffffffff >> (32 - width)
|
||||||
|
var register_lsb_mask uint32 = 0xff
|
||||||
|
|
||||||
|
if input_reflected {
|
||||||
|
register1 = reflect(register1, width)
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < length; i++ {
|
||||||
|
var byteData uint32 = uint32(data[i])
|
||||||
|
var shift_out uint32 = 0
|
||||||
|
var value uint32 = 0
|
||||||
|
|
||||||
|
if input_reflected {
|
||||||
|
shift_out = register1 & register_lsb_mask
|
||||||
|
value = Lookup(shift_out^byteData, polynomial, width, input_reflected)
|
||||||
|
register1 = (register1 >> 8) ^ value
|
||||||
|
} else {
|
||||||
|
shift_out = (register1 >> (width - 8)) & register_lsb_mask
|
||||||
|
value = Lookup(shift_out^byteData, polynomial, width, input_reflected)
|
||||||
|
register1 = (register1 << 8) ^ value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if input_reflected != result_reflected {
|
||||||
|
register1 = reflect(register1, width)
|
||||||
|
}
|
||||||
|
return (register1 ^ final_xor_value) & significant_mask
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user