Skip to content

Commit

Permalink
Merge pull request #3607 from AllskyTeam/support-multiple-cameras-of-…
Browse files Browse the repository at this point in the history
…same-type

Support multiple cameras of same type
  • Loading branch information
EricClaeys authored May 7, 2024
2 parents f0aa28b + 770ccc7 commit 5042009
Show file tree
Hide file tree
Showing 15 changed files with 607 additions and 328 deletions.
45 changes: 15 additions & 30 deletions allsky.sh
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,6 @@ if [[ -f ${POST_INSTALLATION_ACTIONS} ]]; then
fi

USE_NOTIFICATION_IMAGES="$( settings ".notificationimages" )" || exit "${EXIT_ERROR_STOP}"
LOCALE="$( settings ".locale" )" || exit "${EXIT_ERROR_STOP}"

# Make sure we are not already running.
pgrep "${ME}" | grep -v $$ | xargs "sudo kill -9" 2>/dev/null
Expand Down Expand Up @@ -248,27 +247,16 @@ fi

: > "${ARGS_FILE}"

# If the locale isn't in the settings file, try to determine it.
if [[ -z ${LOCALE} ]]; then
if [[ -n ${LC_ALL} ]]; then
echo "locale=${LC_ALL}"
elif [[ -n ${LANG} ]]; then
echo "locale=${LANG}"
elif [[ -n ${LANGUAGE} ]]; then
echo "locale=${LANGUAGE}"
fi >> "${ARGS_FILE}"
fi

# We must pass "-config ${ARGS_FILE}" on the command line,
# and debuglevel we did above, so don't do them again.
# Only pass settings that are used by the capture program.
ARGS="$( "${ALLSKY_WEBUI}/includes/convertJSON.php" --capture-only )"
if [[ $? -ne 0 ]]; then
if ! ARGS="$( "${ALLSKY_SCRIPTS}/convertJSON.php" --capture-only )" ; then
echo "${ME}: ERROR: convertJSON.php returned: ${ARGS}"
set_allsky_status "${ALLSKY_STATUS_ERROR}"
exit "${EXIT_ERROR_STOP}"
fi
echo "${ARGS}" | grep -E -i -v "^config=|^debuglevel=" >> "${ARGS_FILE}"
# We must pass "-config ${ARGS_FILE}" on the command line and
# other settings needed at the start of the capture program.
echo "${ARGS}" |
grep -E -i -v "^config=|^debuglevel=^cmd=|^cameramodel|^cameranumber|^locale=" >> "${ARGS_FILE}"

# When using a desktop environment a preview of the capture can be displayed.
# The preview mode does not work if we are started as a service or
Expand All @@ -281,12 +269,11 @@ echo "${ARGS}" | grep -E -i -v "^config=|^debuglevel=" >> "${ARGS_FILE}"

} >> "${ARGS_FILE}"

FREQUENCY_FILE="${ALLSKY_TMP}/IMG_UPLOAD_FREQUENCY.txt"
# If the user wants images uploaded only every n times, save that number to a file.
if [[ ${IMG_UPLOAD_FREQUENCY} -ne 1 ]]; then
# Save "1" so we upload the first image.
# saveImage.sh will write ${IMG_UPLOAD_FREQUENCY} to the file as needed.
echo "1" > "${FREQUENCY_FILE}"
echo "1" > "${FREQUENCY_FILE}" # FREQUENCY_FILE is global
else
rm -f "${FREQUENCY_FILE}"
fi
Expand All @@ -298,23 +285,21 @@ activate_python_venv
python3 "${ALLSKY_SCRIPTS}/flow-runner.py" --cleartimings
deactivate_python_venv

# Pass some arguments via the environment so they can be used as soon as the program starts.
export ALLSKY_DEBUG_LEVEL
if [[ ${CAMERA_TYPE} == "RPi" ]]; then
export RPi_COMMAND_TO_USE
export CONNECTED_CAMERAS_INFO
export RPi_SUPPORTED_CAMERAS
fi
C="$( settings ".cameranumber" )"
[[ -n ${C} ]] && export CAMERANUMBER="${C}"

function catch_signal() { return 0; }
trap "catch_signal" SIGTERM SIGINT SIGHUP

set_allsky_status "${ALLSKY_STATUS_STARTING}"

# Run the camera-specific capture program - this is the main attraction...
"${ALLSKY_BIN}/${CAPTURE}" -config "${ARGS_FILE}"
CAMERA_NUMBER="$( settings ".cameranumber" )"
CAMERA_NUMBER="${CAMERA_NUMBER:-0}" # default
"${ALLSKY_BIN}/${CAPTURE}" \
-debuglevel "${ALLSKY_DEBUG_LEVEL}" \
-cmd "${RPi_COMMAND_TO_USE}" \
-cameramodel "${CAMERA_MODEL}" \
-cameranumber "${CAMERA_NUMBER}" \
-locale "$( settings ".locale" )" \
-config "${ARGS_FILE}"
RETCODE=$?

if [[ ${RETCODE} -eq ${EXIT_OK} ]]; then
Expand Down
22 changes: 11 additions & 11 deletions config_repo/RPi_cameraInfo.txt.repo
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Exposure Exposure Time (us) 230000000 1 10000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPO
WB_R White balance: Red component 10.0 0.1 2.5 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 10.0 0.1 2.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Sensor Temperature 80 -20 NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 16.0 1.0 16.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 230 * MS_IN_SEC 1 60 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 10.0 -10.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -41,8 +41,8 @@ Gain Gain 16.0 1.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_GAIN
Exposure Exposure Time (us) 230000000 1 10000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPOSURE
WB_R White balance: Red component 10.0 0.1 2.5 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 10.0 0.1 2.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Temperature not supported NOT_SET NOT_SET NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Temperature Temperature not supported NOT_SET NOT_SET NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 16.0 1.0 16.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 230 * MS_IN_SEC 1 60 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 10 -10 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -62,7 +62,7 @@ Exposure Exposure Time (us) 112015553 26 10000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXP
WB_R White balance: Red component 32.0 0.0 2.5 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 32.0 0.0 2.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Sensor Temperature 80 -20 NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 16.0 1.122807 16.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 112015553 / US_IN_MS 26.0 60 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 8.0 -8.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -81,8 +81,8 @@ Gain Gain 63.9375 1.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_GAIN
Exposure Exposure Time (us) 969249 130 9000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPOSURE
WB_R White balance: Red component 32.0 0.0 0.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 32.0 0.0 0.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Temperature not supported NOT_SET NOT_SET NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Temperature Temperature not supported NOT_SET NOT_SET NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 63.9375 1.0 63.9375 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 969249 / US_IN_MS 1.0 9 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 8.0 -8.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -103,7 +103,7 @@ Exposure Exposure Time (us) 200000000 1 10000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPO
WB_R White balance: Red component 10.0 0.1 2.5 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 10.0 0.1 2.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Sensor Temperature 80 -20 NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 16.0 1.0 16.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 200 * MS_IN_SEC 1 60 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 10.0 -10.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -124,7 +124,7 @@ Exposure Exposure Time (us) 200000000 1 10000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPO
WB_R White balance: Red component 32.0 0.1 2.5 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 32.0 0.1 2.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Sensor Temperature 80 -20 NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 16.0 1.0 16.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 200 * MS_IN_SEC 1 60 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 10.0 -10.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -144,7 +144,7 @@ Exposure Exposure Time (us) 200000000 1 10000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPO
WB_R White balance: Red component 10.0 0.1 2.5 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 10.0 0.1 2.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Temperature Sensor Temperature 80 -20 NOT_SET NOT_SET ASI_FALSE ASI_FALSE ASI_TEMPERATURE
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 16.0 1.0 16.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 200 * MS_IN_SEC 1 60 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 10.0 -10.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -164,7 +164,7 @@ Gain Gain 200.0 1.0 1.33 NOT_SET ASI_TRUE ASI_TRUE ASI_GAIN
Exposure Exposure Time (us) 15500000 14 10000000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPOSURE
WB_R White balance: Red component 32.0 0.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 32.0 0.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 200.0 1.0 200.0 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 15.5 * MS_IN_SEC 1 15.5 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 8.0 -8.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand All @@ -184,7 +184,7 @@ Gain Gain 10.666667 1.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_GAIN
Exposure Exposure Time (us) 11767556.0 75 10000000 NOT_SET ASI_TRUE ASI_TRUE ASI_EXPOSURE
WB_R White balance: Red component 32.0 0.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_R
WB_B White balance: Blue component 32.0 0.0 1.0 NOT_SET ASI_TRUE ASI_TRUE ASI_WB_B
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
Flip Flip: 0->None 1->Horiz 2->Vert 3->Both 3 0 0 NOT_SET ASI_FALSE ASI_TRUE ASI_FLIP
AutoExpMaxGain Auto exposure maximum gain value 10.666667 1.0 10.666667 NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_GAIN
AutoExpMaxExpMS Auto exposure maximum exposure value (ms) 11.767556 * MS_IN_SEC 1 11.767556 * MS_IN_SEC NOT_SET ASI_FALSE ASI_TRUE ASI_AUTO_MAX_EXP
ExposureCompensation Exposure Compensation 8.0 -8.0 0.0 NOT_SET ASI_FALSE ASI_TRUE EV
Expand Down
66 changes: 35 additions & 31 deletions config_repo/options.json.repo
Original file line number Diff line number Diff line change
Expand Up @@ -783,6 +783,7 @@
"type" : "float",
"usage" : "capture",
"carryforward" : true,
"checkchanges" : true,
"action" : "reload"
},
{
Expand Down Expand Up @@ -1317,8 +1318,7 @@
"description": "Width of resized timelapse video. <span class='WebUIValue'>0</span> disables resize.",
"label": "Width",
"type": "integer",
"booldependson" : "timelapsegenerate",
"checkchanges" : true
"booldependson" : "timelapsegenerate"
},
{
"name": "timelapseheight",
Expand All @@ -1328,8 +1328,7 @@
"description": "Height of resized timelapse video. <span class='WebUIValue'>0</span> disables resize.",
"label": "Height",
"type": "integer",
"booldependson" : "timelapsegenerate",
"checkchanges" : true
"booldependson" : "timelapsegenerate"
},
{
"name": "timelapsebitrate",
Expand All @@ -1339,8 +1338,7 @@
"description": "Bitrate (in K) of timelapse video. Higher values produce higher quality but larger files. Do NOT add <code>k</code>.",
"label": "Bitrate",
"type" : "integer",
"booldependson" : "timelapsegenerate",
"checkchanges" : true
"booldependson" : "timelapsegenerate"
},
{
"name": "timelapsefps",
Expand Down Expand Up @@ -1435,8 +1433,7 @@
"description": "Width of resized mini-timelapse video. <span class='WebUIValue'>0</span> disables resize.",
"label": "Width",
"type": "integer",
"valuedependson" : "minitimelapsenumimages=[1-9]*",
"checkchanges" : true
"valuedependson" : "minitimelapsenumimages=[1-9]*"
},
{
"name": "minitimelapseheight",
Expand All @@ -1446,8 +1443,7 @@
"description": "Height of resized mini-timelapse video. <span class='WebUIValue'>0</span> disables resize.",
"label": "Height",
"type": "integer",
"valuedependson" : "minitimelapsenumimages=[1-9]*",
"checkchanges" : true
"valuedependson" : "minitimelapsenumimages=[1-9]*"
},
{
"name": "minitimelapsebitrate",
Expand Down Expand Up @@ -1483,8 +1479,9 @@
"label" : "VCODEC",
"type" : "text",
"carryforward" : true,
"comment": "check using ffmpeg -encoder looking at argument 2 for ' libxs264 '",
"booldependson" : "timelapsegenerate",
"checkchanges" : true
"checkchanges": true
},
{
"name" : "timelapsepixfmt",
Expand All @@ -1494,6 +1491,7 @@
"type" : "text",
"carryforward" : true,
"booldependson" : "timelapsegenerate",
"comment": "check using ffmpeg -pix_fmts looking at argument 2 for ' yuv420p '",
"checkchanges" : true
},
{
Expand Down Expand Up @@ -1921,7 +1919,7 @@
{
"name" : "remotewebsiteimageuploadoriginalname",
"default" : false,
"description" : "Enable to upload images using YYYYMMDDHHMMSS naming. Rarely used.",
"description" : "Enable to upload images using YYYYMMDDHHMMSS naming.",
"label" : "Upload With Original Name",
"type" : "boolean",
"carryforward" : true,
Expand All @@ -1930,7 +1928,7 @@
{
"name" : "remotewebsitevideodestinationname",
"default" : "",
"description" : "Optional name of the remote video file. Rarely used.",
"description" : "Optional name of the remote video file.",
"label" : "Remote Video File Name",
"type" : "text",
"carryforward" : true,
Expand All @@ -1940,7 +1938,7 @@
{
"name" : "remotewebsitekeogramdestinationname",
"default" : "",
"description" : "Optional name of the remote keogram file. Rarely used.",
"description" : "Optional name of the remote keogram file.",
"label" : "Remote Keogram File Name",
"type" : "text",
"carryforward" : true,
Expand All @@ -1950,7 +1948,7 @@
{
"name" : "remotewebsitestartrailsdestinationname",
"default" : "",
"description" : "Optional name of the remote startrails file. Rarely used.",
"description" : "Optional name of the remote startrails file.",
"label" : "Remote Startrails File Name",
"type" : "text",
"carryforward" : true,
Expand Down Expand Up @@ -2156,16 +2154,16 @@
{
"name" : "remoteserverimageuploadoriginalname",
"default" : false,
"description" : "Enable to upload images using YYYYMMDDHHMMSS naming. Rarely used.",
"description" : "Enable to upload images using YYYYMMDDHHMMSS naming.",
"label" : "Upload With Original Name",
"type" : "boolean",
"carryforward" : true,
"valuedependson" : "imageuploadfrequency=[1-9]*"
},
{
"name" : "remoteservervideodestinationname",
"default" : "allsky.mp4",
"description" : "Optional name of the remote video file. Usually used.",
"default" : "",
"description" : "Optional name of the remote video file.",
"label" : "Remote Video File Name",
"type" : "text",
"carryforward" : true,
Expand All @@ -2174,8 +2172,8 @@
},
{
"name" : "remoteserverkeogramdestinationname",
"default" : "keogram.jpg",
"description" : "Optional name of the remote keogram file. Usually used.",
"default" : "",
"description" : "Optional name of the remote keogram file.",
"label" : "Remote Keogram File Name",
"type" : "text",
"carryforward" : true,
Expand All @@ -2184,8 +2182,8 @@
},
{
"name" : "remoteserverstartrailsdestinationname",
"default" : "startrails.jpg",
"description" : "Optional name of the remote startrails file. Usually used.",
"default" : "",
"description" : "Optional name of the remote startrails file.",
"label" : "Remote Startrails File Name",
"type" : "text",
"carryforward" : true,
Expand Down Expand Up @@ -2359,36 +2357,42 @@
"label" : "Camera Type",
"type" : "select",
"options" : [
"cameratype_values"
],
"checkchanges" : true,
"action" : "restart"
},
{ "name" : "x1",
"type" : "select",
"options" : [
{"value" : "RPi", "label" : "RPi"},
{"value" : "ZWO", "label" : "ZWO"},
{"value" : "Refresh", "label" : "Refresh"}
],
"checkchanges" : true,
"action" : "restart"
"display" : false
},
{
"name" : "cameramodel",
"display" : true,
"default" : "",
"description" : "The model of camera you are using.<br><strong>To change it, change the <span class='WebUISetting'>Camera Type</span> above.</strong>",
"label" : "Camera Model",
"type" : "readonly",
"readonly" : true,
"type" : "select",
"options" : [
"cameramodel_values"
],
"usage" : "capture",
"action" : "restart"
},
{
"name" : "cameranumber",
"display" : false,
"xxxdisplay" : "_display",
"minimum" : 0,
"maximum" : "none",
"settingsonly" : true,
"default" : 0,
"description" : "If multiple cameras are connected to the Pi, this is the camera number (starts at 0).",
"label" : "Camera Number",
"type" : "integer",
"usage" : "capture",
"checkchanges" : true,
"optional" : true,
"action" : "restart"
},

Expand Down
Loading

0 comments on commit 5042009

Please sign in to comment.