You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.8 KiB

<script setup lang="ts">
</script>
<template>
<main>
<h2 class="main-header">IDEN Calculator</h2>
<br>
<p>Downlink Frequency (MHz): <input v-model="downlink" v-on:input="updateId"/></p>
<p>Base Frequency (MHz): <input v-model="base" v-on:input="updateId"/></p>
<p>Spacing (KHz): <input v-model="spacing" v-on:input="updateId"/></p>
<p>Offset (MHz): <input v-model="offset" v-on:input="updateId"/></p>
<p>Channel ID (dec): <input v-model="id" v-on:input="updateDownlink"/> (0x{{ id.toString(16) }})</p>
<p>Uplink Frequency (MHz): <b>{{ uplink }}MHz</b></p>
<p class="footer-text">iden-calc-web V0.2 copyright &copy; 2023 Natalie Moore, Connor Lovell and the <a href="https://github.com/dvmproject">DVMProject</a> team.</p>
</main>
</template>
<script lang="ts">
import { defineComponent } from 'vue'
export default defineComponent({
name: 'HomeView',
data() {
return {
id: 0 as number,
downlink: 0 as number,
uplink: 0 as number,
base: 450 as number,
spacing: 6.25 as number,
offset: 5 as number,
}
},
methods: {
async updateId() {
var downlinkHz = this.downlink * 1000000
var baseHz = this.base * 1000000
var spacingHz = this.spacing * 1000
this.id = (downlinkHz - baseHz) / spacingHz
this.uplink = (this.downlink * 1 + this.offset * 1)
},
async updateDownlink() {
var downlinkHz = this.downlink * 1000000
var baseHz = this.base * 1000000
var spacingHz = this.spacing * 1000
this.downlink = (baseHz + (this.id * spacingHz)) / 1000000
this.uplink = (this.downlink * 1 + this.offset * 1)
}
},
async mounted() {
//
}
})
</script>

Powered by TurnKey Linux.