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
440cc226
Commit
440cc226
authored
Aug 08, 2013
by
tstellanova
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
keep the received params list clean
parent
cade16c1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
24 deletions
+31
-24
UASParameterCommsMgr.cc
src/uas/UASParameterCommsMgr.cc
+25
-18
UASParameterDataModel.h
src/uas/UASParameterDataModel.h
+4
-4
QGCParamWidget.cc
src/ui/QGCParamWidget.cc
+2
-2
No files found.
src/uas/UASParameterCommsMgr.cc
View file @
440cc226
...
@@ -99,15 +99,14 @@ void UASParameterCommsMgr::requestParameterList()
...
@@ -99,15 +99,14 @@ void UASParameterCommsMgr::requestParameterList()
void
UASParameterCommsMgr
::
retransmissionGuardTick
()
void
UASParameterCommsMgr
::
retransmissionGuardTick
()
{
{
if
(
transmissionActive
)
{
if
(
transmissionActive
)
{
if
(
transmissionListMode
)
{
if
(
transmissionListSizeKnown
.
isEmpty
()
)
{
if
(
transmissionListMode
&&
transmissionListSizeKnown
.
isEmpty
()
)
{
//we are still waitin for the first parameter list response
//we are still waitin for the first parameter list response
if
(
QGC
::
groundTimeMilliseconds
()
>
this
->
listRecvTimeout
)
{
if
(
QGC
::
groundTimeMilliseconds
()
>
this
->
listRecvTimeout
)
{
//re-request parameters
//re-request parameters
setParameterStatusMsg
(
tr
(
"TIMEOUT: Re-requesting param list"
),
ParamCommsStatusLevel_Warning
);
setParameterStatusMsg
(
tr
(
"TIMEOUT: Re-requesting param list"
),
ParamCommsStatusLevel_Warning
);
listRecvTimeout
=
QGC
::
groundTimeMilliseconds
()
+
10000
;
listRecvTimeout
=
QGC
::
groundTimeMilliseconds
()
+
10000
;
mav
->
requestParameters
();
mav
->
requestParameters
();
}
}
}
return
;
return
;
}
}
...
@@ -142,8 +141,8 @@ void UASParameterCommsMgr::retransmissionGuardTick()
...
@@ -142,8 +141,8 @@ void UASParameterCommsMgr::retransmissionGuardTick()
// Re-request at maximum retransmissionBurstRequestSize parameters at once
// Re-request at maximum retransmissionBurstRequestSize parameters at once
// to prevent link flooding
// to prevent link flooding
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>::
iterator
i
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>::
iterator
i
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>
onboardParams
=
paramDataModel
->
getOnboardParameters
();
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>
*
onboardParams
=
paramDataModel
->
getOnboardParameters
();
for
(
i
=
onboardParams
.
begin
();
i
!=
onboardParams
.
end
();
++
i
)
{
for
(
i
=
onboardParams
->
begin
();
i
!=
onboardParams
->
end
();
++
i
)
{
// Iterate through the parameters of the component
// Iterate through the parameters of the component
int
component
=
i
.
key
();
int
component
=
i
.
key
();
// Request n parameters from this component (at maximum)
// Request n parameters from this component (at maximum)
...
@@ -175,7 +174,7 @@ void UASParameterCommsMgr::retransmissionGuardTick()
...
@@ -175,7 +174,7 @@ void UASParameterCommsMgr::retransmissionGuardTick()
if
(
count
<
retransmissionBurstRequestSize
)
{
if
(
count
<
retransmissionBurstRequestSize
)
{
// Re-request write operation
// Re-request write operation
QVariant
value
=
missingParams
->
value
(
key
);
QVariant
value
=
missingParams
->
value
(
key
);
switch
((
int
)
onboardParams
.
value
(
component
)
->
value
(
key
).
type
())
switch
((
int
)
onboardParams
->
value
(
component
)
->
value
(
key
).
type
())
{
{
case
QVariant
:
:
Int
:
case
QVariant
:
:
Int
:
{
{
...
@@ -395,13 +394,20 @@ void UASParameterCommsMgr::receivedParameterUpdate(int uas, int compId, int para
...
@@ -395,13 +394,20 @@ void UASParameterCommsMgr::receivedParameterUpdate(int uas, int compId, int para
// Mark list size as known
// Mark list size as known
transmissionListSizeKnown
.
insert
(
compId
,
true
);
transmissionListSizeKnown
.
insert
(
compId
,
true
);
// Mark all parameters as missing
qDebug
()
<<
"Mark all parameters as missing"
;
QList
<
int
>*
compParamList
=
transmissionMissingPackets
.
value
(
compId
);
for
(
int
i
=
0
;
i
<
paramCount
;
++
i
)
{
for
(
int
i
=
0
;
i
<
paramCount
;
++
i
)
{
if
(
!
transmissionMissingPackets
.
value
(
compId
)
->
contains
(
i
))
{
if
(
!
compParamList
->
contains
(
i
))
{
transmissionMissingPackets
.
value
(
compId
)
->
append
(
i
);
if
(
i
!=
paramId
)
{
compParamList
->
append
(
i
);
}
else
{
qDebug
()
<<
"Already received "
<<
paramId
;
}
}
}
}
}
// There is only one transmission timeout for all components
// There is only one transmission timeout for all components
// since components do not manage their transmission,
// since components do not manage their transmission,
// the longest timeout is safe for all components.
// the longest timeout is safe for all components.
...
@@ -491,7 +497,8 @@ void UASParameterCommsMgr::receivedParameterUpdate(int uas, int compId, int para
...
@@ -491,7 +497,8 @@ void UASParameterCommsMgr::receivedParameterUpdate(int uas, int compId, int para
else
{
else
{
qDebug
()
<<
"missCount:"
<<
missCount
<<
"missWriteCount:"
<<
missWriteCount
;
qDebug
()
<<
"missCount:"
<<
missCount
<<
"missWriteCount:"
<<
missWriteCount
;
foreach
(
int
key
,
transmissionMissingPackets
.
keys
())
{
foreach
(
int
key
,
transmissionMissingPackets
.
keys
())
{
qDebug
()
<<
"Missing:"
<<
key
;
QList
<
int
>*
list
=
transmissionMissingPackets
.
value
(
key
);
qDebug
()
<<
"Component"
<<
key
<<
"missing numParams:"
<<
list
->
count
()
;
}
}
}
}
}
}
...
@@ -509,9 +516,9 @@ void UASParameterCommsMgr::sendPendingParameters()
...
@@ -509,9 +516,9 @@ void UASParameterCommsMgr::sendPendingParameters()
{
{
// Iterate through all components, through all pending parameters and send them to UAS
// Iterate through all components, through all pending parameters and send them to UAS
int
parametersSent
=
0
;
int
parametersSent
=
0
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>
changedValues
=
paramDataModel
->
getPendingParameters
();
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>
*
changedValues
=
paramDataModel
->
getPendingParameters
();
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>::
iterator
i
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>::
iterator
i
;
for
(
i
=
changedValues
.
begin
();
i
!=
changedValues
.
end
();
++
i
)
{
for
(
i
=
changedValues
->
begin
();
i
!=
changedValues
->
end
();
++
i
)
{
// Iterate through the parameters of the component
// Iterate through the parameters of the component
int
compid
=
i
.
key
();
int
compid
=
i
.
key
();
QMap
<
QString
,
QVariant
>*
comp
=
i
.
value
();
QMap
<
QString
,
QVariant
>*
comp
=
i
.
value
();
...
...
src/uas/UASParameterDataModel.h
View file @
440cc226
...
@@ -69,12 +69,12 @@ public:
...
@@ -69,12 +69,12 @@ public:
return
onboardParameters
.
value
(
componentId
);
return
onboardParameters
.
value
(
componentId
);
}
}
QMap
<
int
,
QMap
<
QString
,
QVariant
>*
>
getPendingParameters
()
{
QMap
<
int
,
QMap
<
QString
,
QVariant
>*
>
*
getPendingParameters
()
{
return
pendingParameters
;
return
&
pendingParameters
;
}
}
QMap
<
int
,
QMap
<
QString
,
QVariant
>*
>
getOnboardParameters
()
{
QMap
<
int
,
QMap
<
QString
,
QVariant
>*
>
*
getOnboardParameters
()
{
return
onboardParameters
;
return
&
onboardParameters
;
}
}
...
...
src/ui/QGCParamWidget.cc
View file @
440cc226
...
@@ -432,9 +432,9 @@ void QGCParamWidget::writeParameters()
...
@@ -432,9 +432,9 @@ void QGCParamWidget::writeParameters()
int
changedParamCount
=
0
;
int
changedParamCount
=
0
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>::
iterator
i
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>::
iterator
i
;
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>
changedValues
=
paramDataModel
->
getPendingParameters
();
QMap
<
int
,
QMap
<
QString
,
QVariant
>*>
*
changedValues
=
paramDataModel
->
getPendingParameters
();
for
(
i
=
changedValues
.
begin
();
i
!=
changedValues
.
end
()
,
(
0
==
changedParamCount
);
++
i
)
{
for
(
i
=
changedValues
->
begin
();
(
i
!=
changedValues
->
end
())
&&
(
0
==
changedParamCount
);
++
i
)
{
// Iterate through the parameters of the component
// Iterate through the parameters of the component
QMap
<
QString
,
QVariant
>*
compPending
=
i
.
value
();
QMap
<
QString
,
QVariant
>*
compPending
=
i
.
value
();
changedParamCount
+=
compPending
->
count
();
changedParamCount
+=
compPending
->
count
();
...
...
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