Как я это делаю сейчас, действительно странно.И печально то, что у меня есть много структур и я часто их использую.
Вот как я сейчас действую:
[<type:StructLayout(LayoutKind.Sequential, Pack=1, CharSet=CharSet.Ansi)>]
type OneDevice = {
mutable id : UInt16
mutable typeDev : byte
mutable portNum : byte
mutable Parity : byte
mutable StopBits : byte
mutable BaudRate : byte
mutable addr1 : byte
mutable addr2 : byte
mutable useCanal : byte
mutable idGroup1 : byte
mutable idGroup2 : byte
mutable idGroup3 : byte
mutable idGroup4 : byte
mutable idGroupSos1 : byte
mutable idGroupSos2 : byte
mutable idGroupSos3 : byte
mutable idGroupSos4 : byte
mutable idSosReserv : byte
mutable addrModbus : byte
mutable offsetModbus : System.UInt16
[<field: MarshalAs(UnmanagedType.ByValArray, SizeConst = 17)>]
mutable pwd : byte array
mutable offsetInModbus : UInt16
mutable reserv : UInt16 }
Вот как я определяю структуры."type str = struct ..." работает действительно иначе!Мне нужен именно мой вариант структуры.Но написание этого - только половина моей проблемы, вторая половина - то, как я создаю новый элемент этой структуры.пусть mutable dev = new OneDevice () не работает!Поэтому мне нужно сделать следующее:
let mutable dev = {
id = 0us
typeDev = 0x00uy
portNum = 0x00uy
Parity = 0x00uy
StopBits = 0x00uy
BaudRate = 0x00uy
addr1 = 0x00uy
addr2 = 0x00uy
useCanal = 0x00uy
idGroup1 = 0x00uy
idGroup2 = 0x00uy
idGroup3 = 0x00uy
idGroup4 = 0x00uy
idGroupSos1 = 0x00uy
idGroupSos2 = 0x00uy
idGroupSos3 = 0x00uy
idGroupSos4 = 0x00uy
idSosReserv = 0x00uy
addrModbus = 0x00uy
offsetModbus = 0us
pwd = Array.zeroCreate 17
offsetInModbus = 0us
reserv = 0us }
И это самая странная часть здесь.Можно ли как-нибудь упростить?
Спасибо!