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
a7f039bf
Commit
a7f039bf
authored
May 05, 2014
by
Lorenz Meier
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Operational toy examples
parent
c1f0d707
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
192 additions
and
17 deletions
+192
-17
QGCMAVLinkUASFactory.cc
src/uas/QGCMAVLinkUASFactory.cc
+1
-0
QGCUASFileManager.cc
src/uas/QGCUASFileManager.cc
+100
-2
QGCUASFileManager.h
src/uas/QGCUASFileManager.h
+18
-0
QGCUASFileView.cc
src/ui/QGCUASFileView.cc
+22
-0
QGCUASFileView.h
src/ui/QGCUASFileView.h
+4
-0
QGCUASFileView.ui
src/ui/QGCUASFileView.ui
+47
-15
No files found.
src/uas/QGCMAVLinkUASFactory.cc
View file @
a7f039bf
...
...
@@ -30,6 +30,7 @@ UASInterface* QGCMAVLinkUASFactory::createUAS(MAVLinkProtocol* mavlink, LinkInte
mav
->
setSystemType
((
int
)
heartbeat
->
type
);
// Connect this robot to the UAS object
connect
(
mavlink
,
SIGNAL
(
messageReceived
(
LinkInterface
*
,
mavlink_message_t
)),
mav
,
SLOT
(
receiveMessage
(
LinkInterface
*
,
mavlink_message_t
)));
connect
(
mavlink
,
SIGNAL
(
messageReceived
(
LinkInterface
*
,
mavlink_message_t
)),
mav
->
getFileManager
(),
SLOT
(
receiveMessage
(
LinkInterface
*
,
mavlink_message_t
)));
#ifdef QGC_PROTOBUF_ENABLED
connect
(
mavlink
,
SIGNAL
(
extendedMessageReceived
(
LinkInterface
*
,
std
::
tr1
::
shared_ptr
<
google
::
protobuf
::
Message
>
)),
mav
,
SLOT
(
receiveExtendedMessage
(
LinkInterface
*
,
std
::
tr1
::
shared_ptr
<
google
::
protobuf
::
Message
>
)));
#endif
...
...
src/uas/QGCUASFileManager.cc
View file @
a7f039bf
#include "QGCUASFileManager.h"
#include "QGC.h"
#include "MAVLinkProtocol.h"
#include <QFile>
#include <QDir>
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
)
:
QObject
(
parent
),
_mav
(
uas
)
_mav
(
uas
),
_encdata_seq
(
0
)
{
}
quint32
QGCUASFileManager
::
crc32
(
const
uint8_t
*
src
,
unsigned
len
,
unsigned
state
)
{
for
(
unsigned
i
=
0
;
i
<
len
;
i
++
)
state
=
crctab
[(
state
^
src
[
i
])
&
0xff
]
^
(
state
>>
8
);
return
state
;
}
void
QGCUASFileManager
::
nothingMessage
()
{
void
QGCUASFileManager
::
nothingMessage
()
{
mavlink_message_t
message
;
unsigned
crcstate
=
0
;
RequestHeader
hdr
;
hdr
.
magic
=
9
;
crcstate
=
crc32
((
uint8_t
*
)
&
hdr
,
4
,
crcstate
);
hdr
.
crc32
=
crcstate
;
mavlink_msg_encapsulated_data_pack
(
250
,
0
,
&
message
,
_encdata_seq
,
(
uint8_t
*
)
&
hdr
);
_mav
->
sendMessage
(
message
);
qDebug
()
<<
"Sent message!"
;
}
void
QGCUASFileManager
::
receiveMessage
(
LinkInterface
*
link
,
mavlink_message_t
message
)
{
switch
(
message
.
msgid
)
{
case
MAVLINK_MSG_ID_ENCAPSULATED_DATA
:
emit
statusMessage
(
"GOT ENC DATA"
);
break
;
}
}
void
QGCUASFileManager
::
listRecursively
(
const
QString
&
from
)
{
// This sends out one line to the text area
emit
statusMessage
(
"/"
);
emit
statusMessage
(
" fs/"
);
emit
statusMessage
(
" microsd/"
);
emit
statusMessage
(
" log001.bin"
);
}
void
QGCUASFileManager
::
downloadPath
(
const
QString
&
from
,
const
QString
&
to
)
{
// Send path, e.g. /fs/microsd and download content
// recursively into a local directory
char
buf
[
255
];
unsigned
len
=
10
;
QByteArray
data
(
buf
,
len
);
QString
filename
=
"log001.bin"
;
// XXX get this from onboard
// Qt takes care of slash conversions in paths
QFile
file
(
to
+
QDir
::
separator
()
+
filename
);
file
.
open
(
QIODevice
::
WriteOnly
);
file
.
write
(
data
);
file
.
close
();
emit
statusMessage
(
QString
(
"Downloaded: %1 to directory %2"
).
arg
(
filename
).
arg
(
to
));
}
src/uas/QGCUASFileManager.h
View file @
a7f039bf
...
...
@@ -11,12 +11,30 @@ public:
QGCUASFileManager
(
QObject
*
parent
,
UASInterface
*
uas
);
signals:
void
statusMessage
(
const
QString
&
msg
);
public
slots
:
void
receiveMessage
(
LinkInterface
*
link
,
mavlink_message_t
message
);
void
nothingMessage
();
void
listRecursively
(
const
QString
&
from
);
void
downloadPath
(
const
QString
&
from
,
const
QString
&
to
);
protected:
UASInterface
*
_mav
;
quint16
_encdata_seq
;
struct
RequestHeader
{
uint8_t
magic
;
uint8_t
session
;
uint8_t
opcode
;
uint8_t
size
;
uint32_t
crc32
;
uint32_t
offset
;
uint8_t
data
[];
};
static
quint32
crc32
(
const
uint8_t
*
src
,
unsigned
len
,
unsigned
state
);
};
...
...
src/ui/QGCUASFileView.cc
View file @
a7f039bf
...
...
@@ -2,6 +2,9 @@
#include "uas/QGCUASFileManager.h"
#include "ui_QGCUASFileView.h"
#include <QFileDialog>
#include <QDir>
QGCUASFileView
::
QGCUASFileView
(
QWidget
*
parent
,
QGCUASFileManager
*
manager
)
:
QWidget
(
parent
),
_manager
(
manager
),
...
...
@@ -10,9 +13,28 @@ QGCUASFileView::QGCUASFileView(QWidget *parent, QGCUASFileManager *manager) :
ui
->
setupUi
(
this
);
connect
(
ui
->
testButton
,
SIGNAL
(
clicked
()),
_manager
,
SLOT
(
nothingMessage
()));
connect
(
ui
->
listFilesButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
listFiles
()));
connect
(
ui
->
downloadButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
downloadFiles
()));
connect
(
_manager
,
SIGNAL
(
statusMessage
(
QString
)),
ui
->
messageArea
,
SLOT
(
appendPlainText
(
QString
)));
}
QGCUASFileView
::~
QGCUASFileView
()
{
delete
ui
;
}
void
QGCUASFileView
::
listFiles
()
{
_manager
->
listRecursively
(
ui
->
pathLineEdit
->
text
());
}
void
QGCUASFileView
::
downloadFiles
()
{
QString
dir
=
QFileDialog
::
getExistingDirectory
(
this
,
tr
(
"Open Directory"
),
QDir
::
homePath
(),
QFileDialog
::
ShowDirsOnly
|
QFileDialog
::
DontResolveSymlinks
);
// And now download to this location
_manager
->
downloadPath
(
ui
->
pathLineEdit
->
text
(),
dir
);
}
src/ui/QGCUASFileView.h
View file @
a7f039bf
...
...
@@ -16,6 +16,10 @@ public:
explicit
QGCUASFileView
(
QWidget
*
parent
,
QGCUASFileManager
*
manager
);
~
QGCUASFileView
();
public
slots
:
void
listFiles
();
void
downloadFiles
();
protected:
QGCUASFileManager
*
_manager
;
...
...
src/ui/QGCUASFileView.ui
View file @
a7f039bf
...
...
@@ -6,26 +6,58 @@
<rect>
<x>
0
</x>
<y>
0
</y>
<width>
4
00
</width>
<height>
300
</height>
<width>
4
14
</width>
<height>
518
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
<string>
Form
</string>
</property>
<widget
class=
"QPushButton"
name=
"testButton"
>
<property
name=
"geometry"
>
<rect>
<x>
30
</x>
<y>
20
</y>
<width>
114
</width>
<height>
32
</height>
</rect>
</property>
<property
name=
"text"
>
<string>
Test
</string>
</property>
</widget>
<layout
class=
"QGridLayout"
name=
"gridLayout"
>
<item
row=
"3"
column=
"1"
>
<widget
class=
"QPushButton"
name=
"listFilesButton"
>
<property
name=
"text"
>
<string>
List Files
</string>
</property>
</widget>
</item>
<item
row=
"0"
column=
"0"
colspan=
"3"
>
<widget
class=
"QPlainTextEdit"
name=
"messageArea"
/>
</item>
<item
row=
"1"
column=
"0"
colspan=
"3"
>
<widget
class=
"QTreeWidget"
name=
"treeWidget"
>
<column>
<property
name=
"text"
>
<string
notr=
"true"
>
1
</string>
</property>
</column>
</widget>
</item>
<item
row=
"3"
column=
"0"
>
<widget
class=
"QPushButton"
name=
"testButton"
>
<property
name=
"text"
>
<string>
Null Message
</string>
</property>
</widget>
</item>
<item
row=
"3"
column=
"2"
>
<widget
class=
"QPushButton"
name=
"downloadButton"
>
<property
name=
"text"
>
<string>
Download File
</string>
</property>
</widget>
</item>
<item
row=
"2"
column=
"0"
>
<widget
class=
"QLabel"
name=
"label"
>
<property
name=
"text"
>
<string>
Path:
</string>
</property>
</widget>
</item>
<item
row=
"2"
column=
"1"
colspan=
"2"
>
<widget
class=
"QLineEdit"
name=
"pathLineEdit"
/>
</item>
</layout>
</widget>
<resources/>
<connections/>
...
...
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