9 lines
43 KiB
JavaScript
9 lines
43 KiB
JavaScript
var is=Object.defineProperty;var cs=(e,l,n)=>l in e?is(e,l,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[l]=n;var Lt=(e,l,n)=>cs(e,typeof l!="symbol"?l+"":l,n);(function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const r of i)if(r.type==="childList")for(const h of r.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&a(h)}).observe(document,{childList:!0,subtree:!0});function n(i){const r={};return i.integrity&&(r.integrity=i.integrity),i.referrerPolicy&&(r.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?r.credentials="include":i.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(i){if(i.ep)return;i.ep=!0;const r=n(i);fetch(i.href,r)}})();function Fe(){}function ss(e){return e()}function $t(){return Object.create(null)}function it(e){e.forEach(ss)}function ls(e){return typeof e=="function"}function ft(e,l){return e!=e?l==l:e!==l||e&&typeof e=="object"||typeof e=="function"}function ds(e){return Object.keys(e).length===0}function t(e,l){e.appendChild(l)}function Oe(e,l,n){e.insertBefore(l,n||null)}function ge(e){e.parentNode&&e.parentNode.removeChild(e)}function Wt(e,l){for(let n=0;n<e.length;n+=1)e[n]&&e[n].d(l)}function o(e){return document.createElement(e)}function Y(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function b(e){return document.createTextNode(e)}function u(){return b(" ")}function Ne(e,l,n,a){return e.addEventListener(l,n,a),()=>e.removeEventListener(l,n,a)}function s(e,l,n){n==null?e.removeAttribute(l):e.getAttribute(l)!==n&&e.setAttribute(l,n)}function ns(e){return e===""?null:+e}function us(e){return Array.from(e.childNodes)}function N(e,l){l=""+l,e.data!==l&&(e.data=l)}function Pt(e,l){e.value=l??""}function le(e,l,n,a){n==null?e.style.removeProperty(l):e.style.setProperty(l,n,"")}function Jt(e,l,n){for(let a=0;a<e.options.length;a+=1){const i=e.options[a];if(i.__value===l){i.selected=!0;return}}e.selectedIndex=-1}function P(e,l,n){e.classList.toggle(l,!!n)}let Nt;function At(e){Nt=e}function os(){if(!Nt)throw new Error("Function called outside component initialization");return Nt}function vs(e){os().$$.on_mount.push(e)}function fs(e){os().$$.on_destroy.push(e)}const wt=[],Ut=[];let jt=[];const xt=[],ps=Promise.resolve();let Dt=!1;function hs(){Dt||(Dt=!0,ps.then(as))}function Bt(e){jt.push(e)}const It=new Set;let ht=0;function as(){if(ht!==0)return;const e=Nt;do{try{for(;ht<wt.length;){const l=wt[ht];ht++,At(l),ms(l.$$)}}catch(l){throw wt.length=0,ht=0,l}for(At(null),wt.length=0,ht=0;Ut.length;)Ut.pop()();for(let l=0;l<jt.length;l+=1){const n=jt[l];It.has(n)||(It.add(n),n())}jt.length=0}while(wt.length);for(;xt.length;)xt.pop()();Dt=!1,It.clear(),At(e)}function ms(e){if(e.fragment!==null){e.update(),it(e.before_update);const l=e.dirty;e.dirty=[-1],e.fragment&&e.fragment.p(e.ctx,l),e.after_update.forEach(Bt)}}function ws(e){const l=[],n=[];jt.forEach(a=>e.indexOf(a)===-1?l.push(a):n.push(a)),n.forEach(a=>a()),jt=l}const Et=new Set;let gs;function gt(e,l){e&&e.i&&(Et.delete(e),e.i(l))}function Ot(e,l,n,a){if(e&&e.o){if(Et.has(e))return;Et.add(e),gs.c.push(()=>{Et.delete(e)}),e.o(l)}}function yt(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function Mt(e){e&&e.c()}function bt(e,l,n){const{fragment:a,after_update:i}=e.$$;a&&a.m(l,n),Bt(()=>{const r=e.$$.on_mount.map(ss).filter(ls);e.$$.on_destroy?e.$$.on_destroy.push(...r):it(r),e.$$.on_mount=[]}),i.forEach(Bt)}function _t(e,l){const n=e.$$;n.fragment!==null&&(ws(n.after_update),it(n.on_destroy),n.fragment&&n.fragment.d(l),n.on_destroy=n.fragment=null,n.ctx=[])}function bs(e,l){e.$$.dirty[0]===-1&&(wt.push(e),hs(),e.$$.dirty.fill(0)),e.$$.dirty[l/31|0]|=1<<l%31}function Ct(e,l,n,a,i,r,h=null,f=[-1]){const m=Nt;At(e);const c=e.$$={fragment:null,ctx:[],props:r,update:Fe,not_equal:i,bound:$t(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l.context||(m?m.$$.context:[])),callbacks:$t(),dirty:f,skip_bound:!1,root:l.target||m.$$.root};h&&h(c.root);let j=!1;if(c.ctx=n?n(e,l.props||{},(v,w,..._)=>{const y=_.length?_[0]:w;return c.ctx&&i(c.ctx[v],c.ctx[v]=y)&&(!c.skip_bound&&c.bound[v]&&c.bound[v](y),j&&bs(e,v)),w}):[],c.update(),j=!0,it(c.before_update),c.fragment=a?a(c.ctx):!1,l.target){if(l.hydrate){const v=us(l.target);c.fragment&&c.fragment.l(v),v.forEach(ge)}else c.fragment&&c.fragment.c();l.intro&>(e.$$.fragment),bt(e,l.target,l.anchor),as()}At(m)}class kt{constructor(){Lt(this,"$$");Lt(this,"$$set")}$destroy(){_t(this,1),this.$destroy=Fe}$on(l,n){if(!ls(n))return Fe;const a=this.$$.callbacks[l]||(this.$$.callbacks[l]=[]);return a.push(n),()=>{const i=a.indexOf(n);i!==-1&&a.splice(i,1)}}$set(l){this.$$set&&!ds(l)&&(this.$$.skip_bound=!0,this.$$set(l),this.$$.skip_bound=!1)}}const _s="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(_s);const mt=[];function zt(e,l=Fe){let n;const a=new Set;function i(f){if(ft(e,f)&&(e=f,n)){const m=!mt.length;for(const c of a)c[1](),mt.push(c,e);if(m){for(let c=0;c<mt.length;c+=2)mt[c][0](mt[c+1]);mt.length=0}}}function r(f){i(f(e))}function h(f,m=Fe){const c=[f,m];return a.add(c),a.size===1&&(n=l(i,r)||Fe),f(e),()=>{a.delete(c),a.size===0&&n&&(n(),n=null)}}return{set:i,update:r,subscribe:h}}const Rt=zt(!1),rs=zt(null),js=zt(null);class ys{constructor(){this.ws=null,this.reconnectTimeout=null,this.reconnectDelay=3e3}connect(){const n=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`;try{this.ws=new WebSocket(n),this.ws.onopen=()=>{console.log("WebSocket connected"),Rt.set(!0)},this.ws.onmessage=a=>{try{const i=JSON.parse(a.data);i.type==="update"&&(console.log("System status updated:",i.data),rs.set(i.data),js.set(new Date(i.timestamp)))}catch(i){console.error("Error parsing message:",i)}},this.ws.onerror=a=>{console.error("WebSocket error:",a)},this.ws.onclose=()=>{console.log("WebSocket disconnected"),Rt.set(!1),this.scheduleReconnect()}}catch(a){console.error("Error creating WebSocket:",a),this.scheduleReconnect()}}scheduleReconnect(){this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.reconnectTimeout=setTimeout(()=>{console.log("Attempting to reconnect..."),this.connect()},this.reconnectDelay)}send(l){this.ws&&this.ws.readyState===WebSocket.OPEN&&this.ws.send(JSON.stringify(l))}disconnect(){this.reconnectTimeout&&clearTimeout(this.reconnectTimeout),this.ws&&this.ws.close()}}const Xt=new ys,Cs="/api";async function de(e,l={}){try{const n=await fetch(`${Cs}${e}`,{...l,headers:{"Content-Type":"application/json",...l.headers}});if(!n.ok)throw new Error(`HTTP error! status: ${n.status}`);return await n.json()}catch(n){throw console.error("API request failed:",n),n}}const Ee={getStatus:()=>de("/status"),getConfig:()=>de("/config"),webswitch:{relayOn:e=>de(`/webswitch/relay/on?relay=${e}`,{method:"POST"}),relayOff:e=>de(`/webswitch/relay/off?relay=${e}`,{method:"POST"}),allOn:()=>de("/webswitch/all/on",{method:"POST"}),allOff:()=>de("/webswitch/all/off",{method:"POST"})},rotator:{move:(e,l)=>de("/rotator/move",{method:"POST",body:JSON.stringify({rotator:e,azimuth:l})}),cw:e=>de(`/rotator/cw?rotator=${e}`,{method:"POST"}),ccw:e=>de(`/rotator/ccw?rotator=${e}`,{method:"POST"}),stop:()=>de("/rotator/stop",{method:"POST"})},tuner:{setOperate:e=>de("/tuner/operate",{method:"POST",body:JSON.stringify({value:e})}),setBypass:e=>de("/tuner/bypass",{method:"POST",body:JSON.stringify({value:e})}),autoTune:()=>de("/tuner/autotune",{method:"POST"})},antenna:{selectAntenna:(e,l)=>de("/antenna/select",{method:"POST",body:JSON.stringify({port:e,antenna:l})}),reboot:()=>de("/antenna/reboot",{method:"POST"})},power:{setFanMode:e=>de("/power/fanmode",{method:"POST",body:JSON.stringify({mode:e})}),setOperate:e=>de("/power/operate",{method:"POST",body:JSON.stringify({value:e})})},rotator:{setHeading:e=>de("/rotator/heading",{method:"POST",body:JSON.stringify({heading:e})}),rotateCW:()=>de("/rotator/cw",{method:"POST"}),rotateCCW:()=>de("/rotator/ccw",{method:"POST"}),stop:()=>de("/rotator/stop",{method:"POST"})}};function Vt(e,l,n){var h;const a=e.slice();a[10]=l[n];const i=a[1].find(function(...m){return e[9](a[10],...m)});a[11]=i;const r=((h=a[11])==null?void 0:h.state)||!1;return a[12]=r,a}function Yt(e){let l,n,a,i,r,h,f=e[12]?"ON":"OFF",m,c,j,v,w,_,y,g;function d(){return e[8](e[10])}return{c(){l=o("div"),n=o("div"),a=o("div"),i=o("div"),i.textContent=`${e[3][e[10]]}`,r=u(),h=o("div"),m=b(f),c=u(),j=o("button"),v=o("div"),v.innerHTML='<div class="toggle-thumb svelte-z2csmj"></div>',_=u(),s(i,"class","relay-name svelte-z2csmj"),s(h,"class","relay-status svelte-z2csmj"),s(a,"class","relay-details svelte-z2csmj"),s(n,"class","relay-info svelte-z2csmj"),s(v,"class","toggle-track svelte-z2csmj"),s(j,"class","relay-toggle svelte-z2csmj"),j.disabled=w=e[0][e[10]],P(j,"active",e[12]),P(j,"loading",e[0][e[10]]),s(l,"class","relay-card svelte-z2csmj"),P(l,"relay-on",e[12])},m(T,C){Oe(T,l,C),t(l,n),t(n,a),t(a,i),t(a,r),t(a,h),t(h,m),t(l,c),t(l,j),t(j,v),t(l,_),y||(g=Ne(j,"click",d),y=!0)},p(T,C){e=T,C&2&&f!==(f=e[12]?"ON":"OFF")&&N(m,f),C&1&&w!==(w=e[0][e[10]])&&(j.disabled=w),C&2&&P(j,"active",e[12]),C&1&&P(j,"loading",e[0][e[10]]),C&2&&P(l,"relay-on",e[12])},d(T){T&&ge(l),y=!1,g()}}}function ks(e){let l,n,a,i,r,h,f,m,c,j,v,w,_,y,g,d=yt([1,2,3,4,5]),T=[];for(let C=0;C<5;C+=1)T[C]=Yt(Vt(e,d,C));return{c(){l=o("div"),n=o("div"),a=o("h2"),a.textContent="WebSwitch",i=u(),r=o("span"),h=u(),f=o("div"),m=o("div");for(let C=0;C<5;C+=1)T[C].c();c=u(),j=o("div"),v=o("button"),v.innerHTML=`<span class="btn-icon svelte-z2csmj">⚡</span>
|
|
ALL ON`,w=u(),_=o("button"),_.innerHTML=`<span class="btn-icon svelte-z2csmj">⏻</span>
|
|
ALL OFF`,s(a,"class","svelte-z2csmj"),s(r,"class","status-dot svelte-z2csmj"),P(r,"disconnected",!e[2]),s(n,"class","card-header svelte-z2csmj"),s(m,"class","relays svelte-z2csmj"),s(v,"class","control-btn all-on svelte-z2csmj"),s(_,"class","control-btn all-off svelte-z2csmj"),s(j,"class","controls svelte-z2csmj"),s(f,"class","metrics svelte-z2csmj"),s(l,"class","card svelte-z2csmj")},m(C,p){Oe(C,l,p),t(l,n),t(n,a),t(n,i),t(n,r),t(l,h),t(l,f),t(f,m);for(let O=0;O<5;O+=1)T[O]&&T[O].m(m,null);t(f,c),t(f,j),t(j,v),t(j,w),t(j,_),y||(g=[Ne(v,"click",e[5]),Ne(_,"click",e[6])],y=!0)},p(C,[p]){if(p&4&&P(r,"disconnected",!C[2]),p&27){d=yt([1,2,3,4,5]);let O;for(O=0;O<5;O+=1){const I=Vt(C,d,O);T[O]?T[O].p(I,p):(T[O]=Yt(I),T[O].c(),T[O].m(m,null))}for(;O<5;O+=1)T[O].d(1)}},i:Fe,o:Fe,d(C){C&&ge(l),Wt(T,C),y=!1,it(g)}}}function Ts(e,l,n){let a,i,{status:r}=l;const h={1:"Power Supply",2:"PGXL",3:"TGXL",4:"Flex Radio Start",5:"Reserve"};let f={};async function m(_){const y=a.find(d=>d.number===_),g=(y==null?void 0:y.state)||!1;n(0,f[_]=!0,f);try{g?await Ee.webswitch.relayOff(_):await Ee.webswitch.relayOn(_)}catch(d){console.error("Failed to toggle relay:",d),alert("Failed to control relay")}finally{n(0,f[_]=!1,f)}}async function c(){try{await Ee.webswitch.allOn()}catch(_){console.error("Failed to turn all on:",_)}}async function j(){try{await Ee.webswitch.allOff()}catch(_){console.error("Failed to turn all off:",_)}}const v=_=>m(_),w=(_,y)=>y.number===_;return e.$$set=_=>{"status"in _&&n(7,r=_.status)},e.$$.update=()=>{e.$$.dirty&128&&n(1,a=(r==null?void 0:r.relays)||[]),e.$$.dirty&128&&n(2,i=(r==null?void 0:r.connected)||!1)},[f,a,i,h,m,c,j,r,v,w]}class Ss extends kt{constructor(l){super(),Ct(this,l,Ts,ks,ft,{status:7})}}function Fs(e){let l;return{c(){l=o("span"),l.textContent="High!",s(l,"class","status-text danger svelte-utvwj6")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Os(e){let l;return{c(){l=o("span"),l.textContent="Caution",s(l,"class","status-text warning svelte-utvwj6")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Ms(e){let l;return{c(){l=o("span"),l.textContent="Good",s(l,"class","status-text ok svelte-utvwj6")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Ps(e){let l;return{c(){l=o("span"),l.textContent="Excellent",s(l,"class","status-text good svelte-utvwj6")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function As(e){let l,n,a,i,r,h,f,m,c,j,v,w,_,y,g=e[1].toFixed(0)+"",d,T,C,p,O,I,F,E,J,x,ae,K,A,Z,Q=e[2].toFixed(2)+"",ne,be,z,B,k,U,S,W,he,re=e[3].toFixed(0)+"",$e,ue,Ge,oe,He,me,H,X,_e,ee,Me=e[12].toFixed(0)+"",fe,Re,je,Pe,ye,ce,pe,Xe,te,V,R,ve,q,Ce=e[15].toFixed(0)+"",Le,ct,ke,qe,nt,Je,We=e[14].toFixed(1)+"",Ie,De,Be,Ve,tt,Te,Ye=e[13].toFixed(1)+"",Ue,Ke,Ae,we,Se,ze,L,se,st,ot,Ze,lt,dt,Qe,ie,at,ut,Tt,xe,rt,M,G,pt,St;function Ft(D,$){return D[2]<1.5?Ps:D[2]<2?Ms:D[2]<3?Os:Fs}let vt=Ft(e),et=vt(e);return{c(){l=o("div"),n=o("div"),a=o("h2"),a.textContent="Power Genius XL",i=u(),r=o("div"),h=o("button"),f=b(e[7]),m=u(),c=o("span"),j=u(),v=o("div"),w=o("div"),_=o("div"),y=o("div"),d=b(g),T=o("span"),T.textContent="W",C=u(),p=o("div"),p.textContent="Forward Power",O=u(),I=o("div"),F=o("div"),E=o("div"),J=u(),x=o("div"),x.innerHTML="<span>0</span> <span>1000</span> <span>2000</span>",ae=u(),K=o("div"),A=o("div"),Z=o("div"),ne=b(Q),be=u(),z=o("div"),z.textContent="SWR",B=u(),k=o("div"),et.c(),U=u(),S=o("div"),W=o("div"),he=o("div"),$e=b(re),ue=b("°"),Ge=u(),oe=o("div"),oe.textContent="PA Temp",He=u(),me=o("div"),H=o("div"),X=u(),_e=o("div"),ee=o("div"),fe=b(Me),Re=b("°"),je=u(),Pe=o("div"),Pe.textContent="HL Temp",ye=u(),ce=o("div"),pe=o("div"),Xe=u(),te=o("div"),V=o("div"),R=o("div"),R.textContent="VAC",ve=u(),q=o("div"),Le=b(Ce),ct=u(),ke=o("div"),qe=o("div"),qe.textContent="VDD",nt=u(),Je=o("div"),Ie=b(We),De=u(),Be=o("div"),Ve=o("div"),Ve.textContent="ID Peak",tt=u(),Te=o("div"),Ue=b(Ye),Ke=u(),Ae=o("div"),we=o("div"),Se=o("span"),Se.textContent="Band A",ze=u(),L=o("span"),se=b(e[10]),st=u(),ot=o("div"),Ze=o("span"),Ze.textContent="Band B",lt=u(),dt=o("span"),Qe=b(e[9]),ie=u(),at=o("div"),ut=o("label"),ut.textContent="Fan Mode",Tt=u(),xe=o("select"),rt=o("option"),rt.textContent="Standard",M=o("option"),M.textContent="Contest",G=o("option"),G.textContent="Broadcast",s(a,"class","svelte-utvwj6"),s(h,"class","state-badge svelte-utvwj6"),P(h,"idle",e[0]==="IDLE"),P(h,"transmit",e[0].includes("TRANSMIT")),s(c,"class","status-dot svelte-utvwj6"),P(c,"disconnected",!e[8]),s(r,"class","header-right svelte-utvwj6"),s(n,"class","card-header svelte-utvwj6"),s(T,"class","unit svelte-utvwj6"),s(y,"class","power-value svelte-utvwj6"),s(p,"class","power-label svelte-utvwj6"),s(_,"class","power-main svelte-utvwj6"),s(E,"class","power-bar-glow svelte-utvwj6"),s(F,"class","power-bar-fill svelte-utvwj6"),le(F,"width",e[4]+"%"),s(x,"class","power-scale svelte-utvwj6"),s(I,"class","power-bar svelte-utvwj6"),s(w,"class","power-display svelte-utvwj6"),s(Z,"class","swr-value svelte-utvwj6"),s(z,"class","swr-label svelte-utvwj6"),s(A,"class","swr-circle svelte-utvwj6"),le(A,"--swr-color",e[5]),s(k,"class","swr-status svelte-utvwj6"),s(K,"class","swr-container svelte-utvwj6"),s(he,"class","temp-value svelte-utvwj6"),le(he,"color",e[6]),s(oe,"class","temp-label svelte-utvwj6"),s(H,"class","temp-mini-fill svelte-utvwj6"),le(H,"width",e[3]/80*100+"%"),le(H,"background",e[6]),s(me,"class","temp-mini-bar svelte-utvwj6"),s(W,"class","temp-item svelte-utvwj6"),s(ee,"class","temp-value svelte-utvwj6"),le(ee,"color",e[6]),s(Pe,"class","temp-label svelte-utvwj6"),s(pe,"class","temp-mini-fill svelte-utvwj6"),le(pe,"width",e[12]/80*100+"%"),le(pe,"background",e[6]),s(ce,"class","temp-mini-bar svelte-utvwj6"),s(_e,"class","temp-item svelte-utvwj6"),s(S,"class","temp-group svelte-utvwj6"),s(R,"class","param-label svelte-utvwj6"),s(q,"class","param-value svelte-utvwj6"),s(V,"class","param-box svelte-utvwj6"),s(qe,"class","param-label svelte-utvwj6"),s(Je,"class","param-value svelte-utvwj6"),s(ke,"class","param-box svelte-utvwj6"),s(Ve,"class","param-label svelte-utvwj6"),s(Te,"class","param-value svelte-utvwj6"),s(Be,"class","param-box svelte-utvwj6"),s(te,"class","params-grid svelte-utvwj6"),s(Se,"class","band-label svelte-utvwj6"),s(L,"class","band-value svelte-utvwj6"),s(we,"class","band-item svelte-utvwj6"),s(Ze,"class","band-label svelte-utvwj6"),s(dt,"class","band-value svelte-utvwj6"),s(ot,"class","band-item svelte-utvwj6"),s(Ae,"class","band-display svelte-utvwj6"),s(ut,"class","control-label svelte-utvwj6"),rt.__value="STANDARD",Pt(rt,rt.__value),M.__value="CONTEST",Pt(M,M.__value),G.__value="BROADCAST",Pt(G,G.__value),s(xe,"class","svelte-utvwj6"),s(at,"class","fan-control svelte-utvwj6"),s(v,"class","metrics svelte-utvwj6"),s(l,"class","card svelte-utvwj6")},m(D,$){Oe(D,l,$),t(l,n),t(n,a),t(n,i),t(n,r),t(r,h),t(h,f),t(r,m),t(r,c),t(l,j),t(l,v),t(v,w),t(w,_),t(_,y),t(y,d),t(y,T),t(_,C),t(_,p),t(w,O),t(w,I),t(I,F),t(F,E),t(I,J),t(I,x),t(v,ae),t(v,K),t(K,A),t(A,Z),t(Z,ne),t(A,be),t(A,z),t(K,B),t(K,k),et.m(k,null),t(v,U),t(v,S),t(S,W),t(W,he),t(he,$e),t(he,ue),t(W,Ge),t(W,oe),t(W,He),t(W,me),t(me,H),t(S,X),t(S,_e),t(_e,ee),t(ee,fe),t(ee,Re),t(_e,je),t(_e,Pe),t(_e,ye),t(_e,ce),t(ce,pe),t(v,Xe),t(v,te),t(te,V),t(V,R),t(V,ve),t(V,q),t(q,Le),t(te,ct),t(te,ke),t(ke,qe),t(ke,nt),t(ke,Je),t(Je,Ie),t(te,De),t(te,Be),t(Be,Ve),t(Be,tt),t(Be,Te),t(Te,Ue),t(v,Ke),t(v,Ae),t(Ae,we),t(we,Se),t(we,ze),t(we,L),t(L,se),t(Ae,st),t(Ae,ot),t(ot,Ze),t(ot,lt),t(ot,dt),t(dt,Qe),t(v,ie),t(v,at),t(at,ut),t(at,Tt),t(at,xe),t(xe,rt),t(xe,M),t(xe,G),Jt(xe,e[11]),pt||(St=[Ne(h,"click",e[17]),Ne(xe,"change",e[19])],pt=!0)},p(D,[$]){$&128&&N(f,D[7]),$&1&&P(h,"idle",D[0]==="IDLE"),$&1&&P(h,"transmit",D[0].includes("TRANSMIT")),$&256&&P(c,"disconnected",!D[8]),$&2&&g!==(g=D[1].toFixed(0)+"")&&N(d,g),$&16&&le(F,"width",D[4]+"%"),$&4&&Q!==(Q=D[2].toFixed(2)+"")&&N(ne,Q),$&32&&le(A,"--swr-color",D[5]),vt!==(vt=Ft(D))&&(et.d(1),et=vt(D),et&&(et.c(),et.m(k,null))),$&8&&re!==(re=D[3].toFixed(0)+"")&&N($e,re),$&64&&le(he,"color",D[6]),$&8&&le(H,"width",D[3]/80*100+"%"),$&64&&le(H,"background",D[6]),$&4096&&Me!==(Me=D[12].toFixed(0)+"")&&N(fe,Me),$&64&&le(ee,"color",D[6]),$&4096&&le(pe,"width",D[12]/80*100+"%"),$&64&&le(pe,"background",D[6]),$&32768&&Ce!==(Ce=D[15].toFixed(0)+"")&&N(Le,Ce),$&16384&&We!==(We=D[14].toFixed(1)+"")&&N(Ie,We),$&8192&&Ye!==(Ye=D[13].toFixed(1)+"")&&N(Ue,Ye),$&1024&&N(se,D[10]),$&512&&N(Qe,D[9]),$&2048&&Jt(xe,D[11])},i:Fe,o:Fe,d(D){D&&ge(l),et.d(),pt=!1,it(St)}}}function Ns(e,l,n){let a,i,r,h,f,m,c,j,v,w,_,y,g,d,T,C,{status:p}=l;async function O(E){try{await Ee.power.setFanMode(E)}catch(J){console.error("Failed to set fan mode:",J),alert("Failed to set fan mode")}}async function I(){try{const E=v==="IDLE"?0:1;await Ee.power.setOperate(E)}catch(E){console.error("Failed to toggle operate:",E),alert("Failed to toggle operate mode")}}const F=E=>O(E.target.value);return e.$$set=E=>{"status"in E&&n(18,p=E.status)},e.$$.update=()=>{e.$$.dirty&262144&&n(1,a=(p==null?void 0:p.power_forward)||0),e.$$.dirty&262144&&p!=null&&p.power_reflected,e.$$.dirty&262144&&n(2,i=(p==null?void 0:p.swr)||1),e.$$.dirty&262144&&n(15,r=(p==null?void 0:p.voltage)||0),e.$$.dirty&262144&&n(14,h=(p==null?void 0:p.vdd)||0),e.$$.dirty&262144&&p!=null&&p.current,e.$$.dirty&262144&&n(13,f=(p==null?void 0:p.peak_current)||0),e.$$.dirty&262144&&n(3,m=(p==null?void 0:p.temperature)||0),e.$$.dirty&262144&&n(12,c=(p==null?void 0:p.harmonic_load_temp)||0),e.$$.dirty&262144&&n(11,j=(p==null?void 0:p.fan_mode)||"CONTEST"),e.$$.dirty&262144&&n(0,v=(p==null?void 0:p.state)||"IDLE"),e.$$.dirty&262144&&n(10,w=(p==null?void 0:p.band_a)||"0"),e.$$.dirty&262144&&n(9,_=(p==null?void 0:p.band_b)||"0"),e.$$.dirty&262144&&n(8,y=(p==null?void 0:p.connected)||!1),e.$$.dirty&1&&n(7,g=v.replace("TRANSMIT_A","TRANSMIT").replace("TRANSMIT_B","TRANSMIT")),e.$$.dirty&8&&n(6,d=m<40?"#4caf50":m<60?"#ffc107":m<75?"#ff9800":"#f44336"),e.$$.dirty&4&&n(5,T=i<1.5?"#4caf50":i<2?"#ffc107":i<3?"#ff9800":"#f44336"),e.$$.dirty&2&&n(4,C=Math.min(a/2e3*100,100))},[v,a,i,m,C,T,d,g,y,_,w,j,c,f,h,r,O,I,p,F]}class Es extends kt{constructor(l){super(),Ct(this,l,Ns,As,ft,{status:18})}}function Ls(e){let l;return{c(){l=o("span"),l.textContent="High!",s(l,"class","status-text danger svelte-j97t2j")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Is(e){let l;return{c(){l=o("span"),l.textContent="Caution",s(l,"class","status-text warning svelte-j97t2j")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Ds(e){let l;return{c(){l=o("span"),l.textContent="Good",s(l,"class","status-text ok svelte-j97t2j")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Bs(e){let l;return{c(){l=o("span"),l.textContent="Excellent",s(l,"class","status-text good svelte-j97t2j")},m(n,a){Oe(n,l,a)},d(n){n&&ge(l)}}}function Rs(e){let l,n,a,i,r,h,f,m,c,j,v,w,_,y,g=e[0].toFixed(0)+"",d,T,C,p,O,I,F,E,J,x,ae,K,A,Z,Q=e[1].toFixed(2)+"",ne,be,z,B,k,U,S,W,he,re,$e,ue,Ge,oe,He,me,H,X,_e,ee,Me,fe,Re,je,Pe,ye,ce,pe,Xe,te,V=(e[11]/1e3).toFixed(3)+"",R,ve,q,Ce,Le,ct,ke,qe=(e[10]/1e3).toFixed(3)+"",nt,Je,We,Ie,De,Be=e[8]===1?"OPERATE":"STANDBY",Ve,tt,Te,Ye,Ue,Ke,Ae;function we(L,se){return L[1]<1.5?Bs:L[1]<2?Ds:L[1]<3?Is:Ls}let Se=we(e),ze=Se(e);return{c(){l=o("div"),n=o("div"),a=o("h2"),a.textContent="Tuner Genius XL",i=u(),r=o("div"),h=o("span"),f=b(e[12]),m=u(),c=o("span"),j=u(),v=o("div"),w=o("div"),_=o("div"),y=o("div"),d=b(g),T=o("span"),T.textContent="W",C=u(),p=o("div"),p.textContent="Forward Power",O=u(),I=o("div"),F=o("div"),E=o("div"),J=u(),x=o("div"),x.innerHTML="<span>0</span> <span>1000</span> <span>2000</span>",ae=u(),K=o("div"),A=o("div"),Z=o("div"),ne=b(Q),be=u(),z=o("div"),z.textContent="SWR",B=u(),k=o("div"),ze.c(),U=u(),S=o("div"),W=o("div"),he=o("div"),re=b(e[7]),$e=u(),ue=o("div"),ue.textContent="C1",Ge=u(),oe=o("div"),He=o("div"),me=b(e[6]),H=u(),X=o("div"),X.textContent="L",_e=u(),ee=o("div"),Me=o("div"),fe=b(e[5]),Re=u(),je=o("div"),je.textContent="C2",Pe=u(),ye=o("div"),ce=o("div"),pe=o("div"),pe.textContent="Freq A",Xe=u(),te=o("div"),R=b(V),ve=o("span"),ve.textContent="MHz",q=u(),Ce=o("div"),Le=o("div"),Le.textContent="Freq B",ct=u(),ke=o("div"),nt=b(qe),Je=o("span"),Je.textContent="MHz",We=u(),Ie=o("div"),De=o("button"),Ve=b(Be),tt=u(),Te=o("button"),Te.textContent="BYPASS",Ye=u(),Ue=o("button"),Ue.innerHTML=`<span class="tune-icon svelte-j97t2j">⚡</span>
|
|
AUTO TUNE`,s(a,"class","svelte-j97t2j"),s(h,"class","tuning-badge svelte-j97t2j"),P(h,"tuning",e[12]==="TUNING"),s(c,"class","status-dot svelte-j97t2j"),P(c,"disconnected",!e[4]),s(r,"class","header-right svelte-j97t2j"),s(n,"class","card-header svelte-j97t2j"),s(T,"class","unit svelte-j97t2j"),s(y,"class","power-value svelte-j97t2j"),s(p,"class","power-label svelte-j97t2j"),s(_,"class","power-main svelte-j97t2j"),s(E,"class","power-bar-glow svelte-j97t2j"),s(F,"class","power-bar-fill svelte-j97t2j"),le(F,"width",e[2]+"%"),s(x,"class","power-scale svelte-j97t2j"),s(I,"class","power-bar svelte-j97t2j"),s(w,"class","power-display svelte-j97t2j"),s(Z,"class","swr-value svelte-j97t2j"),s(z,"class","swr-label svelte-j97t2j"),s(A,"class","swr-circle svelte-j97t2j"),le(A,"--swr-color",e[3]),s(k,"class","swr-status svelte-j97t2j"),s(K,"class","swr-container svelte-j97t2j"),s(he,"class","cap-value svelte-j97t2j"),s(ue,"class","cap-label svelte-j97t2j"),s(W,"class","cap-item svelte-j97t2j"),s(He,"class","cap-value svelte-j97t2j"),s(X,"class","cap-label svelte-j97t2j"),s(oe,"class","cap-item svelte-j97t2j"),s(Me,"class","cap-value svelte-j97t2j"),s(je,"class","cap-label svelte-j97t2j"),s(ee,"class","cap-item svelte-j97t2j"),s(S,"class","capacitors svelte-j97t2j"),s(pe,"class","freq-label svelte-j97t2j"),s(ve,"class","freq-unit svelte-j97t2j"),s(te,"class","freq-value svelte-j97t2j"),s(ce,"class","freq-item svelte-j97t2j"),s(Le,"class","freq-label svelte-j97t2j"),s(Je,"class","freq-unit svelte-j97t2j"),s(ke,"class","freq-value svelte-j97t2j"),s(Ce,"class","freq-item svelte-j97t2j"),s(ye,"class","freq-display svelte-j97t2j"),s(De,"class","control-btn operate svelte-j97t2j"),P(De,"active",e[8]===1),s(Te,"class","control-btn bypass svelte-j97t2j"),P(Te,"active",e[9]),s(Ie,"class","controls svelte-j97t2j"),s(Ue,"class","tune-btn svelte-j97t2j"),s(v,"class","metrics svelte-j97t2j"),s(l,"class","card svelte-j97t2j")},m(L,se){Oe(L,l,se),t(l,n),t(n,a),t(n,i),t(n,r),t(r,h),t(h,f),t(r,m),t(r,c),t(l,j),t(l,v),t(v,w),t(w,_),t(_,y),t(y,d),t(y,T),t(_,C),t(_,p),t(w,O),t(w,I),t(I,F),t(F,E),t(I,J),t(I,x),t(v,ae),t(v,K),t(K,A),t(A,Z),t(Z,ne),t(A,be),t(A,z),t(K,B),t(K,k),ze.m(k,null),t(v,U),t(v,S),t(S,W),t(W,he),t(he,re),t(W,$e),t(W,ue),t(S,Ge),t(S,oe),t(oe,He),t(He,me),t(oe,H),t(oe,X),t(S,_e),t(S,ee),t(ee,Me),t(Me,fe),t(ee,Re),t(ee,je),t(v,Pe),t(v,ye),t(ye,ce),t(ce,pe),t(ce,Xe),t(ce,te),t(te,R),t(te,ve),t(ye,q),t(ye,Ce),t(Ce,Le),t(Ce,ct),t(Ce,ke),t(ke,nt),t(ke,Je),t(v,We),t(v,Ie),t(Ie,De),t(De,Ve),t(Ie,tt),t(Ie,Te),t(v,Ye),t(v,Ue),Ke||(Ae=[Ne(De,"click",e[17]),Ne(Te,"click",e[18]),Ne(Ue,"click",e[13])],Ke=!0)},p(L,[se]){se&4096&&N(f,L[12]),se&4096&&P(h,"tuning",L[12]==="TUNING"),se&16&&P(c,"disconnected",!L[4]),se&1&&g!==(g=L[0].toFixed(0)+"")&&N(d,g),se&4&&le(F,"width",L[2]+"%"),se&2&&Q!==(Q=L[1].toFixed(2)+"")&&N(ne,Q),se&8&&le(A,"--swr-color",L[3]),Se!==(Se=we(L))&&(ze.d(1),ze=Se(L),ze&&(ze.c(),ze.m(k,null))),se&128&&N(re,L[7]),se&64&&N(me,L[6]),se&32&&N(fe,L[5]),se&2048&&V!==(V=(L[11]/1e3).toFixed(3)+"")&&N(R,V),se&1024&&qe!==(qe=(L[10]/1e3).toFixed(3)+"")&&N(nt,qe),se&256&&Be!==(Be=L[8]===1?"OPERATE":"STANDBY")&&N(Ve,Be),se&256&&P(De,"active",L[8]===1),se&512&&P(Te,"active",L[9])},i:Fe,o:Fe,d(L){L&&ge(l),ze.d(),Ke=!1,it(Ae)}}}function Ws(e,l,n){let a,i,r,h,f,m,c,j,v,w,_,y,g,{status:d}=l;async function T(){try{await Ee.tuner.autoTune()}catch(F){console.error("Failed to tune:",F),alert("Failed to start tuning")}}async function C(F){try{await Ee.tuner.setBypass(F)}catch(E){console.error("Failed to set bypass:",E),alert("Failed to set bypass")}}async function p(F){try{await Ee.tuner.setOperate(F)}catch(E){console.error("Failed to set operate:",E),alert("Failed to set operate")}}const O=()=>p(c===1?0:1),I=()=>C(m?0:1);return e.$$set=F=>{"status"in F&&n(16,d=F.status)},e.$$.update=()=>{e.$$.dirty&65536&&n(0,a=(d==null?void 0:d.power_forward)||0),e.$$.dirty&65536&&n(1,i=(d==null?void 0:d.swr)||1),e.$$.dirty&65536&&n(12,r=(d==null?void 0:d.tuning_status)||"READY"),e.$$.dirty&65536&&n(11,h=(d==null?void 0:d.frequency_a)||0),e.$$.dirty&65536&&n(10,f=(d==null?void 0:d.frequency_b)||0),e.$$.dirty&65536&&n(9,m=(d==null?void 0:d.bypass)||!1),e.$$.dirty&65536&&n(8,c=(d==null?void 0:d.state)||0),e.$$.dirty&65536&&n(7,j=(d==null?void 0:d.c1)||0),e.$$.dirty&65536&&n(6,v=(d==null?void 0:d.l)||0),e.$$.dirty&65536&&n(5,w=(d==null?void 0:d.c2)||0),e.$$.dirty&65536&&n(4,_=(d==null?void 0:d.connected)||!1),e.$$.dirty&2&&n(3,y=i<1.5?"#4caf50":i<2?"#ffc107":i<3?"#ff9800":"#f44336"),e.$$.dirty&1&&n(2,g=Math.min(a/2e3*100,100))},[a,i,g,y,_,w,v,j,c,m,f,h,r,T,C,p,d,O,I]}class zs extends kt{constructor(l){super(),Ct(this,l,Ws,Rs,ft,{status:16})}}function Kt(e,l,n){const a=e.slice();a[12]=l[n];const i=a[1].tx&&a[1].tx_ant===a[12].number;a[13]=i;const r=a[0].tx&&a[0].tx_ant===a[12].number;a[14]=r;const h=!a[1].tx&&a[1].rx_ant===a[12].number;a[15]=h;const f=!a[0].tx&&a[0].rx_ant===a[12].number;a[16]=f;const m=a[13]||a[14];a[17]=m;const c=a[15]||a[13];a[18]=c;const j=a[16]||a[14];return a[19]=j,a}function Zt(e){let l,n,a=e[12].name+"",i,r,h,f,m,c,j,v,w;function _(){return e[9](e[12])}function y(){return e[10](e[12])}return{c(){l=o("div"),n=o("div"),i=b(a),r=u(),h=o("div"),f=o("button"),f.textContent="A",m=u(),c=o("button"),c.textContent="B",j=u(),s(n,"class","antenna-name svelte-1r71rs8"),s(f,"class","port-btn svelte-1r71rs8"),P(f,"active",e[18]),s(c,"class","port-btn svelte-1r71rs8"),P(c,"active",e[19]),s(h,"class","antenna-ports svelte-1r71rs8"),s(l,"class","antenna-card svelte-1r71rs8"),P(l,"tx",e[17]),P(l,"active-a",e[18]),P(l,"active-b",e[19])},m(g,d){Oe(g,l,d),t(l,n),t(n,i),t(l,r),t(l,h),t(h,f),t(h,m),t(h,c),t(l,j),v||(w=[Ne(f,"click",_),Ne(c,"click",y)],v=!0)},p(g,d){e=g,d&16&&a!==(a=e[12].name+"")&&N(i,a),d&18&&P(f,"active",e[18]),d&17&&P(c,"active",e[19]),d&19&&P(l,"tx",e[17]),d&18&&P(l,"active-a",e[18]),d&17&&P(l,"active-b",e[19])},d(g){g&&ge(l),v=!1,it(w)}}}function Gs(e){let l,n,a,i,r,h,f,m,c,j,v=(e[1].source||"FLEX")+"",w,_,y,g,d=(e[0].source||"FLEX")+"",T,C,p,O,I,F,E,J,x,ae,K,A,Z,Q,ne,be,z=yt(e[4]),B=[];for(let k=0;k<z.length;k+=1)B[k]=Zt(Kt(e,z,k));return{c(){l=o("div"),n=o("div"),a=o("h2"),a.textContent="Antenna Genius",i=u(),r=o("span"),h=u(),f=o("div"),m=o("div"),c=o("div"),j=o("div"),w=b(v),_=u(),y=o("div"),g=o("div"),T=b(d),C=u(),p=o("div"),O=o("div"),I=o("div"),F=b(e[3]),E=u(),J=o("div"),x=o("div"),ae=b(e[2]),K=u(),A=o("div");for(let k=0;k<B.length;k+=1)B[k].c();Z=u(),Q=o("button"),Q.innerHTML=`<span class="reboot-icon svelte-1r71rs8">🔄</span>
|
|
REBOOT`,s(a,"class","svelte-1r71rs8"),s(r,"class","status-dot svelte-1r71rs8"),P(r,"disconnected",!e[5]),s(n,"class","card-header svelte-1r71rs8"),s(j,"class","source-label svelte-1r71rs8"),s(c,"class","source-item svelte-1r71rs8"),s(g,"class","source-label svelte-1r71rs8"),s(y,"class","source-item svelte-1r71rs8"),s(m,"class","sources svelte-1r71rs8"),s(I,"class","band-value svelte-1r71rs8"),s(O,"class","band-item svelte-1r71rs8"),s(x,"class","band-value svelte-1r71rs8"),s(J,"class","band-item svelte-1r71rs8"),s(p,"class","bands svelte-1r71rs8"),s(A,"class","antennas svelte-1r71rs8"),s(Q,"class","reboot-btn svelte-1r71rs8"),s(f,"class","metrics svelte-1r71rs8"),s(l,"class","card svelte-1r71rs8")},m(k,U){Oe(k,l,U),t(l,n),t(n,a),t(n,i),t(n,r),t(l,h),t(l,f),t(f,m),t(m,c),t(c,j),t(j,w),t(m,_),t(m,y),t(y,g),t(g,T),t(f,C),t(f,p),t(p,O),t(O,I),t(I,F),t(p,E),t(p,J),t(J,x),t(x,ae),t(f,K),t(f,A);for(let S=0;S<B.length;S+=1)B[S]&&B[S].m(A,null);t(f,Z),t(f,Q),ne||(be=Ne(Q,"click",e[7]),ne=!0)},p(k,[U]){if(U&32&&P(r,"disconnected",!k[5]),U&2&&v!==(v=(k[1].source||"FLEX")+"")&&N(w,v),U&1&&d!==(d=(k[0].source||"FLEX")+"")&&N(T,d),U&8&&N(F,k[3]),U&4&&N(ae,k[2]),U&83){z=yt(k[4]);let S;for(S=0;S<z.length;S+=1){const W=Kt(k,z,S);B[S]?B[S].p(W,U):(B[S]=Zt(W),B[S].c(),B[S].m(A,null))}for(;S<B.length;S+=1)B[S].d(1);B.length=z.length}},i:Fe,o:Fe,d(k){k&&ge(l),Wt(B,k),ne=!1,be()}}}function Hs(e,l,n){let a,i,r,h,f,m,{status:c}=l;const j={0:"160M",1:"80M",2:"60M",3:"40M",4:"30M",5:"20M",6:"17M",7:"15M",8:"12M",9:"10M",10:"6M",11:"4M",12:"2M",13:"1.25M",14:"70CM",15:"GEN"};async function v(g,d){try{await Ee.antenna.selectAntenna(g,d)}catch(T){console.error("Failed to select antenna:",T),alert("Failed to select antenna")}}async function w(){if(confirm("Are you sure you want to reboot the Antenna Genius?"))try{await Ee.antenna.reboot()}catch(g){console.error("Failed to reboot:",g),alert("Failed to reboot")}}const _=g=>v(1,g.number),y=g=>v(2,g.number);return e.$$set=g=>{"status"in g&&n(8,c=g.status)},e.$$.update=()=>{e.$$.dirty&256&&n(5,a=(c==null?void 0:c.connected)||!1),e.$$.dirty&256&&n(1,i=(c==null?void 0:c.port_a)||{}),e.$$.dirty&256&&n(0,r=(c==null?void 0:c.port_b)||{}),e.$$.dirty&256&&n(4,h=(c==null?void 0:c.antennas)||[]),e.$$.dirty&2&&n(3,f=j[i.band]||"None"),e.$$.dirty&1&&n(2,m=j[r.band]||"None")},[r,i,m,f,h,a,v,w,c,_,y]}class qs extends kt{constructor(l){super(),Ct(this,l,Hs,Gs,ft,{status:8})}}function Qt(e,l,n){const a=e.slice();a[9]=l[n];const i=150+125*Math.sin(a[9]*Math.PI/180);a[10]=i;const r=150-125*Math.cos(a[9]*Math.PI/180);return a[11]=r,a}function es(e){let l,n,a;return{c(){l=Y("text"),n=b(e[9]),a=b("°"),s(l,"x",e[10]),s(l,"y",e[11]),s(l,"text-anchor","middle"),s(l,"dominant-baseline","middle"),s(l,"class","degree-label svelte-1sgx2se")},m(i,r){Oe(i,l,r),t(l,n),t(l,a)},p:Fe,d(i){i&&ge(l)}}}function $s(e){let l,n,a,i,r,h,f,m,c,j,v,w,_,y,g,d,T,C,p,O,I,F,E,J,x,ae,K,A,Z,Q,ne,be,z,B,k,U,S,W,he,re,$e,ue,Ge,oe,He,me,H,X,_e,ee,Me,fe,Re,je,Pe,ye,ce,pe,Xe,te=yt([45,135,225,315]),V=[];for(let R=0;R<4;R+=1)V[R]=es(Qt(e,te,R));return{c(){l=o("div"),n=o("div"),a=o("h2"),a.textContent="Rotator Genius",i=u(),r=o("span"),h=u(),f=o("div"),m=o("div"),c=o("div"),c.textContent="CURRENT HEADING",j=u(),v=o("div"),w=b(e[2]),_=b("°"),y=u(),g=o("div"),d=Y("svg"),T=Y("defs"),C=Y("radialGradient"),p=Y("stop"),O=Y("stop"),I=Y("circle"),F=Y("circle"),E=Y("circle"),J=Y("circle"),x=Y("g"),ae=Y("g"),K=Y("path"),A=Y("line"),Z=Y("line"),Q=Y("g"),ne=Y("polygon"),z=Y("circle"),B=Y("animate"),k=Y("circle"),U=Y("animate"),S=Y("animate"),W=Y("text"),he=b("N"),re=Y("text"),$e=b("E"),ue=Y("text"),Ge=b("S"),oe=Y("text"),He=b("W");for(let R=0;R<4;R+=1)V[R].c();me=u(),H=o("div"),X=o("input"),_e=u(),ee=o("button"),ee.textContent="GO",Me=u(),fe=o("div"),Re=o("button"),Re.innerHTML=`<span class="arrow svelte-1sgx2se">↺</span>
|
|
CCW`,je=u(),Pe=o("button"),Pe.textContent="STOP",ye=u(),ce=o("button"),ce.innerHTML=`<span class="arrow svelte-1sgx2se">↻</span>
|
|
CW`,s(a,"class","svelte-1sgx2se"),s(r,"class","status-dot svelte-1sgx2se"),P(r,"disconnected",!e[1]),s(n,"class","card-header svelte-1sgx2se"),s(c,"class","heading-label svelte-1sgx2se"),s(v,"class","heading-value svelte-1sgx2se"),s(m,"class","heading-display svelte-1sgx2se"),s(p,"offset","0%"),le(p,"stop-color","rgba(79, 195, 247, 0.7)"),le(p,"stop-opacity","1"),s(O,"offset","100%"),le(O,"stop-color","rgba(79, 195, 247, 0)"),le(O,"stop-opacity","0"),s(C,"id","beamGradient"),s(I,"cx","150"),s(I,"cy","150"),s(I,"r","140"),s(I,"fill","rgba(30, 64, 175, 0.15)"),s(I,"stroke","rgba(79, 195, 247, 0.4)"),s(I,"stroke-width","2"),s(F,"cx","150"),s(F,"cy","150"),s(F,"r","105"),s(F,"fill","none"),s(F,"stroke","rgba(79,195,247,0.2)"),s(F,"stroke-width","1"),s(F,"stroke-dasharray","3,3"),s(E,"cx","150"),s(E,"cy","150"),s(E,"r","70"),s(E,"fill","none"),s(E,"stroke","rgba(79,195,247,0.2)"),s(E,"stroke-width","1"),s(E,"stroke-dasharray","3,3"),s(J,"cx","150"),s(J,"cy","150"),s(J,"r","35"),s(J,"fill","none"),s(J,"stroke","rgba(79,195,247,0.2)"),s(J,"stroke-width","1"),s(J,"stroke-dasharray","3,3"),s(K,"d","M 0,0 L "+-Math.sin(15*Math.PI/180)*130+","+-Math.cos(15*Math.PI/180)*130+` \r
|
|
A 130,130 0 0,1 `+Math.sin(15*Math.PI/180)*130+","+-Math.cos(15*Math.PI/180)*130+" Z"),s(K,"fill","url(#beamGradient)"),s(K,"opacity","0.85"),s(A,"x1","0"),s(A,"y1","0"),s(A,"x2",-Math.sin(15*Math.PI/180)*130),s(A,"y2",-Math.cos(15*Math.PI/180)*130),s(A,"stroke","#4fc3f7"),s(A,"stroke-width","2"),s(A,"opacity","0.9"),s(Z,"x1","0"),s(Z,"y1","0"),s(Z,"x2",Math.sin(15*Math.PI/180)*130),s(Z,"y2",-Math.cos(15*Math.PI/180)*130),s(Z,"stroke","#4fc3f7"),s(Z,"stroke-width","2"),s(Z,"opacity","0.9"),s(ne,"points","0,-20 -8,5 0,0 8,5"),s(ne,"fill","#4fc3f7"),s(ne,"stroke","#0288d1"),s(ne,"stroke-width","2"),le(ne,"filter","drop-shadow(0 0 10px rgba(79, 195, 247, 1))"),s(Q,"transform","translate(0, -110)"),s(ae,"transform",be="rotate("+e[2]+")"),s(B,"attributeName","r"),s(B,"values","5;7;5"),s(B,"dur","2s"),s(B,"repeatCount","indefinite"),s(z,"cx","0"),s(z,"cy","0"),s(z,"r","5"),s(z,"fill","#f44336"),s(z,"stroke","#fff"),s(z,"stroke-width","2"),s(U,"attributeName","r"),s(U,"values","10;16;10"),s(U,"dur","2s"),s(U,"repeatCount","indefinite"),s(S,"attributeName","opacity"),s(S,"values","0.5;0;0.5"),s(S,"dur","2s"),s(S,"repeatCount","indefinite"),s(k,"cx","0"),s(k,"cy","0"),s(k,"r","10"),s(k,"fill","none"),s(k,"stroke","#f44336"),s(k,"stroke-width","1.5"),s(k,"opacity","0.5"),s(x,"transform","translate(150, 150)"),s(W,"x","150"),s(W,"y","20"),s(W,"text-anchor","middle"),s(W,"class","cardinal svelte-1sgx2se"),s(re,"x","280"),s(re,"y","155"),s(re,"text-anchor","middle"),s(re,"class","cardinal svelte-1sgx2se"),s(ue,"x","150"),s(ue,"y","285"),s(ue,"text-anchor","middle"),s(ue,"class","cardinal svelte-1sgx2se"),s(oe,"x","20"),s(oe,"y","155"),s(oe,"text-anchor","middle"),s(oe,"class","cardinal svelte-1sgx2se"),s(d,"viewBox","0 0 300 300"),s(d,"class","map-svg svelte-1sgx2se"),s(g,"class","map-container svelte-1sgx2se"),s(X,"type","number"),s(X,"min","0"),s(X,"max","359"),s(X,"placeholder","Enter heading"),s(X,"class","heading-input svelte-1sgx2se"),s(ee,"class","go-btn svelte-1sgx2se"),s(H,"class","goto-container svelte-1sgx2se"),s(Re,"class","control-btn ccw svelte-1sgx2se"),s(Pe,"class","control-btn stop svelte-1sgx2se"),s(ce,"class","control-btn cw svelte-1sgx2se"),s(fe,"class","controls svelte-1sgx2se"),s(f,"class","metrics svelte-1sgx2se"),s(l,"class","card svelte-1sgx2se")},m(R,ve){Oe(R,l,ve),t(l,n),t(n,a),t(n,i),t(n,r),t(l,h),t(l,f),t(f,m),t(m,c),t(m,j),t(m,v),t(v,w),t(v,_),t(f,y),t(f,g),t(g,d),t(d,T),t(T,C),t(C,p),t(C,O),t(d,I),t(d,F),t(d,E),t(d,J),t(d,x),t(x,ae),t(ae,K),t(ae,A),t(ae,Z),t(ae,Q),t(Q,ne),t(x,z),t(z,B),t(x,k),t(k,U),t(k,S),t(d,W),t(W,he),t(d,re),t(re,$e),t(d,ue),t(ue,Ge),t(d,oe),t(oe,He);for(let q=0;q<4;q+=1)V[q]&&V[q].m(d,null);t(f,me),t(f,H),t(H,X),Pt(X,e[0]),t(H,_e),t(H,ee),t(f,Me),t(f,fe),t(fe,Re),t(fe,je),t(fe,Pe),t(fe,ye),t(fe,ce),pe||(Xe=[Ne(X,"input",e[8]),Ne(ee,"click",e[3]),Ne(Re,"click",e[5]),Ne(Pe,"click",e[6]),Ne(ce,"click",e[4])],pe=!0)},p(R,[ve]){if(ve&2&&P(r,"disconnected",!R[1]),ve&4&&N(w,R[2]),ve&4&&be!==(be="rotate("+R[2]+")")&&s(ae,"transform",be),ve&0){te=yt([45,135,225,315]);let q;for(q=0;q<4;q+=1){const Ce=Qt(R,te,q);V[q]?V[q].p(Ce,ve):(V[q]=es(Ce),V[q].c(),V[q].m(d,null))}for(;q<4;q+=1)V[q].d(1)}ve&1&&ns(X.value)!==R[0]&&Pt(X,R[0])},i:Fe,o:Fe,d(R){R&&ge(l),Wt(V,R),pe=!1,it(Xe)}}}function Js(e,l,n){let a,i,{status:r}=l,h=0;async function f(){if(h<0||h>359){alert("Heading must be between 0 and 359");return}try{const w=(h-10+360)%360;await Ee.rotator.setHeading(w)}catch(w){console.error("Failed to set heading:",w),alert("Failed to rotate")}}async function m(){try{await Ee.rotator.rotateCW()}catch(w){console.error("Failed to rotate CW:",w)}}async function c(){try{await Ee.rotator.rotateCCW()}catch(w){console.error("Failed to rotate CCW:",w)}}async function j(){try{await Ee.rotator.stop()}catch(w){console.error("Failed to stop:",w)}}function v(){h=ns(this.value),n(0,h)}return e.$$set=w=>{"status"in w&&n(7,r=w.status)},e.$$.update=()=>{e.$$.dirty&128&&n(2,a=(r==null?void 0:r.heading)||0),e.$$.dirty&128&&n(1,i=(r==null?void 0:r.connected)||!1)},[h,i,a,f,m,c,j,r,v]}class Us extends kt{constructor(l){super(),Ct(this,l,Js,$s,ft,{status:7})}}function xs(e){var at,ut,Tt,xe,rt;let l,n,a,i,r,h,f,m,c,j,v=e[1]?"Connected":"Disconnected",w,_,y,g,d,T,C,p=e[5].sfi+"",O,I,F,E,J,x=e[5].sunspots+"",ae,K,A,Z,Q,ne=e[5].a_index+"",be,z,B,k,U,S=e[5].k_index+"",W,he,re,$e,ue,Ge=e[5].geomag+"",oe,He,me,H,X,_e,ee=e[4].wind_speed.toFixed(1)+"",Me,fe,Re,je,Pe,ye=e[4].wind_gust.toFixed(1)+"",ce,pe,Xe,te,V,R=e[4].temp.toFixed(1)+"",ve,q,Ce,Le,ct,ke=e[4].feels_like.toFixed(1)+"",qe,nt,Je,We,Ie,De=ts(e[2])+"",Be,Ve,tt,Te=e[2].toLocaleDateString()+"",Ye,Ue,Ke,Ae,we,Se,ze,L,se,st,ot,Ze,lt,dt,Qe,ie;return Se=new Ss({props:{status:(at=e[0])==null?void 0:at.webswitch}}),L=new Es({props:{status:(ut=e[0])==null?void 0:ut.power_genius}}),st=new zs({props:{status:(Tt=e[0])==null?void 0:Tt.tuner_genius}}),lt=new qs({props:{status:(xe=e[0])==null?void 0:xe.antenna_genius}}),Qe=new Us({props:{status:(rt=e[0])==null?void 0:rt.rotator_genius}}),{c(){l=o("div"),n=o("header"),a=o("div"),i=o("h1"),r=b(e[3]),h=b(" Shack"),f=u(),m=o("div"),c=o("span"),j=u(),w=b(v),_=u(),y=o("div"),g=o("div"),d=o("span"),T=b("SFI "),C=o("span"),O=b(p),I=u(),F=o("span"),E=b("Spots "),J=o("span"),ae=b(x),K=u(),A=o("span"),Z=b("A "),Q=o("span"),be=b(ne),z=u(),B=o("span"),k=b("K "),U=o("span"),W=b(S),he=u(),re=o("span"),$e=b("G "),ue=o("span"),oe=b(Ge),He=u(),me=o("div"),H=o("div"),X=o("span"),_e=b("🌬️ "),Me=b(ee),fe=b("m/s"),Re=u(),je=o("span"),Pe=b("💨 "),ce=b(ye),pe=b("m/s"),Xe=u(),te=o("span"),V=b("🌡️ "),ve=b(R),q=b("°C"),Ce=u(),Le=o("span"),ct=b("→ "),qe=b(ke),nt=b("°C"),Je=u(),We=o("div"),Ie=o("span"),Be=b(De),Ve=u(),tt=o("span"),Ye=b(Te),Ue=u(),Ke=o("main"),Ae=o("div"),we=o("div"),Mt(Se.$$.fragment),ze=u(),Mt(L.$$.fragment),se=u(),Mt(st.$$.fragment),ot=u(),Ze=o("div"),Mt(lt.$$.fragment),dt=u(),Mt(Qe.$$.fragment),s(i,"class","svelte-1hrhory"),s(c,"class","status-indicator"),P(c,"status-online",e[1]),P(c,"status-offline",!e[1]),s(m,"class","connection-status svelte-1hrhory"),s(a,"class","header-left svelte-1hrhory"),s(C,"class","value svelte-1hrhory"),s(d,"class","solar-item svelte-1hrhory"),s(J,"class","value svelte-1hrhory"),s(F,"class","solar-item svelte-1hrhory"),s(Q,"class","value svelte-1hrhory"),s(A,"class","solar-item svelte-1hrhory"),s(U,"class","value svelte-1hrhory"),s(B,"class","solar-item svelte-1hrhory"),s(ue,"class","value svelte-1hrhory"),s(re,"class","solar-item svelte-1hrhory"),s(g,"class","solar-info svelte-1hrhory"),s(y,"class","header-center svelte-1hrhory"),s(X,"title","Wind"),s(je,"title","Gust"),s(te,"title","Temperature"),s(Le,"title","Feels like"),s(H,"class","weather-info svelte-1hrhory"),s(Ie,"class","time svelte-1hrhory"),s(tt,"class","date svelte-1hrhory"),s(We,"class","clock svelte-1hrhory"),s(me,"class","header-right svelte-1hrhory"),s(n,"class","svelte-1hrhory"),s(we,"class","row svelte-1hrhory"),s(Ze,"class","row svelte-1hrhory"),s(Ae,"class","dashboard-grid svelte-1hrhory"),s(Ke,"class","svelte-1hrhory"),s(l,"class","app svelte-1hrhory")},m(M,G){Oe(M,l,G),t(l,n),t(n,a),t(a,i),t(i,r),t(i,h),t(a,f),t(a,m),t(m,c),t(m,j),t(m,w),t(n,_),t(n,y),t(y,g),t(g,d),t(d,T),t(d,C),t(C,O),t(g,I),t(g,F),t(F,E),t(F,J),t(J,ae),t(g,K),t(g,A),t(A,Z),t(A,Q),t(Q,be),t(g,z),t(g,B),t(B,k),t(B,U),t(U,W),t(g,he),t(g,re),t(re,$e),t(re,ue),t(ue,oe),t(n,He),t(n,me),t(me,H),t(H,X),t(X,_e),t(X,Me),t(X,fe),t(H,Re),t(H,je),t(je,Pe),t(je,ce),t(je,pe),t(H,Xe),t(H,te),t(te,V),t(te,ve),t(te,q),t(H,Ce),t(H,Le),t(Le,ct),t(Le,qe),t(Le,nt),t(me,Je),t(me,We),t(We,Ie),t(Ie,Be),t(We,Ve),t(We,tt),t(tt,Ye),t(l,Ue),t(l,Ke),t(Ke,Ae),t(Ae,we),bt(Se,we,null),t(we,ze),bt(L,we,null),t(we,se),bt(st,we,null),t(Ae,ot),t(Ae,Ze),bt(lt,Ze,null),t(Ze,dt),bt(Qe,Ze,null),ie=!0},p(M,[G]){var D,$,Gt,Ht,qt;(!ie||G&8)&&N(r,M[3]),(!ie||G&2)&&P(c,"status-online",M[1]),(!ie||G&2)&&P(c,"status-offline",!M[1]),(!ie||G&2)&&v!==(v=M[1]?"Connected":"Disconnected")&&N(w,v),(!ie||G&32)&&p!==(p=M[5].sfi+"")&&N(O,p),(!ie||G&32)&&x!==(x=M[5].sunspots+"")&&N(ae,x),(!ie||G&32)&&ne!==(ne=M[5].a_index+"")&&N(be,ne),(!ie||G&32)&&S!==(S=M[5].k_index+"")&&N(W,S),(!ie||G&32)&&Ge!==(Ge=M[5].geomag+"")&&N(oe,Ge),(!ie||G&16)&&ee!==(ee=M[4].wind_speed.toFixed(1)+"")&&N(Me,ee),(!ie||G&16)&&ye!==(ye=M[4].wind_gust.toFixed(1)+"")&&N(ce,ye),(!ie||G&16)&&R!==(R=M[4].temp.toFixed(1)+"")&&N(ve,R),(!ie||G&16)&&ke!==(ke=M[4].feels_like.toFixed(1)+"")&&N(qe,ke),(!ie||G&4)&&De!==(De=ts(M[2])+"")&&N(Be,De),(!ie||G&4)&&Te!==(Te=M[2].toLocaleDateString()+"")&&N(Ye,Te);const pt={};G&1&&(pt.status=(D=M[0])==null?void 0:D.webswitch),Se.$set(pt);const St={};G&1&&(St.status=($=M[0])==null?void 0:$.power_genius),L.$set(St);const Ft={};G&1&&(Ft.status=(Gt=M[0])==null?void 0:Gt.tuner_genius),st.$set(Ft);const vt={};G&1&&(vt.status=(Ht=M[0])==null?void 0:Ht.antenna_genius),lt.$set(vt);const et={};G&1&&(et.status=(qt=M[0])==null?void 0:qt.rotator_genius),Qe.$set(et)},i(M){ie||(gt(Se.$$.fragment,M),gt(L.$$.fragment,M),gt(st.$$.fragment,M),gt(lt.$$.fragment,M),gt(Qe.$$.fragment,M),ie=!0)},o(M){Ot(Se.$$.fragment,M),Ot(L.$$.fragment,M),Ot(st.$$.fragment,M),Ot(lt.$$.fragment,M),Ot(Qe.$$.fragment,M),ie=!1},d(M){M&&ge(l),_t(Se),_t(L),_t(st),_t(lt),_t(Qe)}}}function ts(e){return e.toTimeString().slice(0,8)}function Xs(e,l,n){let a,i,r=null,h=!1,f=new Date,m="F4BPO";const c=rs.subscribe(v=>{n(0,r=v)}),j=Rt.subscribe(v=>{n(1,h=v)});return vs(async()=>{Xt.connect();try{const w=await Ee.getConfig();w.callsign&&n(3,m=w.callsign)}catch(w){console.error("Failed to fetch config:",w)}const v=setInterval(()=>{n(2,f=new Date)},1e3);return()=>{clearInterval(v)}}),fs(()=>{Xt.disconnect(),c(),j()}),e.$$.update=()=>{e.$$.dirty&1&&n(5,a=(r==null?void 0:r.solar)||{sfi:0,sunspots:0,a_index:0,k_index:0,geomag:"Unknown"}),e.$$.dirty&1&&n(4,i=(r==null?void 0:r.weather)||{wind_speed:0,wind_gust:0,temp:0,feels_like:0})},[r,h,f,m,i,a]}class Vs extends kt{constructor(l){super(),Ct(this,l,Xs,xs,ft,{})}}new Vs({target:document.getElementById("app")});
|