First attempt to add Doppler shift frequency calculations

This commit is contained in:
Peter Javorsky committed 2020-09-17 19:20:59 +02:00
1 parent f60c44c4a7
commit d8ef1c9f40
7 files changed
+100 -24

No files matched your search

@@ -27,10 +27,17 @@ import androidx.recyclerview.widget.RecyclerView
import com.rtbishop.look4sat.R
import com.rtbishop.look4sat.data.Transmitter
import com.rtbishop.look4sat.databinding.ItemTransmitterBinding
import com.rtbishop.look4sat.utility.PassPredictor
import java.util.*
class TransmitterAdapter : RecyclerView.Adapter<TransmitterAdapter.TransmitterHolder>() {
private var transmittersList = emptyList<Transmitter>()
private lateinit var predictor: PassPredictor
fun setPredictor(predict: PassPredictor) {
predictor = predict
}
fun setList(list: List<Transmitter>) {
transmittersList = list
@@ -65,6 +72,11 @@ class TransmitterAdapter : RecyclerView.Adapter<TransmitterAdapter.TransmitterHo
context.getString(R.string.trans_down_low),
transmitter.downlinkLow / freqDivider
)
binding.transDownlinkDoppler.text = String
.format(
context.getString(R.string.trans_down_low_doppler),
predictor.getDownlinkFreq(transmitter.downlinkLow, Date()) / freqDivider
)
} else if (transmitter.downlinkLow != null && transmitter.downlinkHigh != null) {
binding.transDownlink.text = String
.format(
@@ -72,8 +84,15 @@ class TransmitterAdapter : RecyclerView.Adapter<TransmitterAdapter.TransmitterHo
transmitter.downlinkLow / freqDivider,
transmitter.downlinkHigh / freqDivider
)
binding.transDownlinkDoppler.text = String
.format(
context.getString(R.string.trans_down_lowHigh_doppler),
predictor.getDownlinkFreq(transmitter.downlinkLow, Date()) / freqDivider,
predictor.getDownlinkFreq(transmitter.downlinkHigh, Date()) / freqDivider
)
} else {
binding.transDownlink.text = context.getString(R.string.no_downlink)
binding.transDownlinkDoppler.text = context.getString(R.string.no_downlink_doppler)
}
if (transmitter.uplinkLow != null && transmitter.uplinkHigh == null) {
@@ -81,14 +100,24 @@ class TransmitterAdapter : RecyclerView.Adapter<TransmitterAdapter.TransmitterHo
context.getString(R.string.trans_up_low),
transmitter.uplinkLow / freqDivider
)
binding.transUplinkDoppler.text = String.format(
context.getString(R.string.trans_up_low_doppler),
predictor.getUplinkFreq(transmitter.uplinkLow, Date()) / freqDivider
)
} else if (transmitter.uplinkLow != null && transmitter.uplinkHigh != null) {
binding.transUplink.text = String.format(
context.getString(R.string.trans_up_lowHigh),
transmitter.uplinkLow / freqDivider,
transmitter.uplinkHigh / freqDivider
)
binding.transUplinkDoppler.text = String.format(
context.getString(R.string.trans_up_lowHigh_doppler),
predictor.getUplinkFreq(transmitter.uplinkLow, Date()) / freqDivider,
predictor.getUplinkFreq(transmitter.uplinkHigh, Date()) / freqDivider
)
} else {
binding.transUplink.text = context.getString(R.string.no_uplink)
binding.transUplinkDoppler.text = context.getString(R.string.no_uplink_doppler)
}
if (transmitter.mode != null) {
@@ -142,6 +142,7 @@ class PolarViewFragment : Fragment(R.layout.fragment_polar_view), SensorEventLis
private fun observeTransmitters() {
viewModel.getTransmittersForSat(satPass.tle.catnum).observe(viewLifecycleOwner, Observer {
if (it.isNotEmpty()) {
transmitterAdapter.setPredictor(satPass.predictor)
transmitterAdapter.setList(it)
transmitterAdapter.notifyDataSetChanged()
binding.recPolar.visibility = View.VISIBLE
+56 -1
View File
@@ -57,6 +57,34 @@
app:layout_constraintStart_toEndOf="@+id/trans_img_uplink"
app:layout_constraintTop_toBottomOf="@+id/trans_downlink" />
<View
android:id="@+id/separator"
android:layout_width="match_parent"
android:padding="15dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_height="1dp"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintTop_toBottomOf="@+id/trans_uplink"
android:background="#333"/>
<TextView
android:id="@+id/trans_downlink_doppler"
style="@style/CardTransText"
android:text="@string/trans_down_lowHigh_doppler"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/trans_img_downlink_doppler"
app:layout_constraintTop_toBottomOf="@+id/separator" />
<TextView
android:id="@+id/trans_uplink_doppler"
style="@style/CardTransText"
android:text="@string/trans_up_lowHigh_doppler"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/trans_img_uplink_doppler"
app:layout_constraintTop_toBottomOf="@+id/trans_downlink_doppler" />
<TextView
android:id="@+id/trans_mode"
style="@style/CardTransText"
@@ -65,7 +93,7 @@
android:text="@string/trans_mode"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/trans_uplink" />
app:layout_constraintTop_toBottomOf="@+id/trans_uplink_doppler" />
<TextView
android:id="@+id/trans_inverted"
@@ -114,5 +142,32 @@
app:layout_constraintTop_toBottomOf="@+id/trans_downlink"
app:srcCompat="@drawable/ic_arrow" />
<ImageView
android:id="@+id/trans_img_downlink_doppler"
android:layout_width="20dp"
android:layout_height="20dp"
android:contentDescription="@string/placeholder"
android:rotation="180"
app:layout_constraintBottom_toBottomOf="@+id/trans_downlink_doppler"
app:layout_constraintEnd_toStartOf="@+id/trans_downlink_doppler"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/trans_downlink_doppler"
app:srcCompat="@drawable/ic_arrow" />
<ImageView
android:id="@+id/trans_img_uplink_doppler"
android:layout_width="20dp"
android:layout_height="20dp"
android:contentDescription="@string/placeholder"
app:layout_constraintBottom_toBottomOf="@+id/trans_uplink_doppler"
app:layout_constraintEnd_toStartOf="@+id/trans_uplink_doppler"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/trans_downlink_doppler"
app:srcCompat="@drawable/ic_arrow" />
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.card.MaterialCardView>
+4
View File
@@ -92,6 +92,10 @@
<string name="trans_up_lowHigh">Восход.: %.4f - %.4f MHz</string>
<string name="trans_down_low">Нисход.: %.4f MHz</string>
<string name="trans_down_lowHigh">Нисход.: %.4f - %.4f MHz</string>
<string name="trans_up_low_doppler">Восход.: %.4f MHz</string>
<string name="trans_up_lowHigh_doppler">Восход.: %.4f - %.4f MHz</string>
<string name="trans_down_low_doppler">Нисход.: %.4f MHz</string>
<string name="trans_down_lowHigh_doppler">Нисход.: %.4f - %.4f MHz</string>
<string name="info_swipe_text">Проведите по экрану вниз, чтобы обновить список пролетов
для выбранных спутников</string>
+6
View File
@@ -78,6 +78,8 @@
<string name="no_mode">Mode: null</string>
<string name="no_uplink">Uplink: null</string>
<string name="no_downlink">Downlink: null</string>
<string name="no_uplink_doppler">Current uplink: null</string>
<string name="no_downlink_doppler">Current downlink: null</string>
<string name="no_trans">No transceivers found for this satellite</string>
<string name="err_no_permissions">Missing permissions</string>
@@ -108,6 +110,10 @@
<string name="trans_up_lowHigh">Uplink: %.4f - %.4f MHz</string>
<string name="trans_down_low">Downlink: %.4f MHz</string>
<string name="trans_down_lowHigh">Downlink: %.4f - %.4f MHz</string>
<string name="trans_up_low_doppler">Current uplink: %.4f MHz</string>
<string name="trans_up_lowHigh_doppler">Current uplink: %.4f - %.4f MHz</string>
<string name="trans_down_low_doppler">Current downlink: %.4f MHz</string>
<string name="trans_down_lowHigh_doppler">Current downlink: %.4f - %.4f MHz</string>
<string name="info_swipe_text">
Swipe the screen to refresh the list of passes for selected satellites</string>