Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
motosat
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
Elphel
motosat
Commits
5bccccf6
Commit
5bccccf6
authored
5 years ago
by
Andrey Filippov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Adding scan mode
parent
7c14c1c8
master
No related merge requests found
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
103 additions
and
15 deletions
+103
-15
test_01.php
test_01.php
+103
-15
No files found.
test_01.php
View file @
5bccccf6
...
...
@@ -2,8 +2,9 @@
$motosat_ip
=
"192.168.1.250"
;
$motosat_url
=
"http://"
.
$motosat_ip
.
"/motor.xml"
;
$modem_ip
=
"192.168.0.1"
;
$modem_ip
=
"http://localhost/motosat/attic"
;
$modem_strengt_url
=
$modem_ip
.
"/sqf/sqfdisp/index.html"
;
//$modem_ip = "http://localhost/motosat/attic";
//$modem_strengt_url = $modem_ip."/sqf/sqfdisp/index.html";
$modem_strengt_url
=
"http://"
.
$modem_ip
.
"/sqf/sqfdisp/index.html"
;
$AZ_CPD
=
12.74445
;
$EL_CPD
=
75.78567
;
$SK_CPD
=
8.34
;
...
...
@@ -13,6 +14,7 @@ $SK_0 = 55.7554; // degrees
$AZ_CMAX
=
4790
;
$EL_CMAX
=
10979
;
$SK_CMAX
=
931
;
$MODEM_THRESHOLD
=
17.0
;
// consider something if modem strength is above
/*
http://192.168.1.250/motor.xml?Action=ElUp&Distance=0.5&Units=1 0.5 degree up
...
...
@@ -175,9 +177,15 @@ string(61) "http://192.168.1.250/motor.xml?Action=ElDn&Distance=1&Units=0"
$dbg_file
=
fopen
(
"/home/eyesis/git/motosat/attic/logs/modem.log"
,
"w"
);
fprintf
(
$dbg_file
,
"test log
\n
"
);
$modem_strength
=
getModemStrength
();
print
(
$modem_strength
);
print
(
"<p>"
.
date
(
'l jS \of F Y h:i:s A'
)
.
"</p>"
);
$modem_strength
=
getModemStrength
();
for
(
$i
=
0
;
$i
<
10
;
$i
++
){
//$modem_strength= getModemStrength();
$xml_state
=
simplexml_load_file
(
$motosat_url
);
// 0.29 sec
}
print
(
"<p>modem_strength="
.
$modem_strength
.
" file="
.
$modem_strengt_url
.
"</p>"
);
print
(
"<p>"
.
date
(
'l jS \of F Y h:i:s A'
)
.
"</p>"
);
exit
(
0
);
...
...
@@ -192,15 +200,51 @@ foreach ($DishAngle as $key => $value){
$DishAngle
[
$key
]
=
floatval
(
$value
);
}
$dbg
=
true
;
$multi
=
false
;
$dbg
=
false
;
// true;
$multi
=
true
;
// false;
$wnd_az
=
0
;
$wnd_el
=
0
;
$scan_step
=
1.0
;
$min_strength
=
$MODEM_THRESHOLD
;
if
(
isset
(
$_GET
[
"dbg"
]))
{
$dbg
=
myval
(
$_GET
[
"dbg"
]);}
if
(
isset
(
$_GET
[
"multi"
]))
{
$multi
=
myval
(
$_GET
[
"multi"
]);}
if
(
isset
(
$_GET
[
"az"
]))
{
$DishAngle
[
0
]
=
myfval
(
$_GET
[
"az"
]);}
if
(
isset
(
$_GET
[
"el"
]))
{
$DishAngle
[
1
]
=
myfval
(
$_GET
[
"el"
]);}
if
(
isset
(
$_GET
[
"sk"
]))
{
$DishAngle
[
2
]
=
myfval
(
$_GET
[
"sk"
]);}
if
(
isset
(
$_GET
[
"wnd_az"
]))
{
$wnd_az
=
myfval
(
$_GET
[
"wnd_az"
]);}
if
(
isset
(
$_GET
[
"wnd_el"
]))
{
$wnd_el
=
myfval
(
$_GET
[
"wnd_el"
]);}
if
(
isset
(
$_GET
[
"scan_step"
]))
{
$scan_step
=
myfval
(
$_GET
[
"scan_step"
]);}
if
(
isset
(
$_GET
[
"min_strength"
]))
{
$min_strength
=
myfval
(
$_GET
[
"min_strength"
]);}
$scan_mode
=
(
$wnd_az
>
0
)
||
(
$wnd_el
>
0
);
if
(
$scan_mode
){
$xml_state
=
scan_window
(
$min_strength
,
$DishAngle
,
$wnd_az
,
$wnd_el
,
$scan_step
);
$xml
=
new
SimpleXMLElement
(
"<?xml version='1.0'?><motosat/>"
);
$State
=
$xml_state
->
State
+
0
;
// 1 - Ready, 2 - Busy
$busy
=
(
$State
&
2
)
!=
0
;
$SignalQuality
=
(
explode
(
","
,
myfval
(
$xml_state
->
SignalQuality
)[
0
]));
$DishCount
=
$xml_state
->
DishCount
;
$DishAngle
=
$xml_state
->
DishAngle
;
$Success
=
$xml_state
->
Success
;
$xml
->
addChild
(
'Success'
,(
string
)
$Success
);
$xml
->
addChild
(
'SignalQuality'
,(
string
)
$SignalQuality
);
$xml
->
addChild
(
'DishAngle'
,(
string
)
$DishAngle
);
$xml
->
addChild
(
'DishCount'
,(
string
)
$DishCount
);
$xml
->
addChild
(
'busy'
,(
string
)
$busy
);
$xml
->
addChild
(
'State'
,(
string
)
$State
);
$rslt
=
$xml
->
asXML
();
header
(
"Content-Type: text/xml"
);
header
(
"Content-Length: "
.
strlen
(
$rslt
)
.
"
\n
"
);
header
(
"Pragma: no-cache
\n
"
);
// allow CORS: needed for multicam controls
header
(
'Access-Control-Allow-Origin: *'
);
printf
(
$rslt
);
exit
(
0
);
}
$total_cycles
=
0
;
if
(
$multi
)
{
...
...
@@ -236,7 +280,38 @@ $SK_CMAX = 931;
*/
function
getModemStrength
(){
function
scan_window
(
$threshold
,
$DishAngleCenter
,
$wnd_az
,
$wnd_el
,
$scan_step
){
global
$motosat_url
;
$DishAngle
=
Array
(
$DishAngleCenter
[
0
],
$DishAngleCenter
[
1
],
$DishAngleCenter
[
2
]);
$pass
=
0
;
for
(
$DishAngle
[
1
]
=
$DishAngleCenter
[
1
]
-
$wnd_el
/
2
;
$DishAngle
[
1
]
<=
(
$DishAngleCenter
[
1
]
+
$wnd_el
/
2
);
$DishAngle
[
1
]
+=
$scan_step
)
{
if
(
$pass
&
1
)
{
$az_start
=
$DishAngleCenter
[
1
]
+
$wnd_el
/
2
;
$az_end
=
$DishAngleCenter
[
1
]
-
$wnd_el
/
2
;
}
else
{
$az_start
=
$DishAngleCenter
[
1
]
-
$wnd_el
/
2
;
$az_end
=
$DishAngleCenter
[
1
]
+
$wnd_el
/
2
;
}
$DishAngle
[
0
]
=
$az_start
;
moveElAzSk_degrees
(
$DishAngle
);
$DishAngle
[
0
]
=
$az_end
;
moveElAzSk_start_degrees
(
$DishAngle
);
$scan_rslt
=
waitMotorsReady
(
$threshold
);
if
(
$scan_rslt
<
0
)
{
$xml_state
=
simplexml_load_file
(
$motosat_url
);
$xml_state
->
addChild
(
'Success'
,(
string
)
true
);
return
$xml_state
;
}
}
moveElAzSk_degrees
(
$DishAngleCenter
);
$xml_state
=
simplexml_load_file
(
$motosat_url
);
$xml_state
->
addChild
(
'Success'
,(
string
)
false
);
return
$xml_state
;
}
function
getModemStrength
(){
//0.2sec
global
$modem_strengt_url
,
$dbg_file
;
$modem_page
=
file_get_contents
(
"
$modem_strengt_url
"
);
$matches
=
null
;
// just define
...
...
@@ -351,7 +426,13 @@ function moveElAzSk_start_degrees($new_azelsk_degree) {
return
moveElAzSk_start_counts
(
$new_azelsk_count
);
}
function
waitMotorsReady
(){
/**
* Wait motors stopped and optionally modem strength > threshold
* Can be improved slightly by curl-multi: reading modem - 0.2s, controller - 0.29s
* @param $modem_threshold - if >0, stop on modem strength above threshold
* @return: 0: no ovement needed, >0 - number of status requests, <0 - -SignalQuality
*/
function
waitMotorsReady
(
$modem_threshold
=
0.0
){
//
global
$motosat_url
;
$busy
=
true
;
$try
=
0
;
...
...
@@ -359,7 +440,14 @@ function waitMotorsReady(){
$xml_state
=
simplexml_load_file
(
$motosat_url
);
$State
=
$xml_state
->
State
+
0
;
// 1 - Ready, 2 - Busy
$busy
=
(
$State
&
2
)
!=
0
;
if
(
$modem_threshold
>
0
){
$SignalQuality
=
(
explode
(
","
,
myfval
(
$xml_state
->
SignalQuality
)[
0
]));
$url
=
$motosat_url
.
"?Action=Stop&Distance=0&Units=0"
;
$xml_state
=
simplexml_load_file
(
$url
);
return
-
$SignalQuality
;
}
$try
++
;
//?Action=Stop&Distance=0&Units=0
}
return
$try
;
}
...
...
This diff is collapsed.
Click to expand it.
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