Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
qgroundcontrol
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Valentin Platzgummer
qgroundcontrol
Commits
41c0f457
Commit
41c0f457
authored
Sep 09, 2014
by
Vladimir Ermakov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
FTP: Remove CRC32.
parent
530cb4c2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
5 additions
and
77 deletions
+5
-77
QGCUASFileManager.cc
src/uas/QGCUASFileManager.cc
+3
-72
QGCUASFileManager.h
src/uas/QGCUASFileManager.h
+2
-5
No files found.
src/uas/QGCUASFileManager.cc
View file @
41c0f457
...
@@ -30,42 +30,6 @@
...
@@ -30,42 +30,6 @@
#include <QDir>
#include <QDir>
#include <string>
#include <string>
static
const
quint32
crctab
[]
=
{
0x00000000
,
0x77073096
,
0xee0e612c
,
0x990951ba
,
0x076dc419
,
0x706af48f
,
0xe963a535
,
0x9e6495a3
,
0x0edb8832
,
0x79dcb8a4
,
0xe0d5e91e
,
0x97d2d988
,
0x09b64c2b
,
0x7eb17cbd
,
0xe7b82d07
,
0x90bf1d91
,
0x1db71064
,
0x6ab020f2
,
0xf3b97148
,
0x84be41de
,
0x1adad47d
,
0x6ddde4eb
,
0xf4d4b551
,
0x83d385c7
,
0x136c9856
,
0x646ba8c0
,
0xfd62f97a
,
0x8a65c9ec
,
0x14015c4f
,
0x63066cd9
,
0xfa0f3d63
,
0x8d080df5
,
0x3b6e20c8
,
0x4c69105e
,
0xd56041e4
,
0xa2677172
,
0x3c03e4d1
,
0x4b04d447
,
0xd20d85fd
,
0xa50ab56b
,
0x35b5a8fa
,
0x42b2986c
,
0xdbbbc9d6
,
0xacbcf940
,
0x32d86ce3
,
0x45df5c75
,
0xdcd60dcf
,
0xabd13d59
,
0x26d930ac
,
0x51de003a
,
0xc8d75180
,
0xbfd06116
,
0x21b4f4b5
,
0x56b3c423
,
0xcfba9599
,
0xb8bda50f
,
0x2802b89e
,
0x5f058808
,
0xc60cd9b2
,
0xb10be924
,
0x2f6f7c87
,
0x58684c11
,
0xc1611dab
,
0xb6662d3d
,
0x76dc4190
,
0x01db7106
,
0x98d220bc
,
0xefd5102a
,
0x71b18589
,
0x06b6b51f
,
0x9fbfe4a5
,
0xe8b8d433
,
0x7807c9a2
,
0x0f00f934
,
0x9609a88e
,
0xe10e9818
,
0x7f6a0dbb
,
0x086d3d2d
,
0x91646c97
,
0xe6635c01
,
0x6b6b51f4
,
0x1c6c6162
,
0x856530d8
,
0xf262004e
,
0x6c0695ed
,
0x1b01a57b
,
0x8208f4c1
,
0xf50fc457
,
0x65b0d9c6
,
0x12b7e950
,
0x8bbeb8ea
,
0xfcb9887c
,
0x62dd1ddf
,
0x15da2d49
,
0x8cd37cf3
,
0xfbd44c65
,
0x4db26158
,
0x3ab551ce
,
0xa3bc0074
,
0xd4bb30e2
,
0x4adfa541
,
0x3dd895d7
,
0xa4d1c46d
,
0xd3d6f4fb
,
0x4369e96a
,
0x346ed9fc
,
0xad678846
,
0xda60b8d0
,
0x44042d73
,
0x33031de5
,
0xaa0a4c5f
,
0xdd0d7cc9
,
0x5005713c
,
0x270241aa
,
0xbe0b1010
,
0xc90c2086
,
0x5768b525
,
0x206f85b3
,
0xb966d409
,
0xce61e49f
,
0x5edef90e
,
0x29d9c998
,
0xb0d09822
,
0xc7d7a8b4
,
0x59b33d17
,
0x2eb40d81
,
0xb7bd5c3b
,
0xc0ba6cad
,
0xedb88320
,
0x9abfb3b6
,
0x03b6e20c
,
0x74b1d29a
,
0xead54739
,
0x9dd277af
,
0x04db2615
,
0x73dc1683
,
0xe3630b12
,
0x94643b84
,
0x0d6d6a3e
,
0x7a6a5aa8
,
0xe40ecf0b
,
0x9309ff9d
,
0x0a00ae27
,
0x7d079eb1
,
0xf00f9344
,
0x8708a3d2
,
0x1e01f268
,
0x6906c2fe
,
0xf762575d
,
0x806567cb
,
0x196c3671
,
0x6e6b06e7
,
0xfed41b76
,
0x89d32be0
,
0x10da7a5a
,
0x67dd4acc
,
0xf9b9df6f
,
0x8ebeeff9
,
0x17b7be43
,
0x60b08ed5
,
0xd6d6a3e8
,
0xa1d1937e
,
0x38d8c2c4
,
0x4fdff252
,
0xd1bb67f1
,
0xa6bc5767
,
0x3fb506dd
,
0x48b2364b
,
0xd80d2bda
,
0xaf0a1b4c
,
0x36034af6
,
0x41047a60
,
0xdf60efc3
,
0xa867df55
,
0x316e8eef
,
0x4669be79
,
0xcb61b38c
,
0xbc66831a
,
0x256fd2a0
,
0x5268e236
,
0xcc0c7795
,
0xbb0b4703
,
0x220216b9
,
0x5505262f
,
0xc5ba3bbe
,
0xb2bd0b28
,
0x2bb45a92
,
0x5cb36a04
,
0xc2d7ffa7
,
0xb5d0cf31
,
0x2cd99e8b
,
0x5bdeae1d
,
0x9b64c2b0
,
0xec63f226
,
0x756aa39c
,
0x026d930a
,
0x9c0906a9
,
0xeb0e363f
,
0x72076785
,
0x05005713
,
0x95bf4a82
,
0xe2b87a14
,
0x7bb12bae
,
0x0cb61b38
,
0x92d28e9b
,
0xe5d5be0d
,
0x7cdcefb7
,
0x0bdbdf21
,
0x86d3d2d4
,
0xf1d4e242
,
0x68ddb3f8
,
0x1fda836e
,
0x81be16cd
,
0xf6b9265b
,
0x6fb077e1
,
0x18b74777
,
0x88085ae6
,
0xff0f6a70
,
0x66063bca
,
0x11010b5c
,
0x8f659eff
,
0xf862ae69
,
0x616bffd3
,
0x166ccf45
,
0xa00ae278
,
0xd70dd2ee
,
0x4e048354
,
0x3903b3c2
,
0xa7672661
,
0xd06016f7
,
0x4969474d
,
0x3e6e77db
,
0xaed16a4a
,
0xd9d65adc
,
0x40df0b66
,
0x37d83bf0
,
0xa9bcae53
,
0xdebb9ec5
,
0x47b2cf7f
,
0x30b5ffe9
,
0xbdbdf21c
,
0xcabac28a
,
0x53b39330
,
0x24b4a3a6
,
0xbad03605
,
0xcdd70693
,
0x54de5729
,
0x23d967bf
,
0xb3667a2e
,
0xc4614ab8
,
0x5d681b02
,
0x2a6f2b94
,
0xb40bbe37
,
0xc30c8ea1
,
0x5a05df1b
,
0x2d02ef8d
};
QGCUASFileManager
::
QGCUASFileManager
(
QObject
*
parent
,
UASInterface
*
uas
,
uint8_t
unitTestSystemIdQGC
)
:
QGCUASFileManager
::
QGCUASFileManager
(
QObject
*
parent
,
UASInterface
*
uas
,
uint8_t
unitTestSystemIdQGC
)
:
QObject
(
parent
),
QObject
(
parent
),
...
@@ -83,29 +47,6 @@ QGCUASFileManager::QGCUASFileManager(QObject* parent, UASInterface* uas, uint8_t
...
@@ -83,29 +47,6 @@ QGCUASFileManager::QGCUASFileManager(QObject* parent, UASInterface* uas, uint8_t
Q_ASSERT
(
sizeof
(
RequestHeader
)
==
16
);
Q_ASSERT
(
sizeof
(
RequestHeader
)
==
16
);
}
}
/// @brief Calculates a 32 bit CRC for the specified request.
/// @param request Request to calculate CRC for. request->size must be set correctly.
/// @param state previous crc state
/// @return Calculated CRC
quint32
QGCUASFileManager
::
crc32
(
Request
*
request
,
unsigned
state
)
{
uint8_t
*
data
=
(
uint8_t
*
)
request
;
size_t
cbData
=
sizeof
(
RequestHeader
)
+
request
->
hdr
.
size
;
// Always calculate CRC with 0 initial CRC value
quint32
crcSave
=
request
->
hdr
.
crc32
;
request
->
hdr
.
crc32
=
0
;
request
->
hdr
.
padding
[
0
]
=
0
;
request
->
hdr
.
padding
[
1
]
=
0
;
for
(
size_t
i
=
0
;
i
<
cbData
;
i
++
)
state
=
crctab
[(
state
^
data
[
i
])
&
0xff
]
^
(
state
>>
8
);
request
->
hdr
.
crc32
=
crcSave
;
return
state
;
}
/// @brief Respond to the Ack associated with the Open command with the next Read command.
/// @brief Respond to the Ack associated with the Open command with the next Read command.
void
QGCUASFileManager
::
_openAckResponse
(
Request
*
openAck
)
void
QGCUASFileManager
::
_openAckResponse
(
Request
*
openAck
)
{
{
...
@@ -280,15 +221,6 @@ void QGCUASFileManager::receiveMessage(LinkInterface* link, mavlink_message_t me
...
@@ -280,15 +221,6 @@ void QGCUASFileManager::receiveMessage(LinkInterface* link, mavlink_message_t me
uint16_t
incomingSeqNumber
=
request
->
hdr
.
seqNumber
;
uint16_t
incomingSeqNumber
=
request
->
hdr
.
seqNumber
;
// Make sure we have a good CRC
quint32
expectedCRC
=
crc32
(
request
);
quint32
receivedCRC
=
request
->
hdr
.
crc32
;
if
(
receivedCRC
!=
expectedCRC
)
{
_currentOperation
=
kCOIdle
;
_emitErrorMessage
(
tr
(
"Bad CRC on received message: expected(%1) received(%2)"
).
arg
(
expectedCRC
).
arg
(
receivedCRC
));
return
;
}
// Make sure we have a good sequence number
// Make sure we have a good sequence number
uint16_t
expectedSeqNumber
=
_lastOutgoingSeqNumber
+
1
;
uint16_t
expectedSeqNumber
=
_lastOutgoingSeqNumber
+
1
;
if
(
incomingSeqNumber
!=
expectedSeqNumber
)
{
if
(
incomingSeqNumber
!=
expectedSeqNumber
)
{
...
@@ -440,8 +372,6 @@ QString QGCUASFileManager::errorString(uint8_t errorCode)
...
@@ -440,8 +372,6 @@ QString QGCUASFileManager::errorString(uint8_t errorCode)
return
QString
(
"read beyond end of file"
);
return
QString
(
"read beyond end of file"
);
case
kErrUnknownCommand
:
case
kErrUnknownCommand
:
return
QString
(
"unknown command"
);
return
QString
(
"unknown command"
);
case
kErrCrc
:
return
QString
(
"bad crc"
);
case
kErrFailErrno
:
case
kErrFailErrno
:
return
QString
(
"command failed"
);
return
QString
(
"command failed"
);
case
kErrInvalidDataSize
:
case
kErrInvalidDataSize
:
...
@@ -545,8 +475,9 @@ void QGCUASFileManager::_sendRequest(Request* request)
...
@@ -545,8 +475,9 @@ void QGCUASFileManager::_sendRequest(Request* request)
_lastOutgoingSeqNumber
++
;
_lastOutgoingSeqNumber
++
;
request
->
hdr
.
seqNumber
=
_lastOutgoingSeqNumber
;
request
->
hdr
.
seqNumber
=
_lastOutgoingSeqNumber
;
request
->
hdr
.
reserved
[
0
]
=
0
;
request
->
hdr
.
crc32
=
crc32
(
request
);
request
->
hdr
.
reserved
[
1
]
=
0
;
request
->
hdr
.
reserved
[
2
]
=
0
;
if
(
_systemIdQGC
==
0
)
{
if
(
_systemIdQGC
==
0
)
{
_systemIdQGC
=
MainWindow
::
instance
()
->
getMAVLink
()
->
getSystemId
();
_systemIdQGC
=
MainWindow
::
instance
()
->
getMAVLink
()
->
getSystemId
();
...
...
src/uas/QGCUASFileManager.h
View file @
41c0f457
...
@@ -84,8 +84,7 @@ protected:
...
@@ -84,8 +84,7 @@ protected:
uint8_t
opcode
;
///< Command opcode
uint8_t
opcode
;
///< Command opcode
uint8_t
size
;
///< Size of data
uint8_t
size
;
///< Size of data
uint8_t
req_opcode
;
///< Request opcode returned in kRspAck, kRspNak message
uint8_t
req_opcode
;
///< Request opcode returned in kRspAck, kRspNak message
uint8_t
padding
[
2
];
uint16_t
reserved
[
3
];
uint32_t
crc32
;
///< CRC for entire Request structure, with crc32 and padding set to 0
uint32_t
offset
;
///< Offsets for List and Read commands
uint32_t
offset
;
///< Offsets for List and Read commands
};
};
...
@@ -135,8 +134,7 @@ protected:
...
@@ -135,8 +134,7 @@ protected:
kErrInvalidSession
,
///< Session is not currently open
kErrInvalidSession
,
///< Session is not currently open
kErrNoSessionsAvailable
,
///< All available Sessions in use
kErrNoSessionsAvailable
,
///< All available Sessions in use
kErrEOF
,
///< Offset past end of file for List and Read commands
kErrEOF
,
///< Offset past end of file for List and Read commands
kErrUnknownCommand
,
///< Unknown command opcode
kErrUnknownCommand
///< Unknown command opcode
kErrCrc
///< CRC on Payload is incorrect
};
};
enum
OperationState
enum
OperationState
...
@@ -167,7 +165,6 @@ protected:
...
@@ -167,7 +165,6 @@ protected:
void
_sendTerminateCommand
(
void
);
void
_sendTerminateCommand
(
void
);
void
_closeReadSession
(
bool
success
);
void
_closeReadSession
(
bool
success
);
static
quint32
crc32
(
Request
*
request
,
unsigned
state
=
0
);
static
QString
errorString
(
uint8_t
errorCode
);
static
QString
errorString
(
uint8_t
errorCode
);
OperationState
_currentOperation
;
///< Current operation of state machine
OperationState
_currentOperation
;
///< Current operation of state machine
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment