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))); }
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_); }
/// <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); }