Пример #1
0
        /// <summary>
        /// 指定レジスタの値の読み出し
        /// </summary>
        /// <param name="addr">レジスタアドレス</param>
        /// <param name="data">読み出したバイトデータ</param>
        /// <returns>読み出しの成否</returns>
        public static bool TryRegRead(SC18IM700Register addr, out byte data)
        {
            data = 0;
            if (!IsValid())
            {
                return(false);
            }

            var packet = new byte[] { (byte)SC18IM700Commmand.ReadRegister,
                                      (byte)addr,
                                      (byte)SC18IM700Commmand.I2cStop };

            try
            {
                serialPort.Write(packet, 0, packet.Length);
            }
            catch (Exception)
            {
                return(false);
            }

            var outdata = ReadSerialData(1);

            if (outdata.Length == 1)
            {
                data = outdata[0];
            }
            return(outdata.Length == 1);
        }
Пример #2
0
        /// <summary>
        /// 指定レジスタへ値を書き込み
        /// </summary>
        /// <param name="addr">レジスタアドレス</param>
        /// <param name="data">書き込むバイトデータ</param>
        /// <returns>書き込みの成否</returns>
        public static bool RegWrite(SC18IM700Register addr, byte data)
        {
            if (!IsValid())
            {
                return(false);
            }

            var packet = new byte[] { (byte)SC18IM700Commmand.WriteRegister,
                                      (byte)addr,
                                      data,
                                      (byte)SC18IM700Commmand.I2cStop };

            try
            {
                serialPort.Write(packet, 0, packet.Length);
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }