admin.aprsto/htdocs/includes/models/packettelemetry.class.php
Steve White ae9ece5266 *** Initial Commit of Files for APRS.TO Backend Administration Panel ***
This code is non-functional at this point.
2025-02-02 15:53:34 -05:00

237 lines
6.7 KiB
PHP

<?php
class PacketTelemetry extends Model
{
private $_stationTelemetryParam;
private $_stationTelemetryEqns;
private $_stationTelemetryBits;
private $_stationTelemetryUnit;
public function __construct($id)
{
parent::__construct($id);
$this->_stationTelemetryParam = null;
$this->_stationTelemetryEqns = null;
$this->_stationTelemetryBits = null;
$this->_stationTelemetryUnit = null;
}
/**
* Get value parameter name
*
* @param int $valNumber
* @return string
*/
public function getValueParameterName($valNumber)
{
if ($this->_stationTelemetryParam === null && $this->stationTelemetryParamId !== null) {
$this->_stationTelemetryParam = StationTelemetryParamRepository::getInstance()->getObjectById($this->stationTelemetryParamId);
}
if ($this->_stationTelemetryParam !== null
&& $this->_stationTelemetryParam->isExistingObject()
&& isset($this->_stationTelemetryParam->{'p'.$valNumber})
&& $this->_stationTelemetryParam->{'p'.$valNumber} != ''
) {
return $this->_stationTelemetryParam->{'p'.$valNumber};
} else {
return "Value$valNumber";
}
}
/**
* Get bit parameter name
*
* @param int $valNumber
* @return string
*/
public function getBitParameterName($valNumber)
{
if ($this->_stationTelemetryParam === null && $this->stationTelemetryParamId !== null) {
$this->_stationTelemetryParam = StationTelemetryParamRepository::getInstance()->getObjectById($this->stationTelemetryParamId);
}
if ($this->_stationTelemetryParam !== null && $this->_stationTelemetryParam->isExistingObject() && $this->_stationTelemetryParam->{'b'.$valNumber} != '') {
return $this->_stationTelemetryParam->{'b'.$valNumber};
} else {
return "Bit$valNumber";
}
}
/**
* Get value eqns
*
* @param int $valNumber
* @return numeric
*/
public function getEqnsValue($valNumber)
{
if ($this->_stationTelemetryEqns === null && $this->stationTelemetryEqnsId !== null) {
$this->_stationTelemetryEqns = StationTelemetryEqnsRepository::getInstance()->getObjectById($this->stationTelemetryEqnsId);
}
if ($this->_stationTelemetryEqns !== null && $this->_stationTelemetryEqns->isExistingObject()) {
$a = $this->_stationTelemetryEqns->{'a'.$valNumber};
$b = $this->_stationTelemetryEqns->{'b'.$valNumber};
$c = $this->_stationTelemetryEqns->{'c'.$valNumber};
if ($a === null && $b === null) {
// User has sent us a faulty eqns, just return raw value
return Array(0, 1, 0);
} else {
if ($a === null) {
$a = 0;
}
if ($b === null) {
$b = 0;
}
if ($c === null) {
$c = 0;
}
return Array($a, $b, $c);
}
} else {
// We have no eqns, just return raw value
return Array(0, 1, 0);
}
}
/**
* Check if value is set value
*
* @param int $valNumber
* @return bool
*/
public function isValueSet($valNumber)
{
$val = $this->{'val'.$valNumber};
if ($val !== null) {
return true;
}
return false;
}
/**
* Get value
*
* @param int $valNumber
* @return numeric
*/
public function getValue($valNumber)
{
$val = $this->{'val'.$valNumber};
$eqns = $this->getEqnsValue($valNumber);
$a = $eqns[0];
$b = $eqns[1];
$c = $eqns[2];
if ($a == null && $b == null) {
// User has sent us a faulty eqns, just return raw value
return $val;
} else {
$result = 0;
if ($a != null) {
$result += $a * $val * $val;
}
if ($b != null) {
$result += $b * $val;
}
if ($c != null) {
$result += $c;
}
return $result;
}
}
/**
* Get value unit
*
* @param int $valNumber
* @return string
*/
public function getValueUnit($valNumber)
{
$unit = ''; // default
if ($this->_stationTelemetryUnit === null && $this->stationTelemetryUnitId !== null) {
$this->_stationTelemetryUnit = StationTelemetryUnitRepository::getInstance()->getObjectById($this->stationTelemetryUnitId);
}
if ($this->_stationTelemetryUnit !== null && $this->_stationTelemetryUnit->isExistingObject()) {
$unit = ' ' . $this->_stationTelemetryUnit->{'u'.$valNumber};
}
return $unit;
}
/**
* Get bit sense
*
* @param int $valNumber
* @return int
*/
public function getBitSense($valNumber)
{
if ($this->_stationTelemetryBits === null && $this->stationTelemetryBitsId !== null) {
$this->_stationTelemetryBits = StationTelemetryBitsRepository::getInstance()->getObjectById($this->stationTelemetryBitsId);
}
$sense = 1; // default to 1
if ($this->_stationTelemetryBits !== null && $this->_stationTelemetryBits->isExistingObject()) {
$sense = substr($this->_stationTelemetryBits->bits, $valNumber-1, 1);
}
return $sense;
}
/**
* Get bit
*
* @param int $valNumber
* @return int
*/
public function getBit($valNumber)
{
if ($this->_stationTelemetryBits === null && $this->stationTelemetryBitsId !== null) {
$this->_stationTelemetryBits = StationTelemetryBitsRepository::getInstance()->getObjectById($this->stationTelemetryBitsId);
}
$sense = $this->getBitSense($valNumber);
$bit = substr($this->bits, $valNumber-1, 1);
if (($sense == 1 && $bit == 1) || ($sense == 0 && $bit == 0)) {
return 1;
} else {
return 0;
}
}
/**
* Get bit label
*
* @param int $valNumber
* @return int
*/
public function getBitLabel($valNumber)
{
if ($this->_stationTelemetryUnit === null && $this->stationTelemetryUnitId !== null) {
$this->_stationTelemetryUnit = StationTelemetryUnitRepository::getInstance()->getObjectById($this->stationTelemetryUnitId);
}
$label = 'On'; // default
if ($this->_stationTelemetryUnit !== null && $this->_stationTelemetryUnit->isExistingObject()) {
$label = $this->_stationTelemetryUnit->{'l'.$valNumber};
}
return $label;
}
}