コード例 #1
0
        public int SetTime(elecMeterDateTime datetime)
        {
            byte[] mes = new byte[11];
            mes[0] = address;
            mes[1] = 3;
            mes[2] = 0x0C;

            mes[3] = (byte)byte_to_BCD(Convert.ToByte(datetime.datetime.Second));
            mes[4] = (byte)byte_to_BCD(Convert.ToByte(datetime.datetime.Minute));
            mes[5] = (byte)byte_to_BCD(Convert.ToByte(datetime.datetime.Hour));

            mes[6] = (byte)datetime.numDayofWeek();

            mes[7] = (byte)byte_to_BCD(Convert.ToByte(datetime.datetime.Day));
            mes[8] = (byte)byte_to_BCD(Convert.ToByte(datetime.datetime.Month));

            int year = datetime.datetime.Year;

            year = year - (year / 100 * 100);

            mes[9] = (byte)byte_to_BCD(Convert.ToByte(year));

            mes[10] = (byte)datetime.season;

            return(explainAnswer(SendCmd(mes)));
        }
コード例 #2
0
        public elecMeterDateTime CallTime()
        {
            elecMeterDateTime elecMeterDateTime_ = new elecMeterDateTime();

            byte[] mes   = { address, 0x04, 0x00 };
            RXmes  RXmes = SendCmd(mes);

            if (RXmes.err == error_type.none)
            {
                elecMeterDateTime_.dateFromAnswer(RXmes.buff);
            }
            return(elecMeterDateTime_);
        }
コード例 #3
0
        /// <summary>
        /// Чтение внутренних часов и календаря счетчика
        /// </summary>
        /// <returns></returns>
        public elecMeterDateTime CallDateTime()
        {
            byte[]            mes         = { address[0], address[1], address[2], address[3], 0x21 };
            RXmes             Rxmes_      = SendCmd(mes);
            elecMeterDateTime date_struct = new elecMeterDateTime();

            if (Rxmes_.err == error_type.none)
            {
                for (int i = 0; i < Rxmes_.buff.Length; i++)
                {
                    Rxmes_.buff[i] = (byte)BCD_to_byte(Rxmes_.buff[i]);
                }
                // 5   6  7 8   9 10  11
                //dow-hh-mm-ss-dd-mon-yy
                date_struct.dt  = new DateTime(Rxmes_.buff[11] + 2000, Rxmes_.buff[10], Rxmes_.buff[9], Rxmes_.buff[6], Rxmes_.buff[7], Rxmes_.buff[8]);
                date_struct.day = Rxmes_.buff[5];
            }

            date_struct.error = Rxmes_.err;
            return(date_struct);
        }