change text per #2; add validation per #1 plus limits; clean up vestigial code; update NPM packages

master
Natalie Moore 4 months ago
parent 97cef5f0f1
commit 4f2113a81d

8622
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -65,3 +65,20 @@ input {
background-color: #181818; background-color: #181818;
color: white; color: white;
} }
.alert-danger {
color: #842029;
background-color: #f8d7da;
border-color: #f5c2c7;
}
.alert {
position: relative;
padding: 1rem 1rem;
margin-bottom: 1rem;
border: 1px solid transparent;
border-top-color: transparent;
border-right-color: transparent;
border-bottom-color: transparent;
border-left-color: transparent;
border-radius: .25rem;
}

@ -1,12 +0,0 @@
import { ref, computed } from 'vue'
import { defineStore } from 'pinia'
export const useCounterStore = defineStore('counter', () => {
const count = ref(0)
const doubleCount = computed(() => count.value * 2)
function increment() {
count.value++
}
return { count, doubleCount, increment }
})

@ -9,9 +9,10 @@
<p>Base Frequency (MHz): <input v-model="base" 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>Spacing (KHz): <input v-model="spacing" v-on:input="updateId"/></p>
<p>Offset (MHz): <input v-model="offset" 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> <div class="alert alert-danger" v-show="invalid">Woah there! Your channel number is invalid! <br> Reason: {{ validation_message }}</div>
<p>Channel Number (dec): <input v-model="id" v-on:input="updateDownlink"/> (0x{{ id.toString(16) }})</p>
<p>Uplink Frequency (MHz): <b>{{ uplink }}MHz</b></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> <p class="footer-text">iden-calc-web V0.2 copyright &copy; 2023, 2025 Natalie Moore, Connor Lovell and the <a href="https://github.com/dvmproject">DVMProject</a> team.</p>
</main> </main>
</template> </template>
@ -27,6 +28,8 @@ export default defineComponent({
base: 450 as number, base: 450 as number,
spacing: 6.25 as number, spacing: 6.25 as number,
offset: 5 as number, offset: 5 as number,
invalid: 0 as number,
validation_message: "" as string,
} }
}, },
methods: { methods: {
@ -34,7 +37,25 @@ export default defineComponent({
var downlinkHz = this.downlink * 1000000 var downlinkHz = this.downlink * 1000000
var baseHz = this.base * 1000000 var baseHz = this.base * 1000000
var spacingHz = this.spacing * 1000 var spacingHz = this.spacing * 1000
this.id = (downlinkHz - baseHz) / spacingHz var new_id = (downlinkHz - baseHz) / spacingHz
if (new_id % 1 > 0) {
this.invalid = 1;
this.id = 0;
this.validation_message = "Fractional channel number: must be a whole number"
} else if (new_id > 4095) {
this.invalid = 1;
this.id = 0;
this.validation_message = "Too Large: channel number must be less than 4095 (0xFFF)"
} else if (new_id < 0) {
this.invalid = 1;
this.id = 0;
this.validation_message = "Too Small: channel number must be greater than zero"
} else {
this.invalid = 0;
this.id = new_id;
}
this.uplink = (this.downlink * 1 + this.offset * 1) this.uplink = (this.downlink * 1 + this.offset * 1)
}, },
async updateDownlink() { async updateDownlink() {

Loading…
Cancel
Save

Powered by TurnKey Linux.