Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
            }
        }