Exemplo n.º 1
0
Arquivo: elf108.cs Projeto: Prizmer/ps
        bool ReadArchiveValById(uint id, ref ArchiveValue archVal)
        {
            byte[] cmd = { m_addr, 0x2f, 0x05, 0x00 };
            byte[] cmd_data = new byte[0x05];

            //преобразуем целочисленные id в посл.байт от младшему к старшему
            byte[] id_bytes = BitConverter.GetBytes(id);
            if (!BitConverter.IsLittleEndian)
                Array.Reverse(id_bytes);

            //сформируем команду, где первый байт 0х02 - на начало суток (С2)
            cmd_data[0] = 0x02;
            Array.Copy(id_bytes, 0, cmd_data, 1, id_bytes.Length);

            byte[] data_arr = null;

            if (!SendPT01_CMD(cmd, ref data_arr, cmd_data)) return false;

            byte crc_check = CRC8(data_arr, data_arr.Length);
            if (crc_check != 0x0)
            {
                WriteToLog("ReadArchiveValById: check sum error");
                return false;
            }

            try
            {
                ArchiveValueParser avp = new ArchiveValueParser(data_arr, this.m_address, this.m_vport);
                return avp.GetArchiveValue(ref archVal);
            }
            catch(Exception ex)
            {
                WriteToLog("ReadArchiveValById: " + ex.Message);
                return false;
            }
        }
Exemplo n.º 2
0
Arquivo: elf108.cs Projeto: Prizmer/ps
        bool ReadArchiveLastVal(ref ArchiveValue archVal)
        {
            byte[] cmd = { m_addr, 0x2e, 0x02, 0x00 };
            byte[] cmd_data = { 0x02, 0x01 };

            byte[] data_arr = null;

            if (!SendPT01_CMD(cmd, ref data_arr, cmd_data)) return false;

            byte crc_check = CRC8(data_arr, data_arr.Length);
            if (crc_check != 0x0)
            {
                WriteToLog("ReadLastArchiveVal: данные приняты неверно");
                return false;
            }

            try
            {
                ArchiveValueParser avp = new ArchiveValueParser(data_arr, this.m_address, this.m_vport);
                avp.GetArchiveValue(ref archVal);
            }
            catch (Exception ex)
            {
                WriteToLog("ReadArchiveLastVal: " + ex.Message);
                return false;
            }

            return true;
        }