Exemple #1
0
        String GetAcknowledgeErrorString(PACKET_ACK ac)
        {
            String err_str = "";

            switch (ac.error_code)
            {
            case Const.CMD_ERR_NO_ERROR:
                err_str = "Нет ошибки";
                break;

            case Const.CMD_ERR_INVALID_FIRMWARE_SIZE:
                err_str = "Недопустимая длина микропрограммы";
                break;

            case Const.CMD_ERR_IAP_ERROR:
                switch (ac.iap_error_code)
                {
                case Const.IAP_ERR_CMD_SUCCESS:
                    err_str = "IAP - Нет ошибки";
                    break;

                case Const.IAP_ERR_INVALID_COMMAND:
                    err_str = "IAP - Неверная команда";
                    break;

                case Const.IAP_ERR_SRC_ADDR_ERROR:
                    err_str = "IAP - Адрес источника не выровнен по границе слова";
                    break;

                case Const.IAP_ERR_DST_ADDR_ERROR:
                    err_str = "IAP - Адрес приемника не выровнен по необходимой величине";
                    break;

                case Const.IAP_ERR_SRC_ADDR_NOT_MAPPED:
                    err_str = "IAP - Адрес источника (с учетом счетчика байт) выходит за пределы памяти";
                    break;

                case Const.IAP_ERR_DST_ADDR_NOT_MAPPED:
                    err_str = "IAP - Адрес приемника (с учетом счетчика байт) выходит за пределы памяти";
                    break;

                case Const.IAP_ERR_COUNT_ERROR:
                    err_str = "IAP - Счетчик байт не кратен 4 или имеет недопустимое значение";
                    break;

                case Const.IAP_ERR_INVALID_SECTOR:
                    err_str = "IAP - Неверный номер сектора или адрес последнего сектора меньше адреса первого";
                    break;

                case Const.IAP_ERR_SECTOR_NOT_BLANK:
                    err_str = "IAP - Сектор не был предварительно очищен";
                    break;

                case Const.IAP_ERR_SECTOR_NOT_PREPARED_FOR_WRITE_OPERATION:
                    err_str = "IAP - Сектор не был подготовлен для операции записи";
                    break;

                case Const.IAP_ERR_COMPARE_ERROR:
                    err_str = "IAP - Данные источника и приемника не совпадают";
                    break;

                case Const.IAP_ERR_BUSY:
                    err_str = "IAP - Интерфейс аппаратного программирования занят";
                    break;

                default:
                    err_str = "IAP - Неизвестный код ошибки: " + ac.iap_error_code.ToString();
                    break;
                }
                break;

            case Const.CMD_ERR_USER_CODE_NOT_PRESENT:
                err_str = "В устройстве отсутствует микропрограмма";
                break;

            case Const.CMD_ERR_CRC8_ERROR:
                err_str = "Неверная контрольная сумма микропрограммы (CRC8)";
                break;

            default:
                err_str = "Неизвестный код ошибки: " + ac.error_code.ToString();
                break;
            }
            return(err_str);
        }
Exemple #2
0
 void get_ack(ref PACKET_ACK aa, _u8[] data)
 {
     aa.error_code     = data[0];
     aa.iap_error_code = data[1];
 }