Код: Выделить всё
_localDeviceHandle = CreateFile(
"\\\\.\\SeaMAC" + portAddressParam, (uint)access, 0,
IntPtr.Zero, (uint)creationDisposition,
(uint)FileAttribute.Normal, IntPtr.Zero);
m_commCfg.ConfigVersion = 4;
m_commCfg.Electrical = SeaMacDevice.Electrical.EIA530;
m_commCfg.Framing = SeaMacDevice.Framing.Sdlc;
m_commCfg.PreTxDelayTime = 0;
m_commCfg.PostTxDelayTime = 0;
m_commCfg.CharacterSize = 8;
m_commCfg.StopBits = 1;
m_commCfg.Parity = 0;
m_commCfg.Loopback = false;
m_commCfg.Echo = false;
m_commCfg.MergeFrames = false;
m_commCfg.RsetSource = TimingSource.Rset;
m_commCfg.TsetSource = TimingSource.Brg;
m_commCfg.TsetFromHere = true;
m_commCfg.BitRate = 1000000;
m_commCfg.Oscillator = 2000000;
m_commCfg.BrgSourceFromRset = true;
m_commCfg.CrcPolynomial = Crc.Ccitt;
m_commCfg.CrcPresetOnes = true;
m_commCfg.IdleMode = IdleMode.ContOne;
m_commCfg.ClockEncoding = ClockEncodingMethod.None;
m_commCfg.SdlcAddressMode = AddressMode.FromAny;
m_commCfg.DpllBaseFromRset = true;
m_commCfg.SyncCharacterSize = 8;
m_commCfg.SdlcFlagsShareZero = false;
m_commCfg.PreambleLength = 0;
m_commCfg.PreamblePattern = PreamblePattern.Ones;
m_commCfg.SyncCharacter = 0x7E;
ComConfigV4 blankCfg = new ComConfigV4();
int configSize = Marshal.SizeOf(m_commCfg);
int dummy = 0;
bool bSuccess =
FileApi.DeviceIoControl(_localDeviceHandle,
Ioctls.SetComConfig,
ref m_commCfg,
configSize,
ref blankCfg,
configSize,
ref dummy,
IntPtr.Zero);
< /code>
и вот команда записи. < /p>
count = (uint)transmitBuffer.Length;
bSuccess = FileApi.WriteFile(
_localDeviceHandle, // returned from CreateFile()
transmitBuffer, // will contain the received data
count, // number of bytes to write+
out count, // actual amount of data in bytes
IntPtr.Zero // non-overlapped read
);
Подробнее здесь: https://stackoverflow.com/questions/796 ... evel-5104e