Skip to content

Commit 5d1f440

Browse files
committed
Implemented string explanation for error code
1 parent 81f190a commit 5d1f440

File tree

5 files changed

+79
-4
lines changed

5 files changed

+79
-4
lines changed

qt/err.cpp

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
/* Copyright (C) 2017 Bogdan Bogush <[email protected]>
2+
* This program is free software; you can redistribute it and/or modify
3+
* it under the terms of the GNU General Public License version 3.
4+
*/
5+
6+
#include "err.h"
7+
8+
enum
9+
{
10+
NP_ERR_INTERNAL = -1,
11+
NP_ERR_ADDR_EXCEEDED = -100,
12+
NP_ERR_ADDR_INVALID = -101,
13+
NP_ERR_ADDR_NOT_ALIGN = -102,
14+
NP_ERR_NAND_WR = -103,
15+
NP_ERR_NAND_RD = -104,
16+
NP_ERR_NAND_ERASE = -105,
17+
NP_ERR_CHIP_NOT_CONF = -106,
18+
NP_ERR_CMD_DATA_SIZE = -107,
19+
NP_ERR_CMD_INVALID = -108,
20+
NP_ERR_BUF_OVERFLOW = -109,
21+
NP_ERR_LEN_NOT_ALIGN = -110,
22+
NP_ERR_LEN_EXCEEDED = -111,
23+
NP_ERR_LEN_INVALID = -112,
24+
NP_ERR_BBT_OVERFLOW = -113,
25+
};
26+
27+
typedef struct
28+
{
29+
long int code;
30+
const char *str;
31+
} code_str_t;
32+
33+
static code_str_t err[] =
34+
{
35+
{ NP_ERR_INTERNAL, "Internal error" },
36+
{ NP_ERR_ADDR_EXCEEDED, "Operation address exceeded chip size" },
37+
{ NP_ERR_ADDR_INVALID, "Operation address is invalid" },
38+
{ NP_ERR_ADDR_NOT_ALIGN,
39+
"Operation address is not aligned to page/block size" },
40+
{ NP_ERR_NAND_WR, "Failed to write chip" },
41+
{ NP_ERR_NAND_RD, "Failed to read chip" },
42+
{ NP_ERR_NAND_ERASE, "Failed to erase chip" },
43+
{ NP_ERR_CHIP_NOT_CONF,
44+
"Programmer is not configured with chip parameters" },
45+
{ NP_ERR_CMD_DATA_SIZE, "Data size in command is wrong" },
46+
{ NP_ERR_CMD_INVALID, "Invalid command" },
47+
{ NP_ERR_BUF_OVERFLOW, "Buffer overflow" },
48+
{ NP_ERR_LEN_NOT_ALIGN, "Data length is not page aligned" },
49+
{ NP_ERR_LEN_EXCEEDED, "Data length exceeded chip size" },
50+
{ NP_ERR_LEN_INVALID, "Wrong data length" },
51+
{ NP_ERR_BBT_OVERFLOW, "Bad block table overflow" },
52+
};
53+
54+
const char *errCode2str(long int code)
55+
{
56+
for (unsigned int i = 0; i < sizeof(err) / sizeof (err[0]); i++)
57+
{
58+
if (err[i].code == code)
59+
return err[i].str;
60+
}
61+
62+
return "Unknown error";
63+
}

qt/err.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#ifndef ERR_H
2+
#define ERR_H
3+
4+
const char *errCode2str(long int code);
5+
6+
#endif // ERR_H

qt/qt.pro

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ SOURCES += main.cpp\
3434
settings_programmer_dialog.cpp \
3535
stm32.cpp \
3636
chip_db_dialog.cpp \
37-
chip_db_table_model.cpp
37+
chip_db_table_model.cpp \
38+
err.cpp
3839

3940
HEADERS += main_window.h \
4041
programmer.h \
@@ -47,7 +48,8 @@ HEADERS += main_window.h \
4748
settings_programmer_dialog.h \
4849
stm32.h \
4950
chip_db_dialog.h \
50-
chip_db_table_model.h
51+
chip_db_table_model.h \
52+
err.h
5153

5254
FORMS += main_window.ui \
5355
settings_programmer_dialog.ui \

qt/reader.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
#include "reader.h"
77
#include "cmd.h"
8+
#include "err.h"
89
#include <QDebug>
910
#include <QTextBlock>
1011
#include <QTextCursor>
@@ -106,7 +107,8 @@ int Reader::handleError(uint8_t *pbuf, uint32_t len)
106107
if (len < size)
107108
return 0;
108109

109-
logErr(QString("Programmer sent error: %1").arg(err->errCode));
110+
logErr(QString("Programmer sent error: (%1) %2").arg(err->errCode)
111+
.arg(errCode2str(-err->errCode)));
110112

111113
return -1;
112114
}

qt/writer.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*/
55

66
#include "writer.h"
7+
#include "err.h"
78
#include <QDebug>
89
#include <QTextBlock>
910
#include <QTextCursor>
@@ -113,7 +114,8 @@ int Writer::handleError(RespHeader *header, uint32_t len)
113114
if (len < (uint32_t)size)
114115
return 0;
115116

116-
logErr(QString("Programmer sent error: %1").arg(err->errCode));
117+
logErr(QString("Programmer sent error: (%1) %2").arg(err->errCode)
118+
.arg(errCode2str(-err->errCode)));
117119

118120
return -1;
119121
}

0 commit comments

Comments
 (0)