public SendFrameFormat SetRegisterAddress(DDSRegisterAddress address) { setRegisterAddress = address; SendFrameFormat dsf = new SendFrameFormat(); dsf.Id = 1; dsf.FunctionCode = FunctionCode.ReadHoldingRegisters; dsf.StartingAddress[0] = 0x00; dsf.StartingAddress[1] = (byte)address; switch (address) { case DDSRegisterAddress.TotalkWh: dsf.Quantity = new byte[] { 0x00, 0x02 }; break; case DDSRegisterAddress.ExportkWh: dsf.Quantity = new byte[] { 0x00, 0x02 }; break; case DDSRegisterAddress.ImportkWh: dsf.Quantity = new byte[] { 0x00, 0x02 }; break; case DDSRegisterAddress.Voltage: dsf.Quantity = new byte[] { 0x00, 0x01 }; break; case DDSRegisterAddress.Current: dsf.Quantity = new byte[] { 0x00, 0x01 }; break; case DDSRegisterAddress.ActivePower: dsf.Quantity = new byte[] { 0x00, 0x01 }; break; case DDSRegisterAddress.PowerFactor: dsf.Quantity = new byte[] { 0x00, 0x01 }; break; case DDSRegisterAddress.Frequency: dsf.Quantity = new byte[] { 0x00, 0x01 }; break; case DDSRegisterAddress.ID_BaudRate: dsf.Quantity = new byte[] { 0x00, 0x01 }; break; default: break; } return(dsf); }
public DDS238(bool muestraDatosConsola, SerialPortInterface serial, string ip, int puerto, bool esSocket, bool escribeArchivoLog) { _esSocket = esSocket; _escribeArchivoLog = escribeArchivoLog; _dsf = new SendFrameFormat(0x01, FunctionCode.ReadHoldingRegisters); if (serial != null) { _serialPortInterface = serial; } if (!esSocket) { //string trm = string.Format("trm_{0}.txt", DateTime.Now.ToString("yyyyMMdd")); //_t = System.IO.File.AppendText(trm); _status = _serialPortInterface.Open(); _serialPortInterface.DataReceived += Sp_DataReceived; } else { _clientRs = new SuperSocketClient(ip, puerto); _clientRs.InputData += clientRs_InputData; _status = _clientRs.IniciarSocket(); } _muestraDatosConsola = muestraDatosConsola; _timer.Interval = 1000; _timer.Elapsed += Tarea; _timer.Enabled = true; _serverLog.InputData += _serverLog_InputData; _serverLog.Init(123); if (_escribeArchivoLog) { string log = string.Format(@"log\log_meter_{0}.txt", DateTime.Now.ToString("yyyyMMdd")); _f = System.IO.File.AppendText(log); } }