telescope-term 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/telescope +81 -38
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1f96d4afdd39035d8aff14031e43034607bd6772e71b57b46a6aca7280e372d
|
4
|
+
data.tar.gz: 99560838dfcc2488495387672c46976a2a9131d9196aceaea2a4307b219dd01a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab7ea6182535bdfd32f7ef8394630e1c3f17e73716d7ad175c19a7b05a75ea54f9cee7a45a9c69786d1f60d6a2acb55a16b18d97f660601bc2208762b0517286
|
7
|
+
data.tar.gz: 83587a7ec14ecf772f49542f2fb491ca3f86e87d1c86c1e5065ef4ed502816f0e09a0ac517778048ecff9e76d37a6ddc748c70fbbc215593445171c7521add29
|
data/bin/telescope
CHANGED
@@ -4,8 +4,9 @@
|
|
4
4
|
WELCOME TO TELESCOPE - A TERMINAL/CONSOLE PROGRAM FOR THE AMATEUR ASTRONOMER.
|
5
5
|
The top panel lists your telescopes with eyepieces in the lower panel. Add a telescope by pressing 't' and fill in the name, the
|
6
6
|
apperature (APP) and the focal length (FL) in the "command line" at the bottom and press ENTER. Add an eyepiece with 'e' and enter
|
7
|
-
a name, the focal length (FL) and apparent field of view (AFOV) and press ENTER. Select items by
|
7
|
+
a name, the focal length (FL) and apparent field of view (AFOV) and press ENTER. Select items by using the TAB/UP/DOWN cursor keys.
|
8
8
|
Press ENTER on a selected item to change the values in the command line. Delete an item by pressing 'D'. Move an with PgUP/PgDown keys.
|
9
|
+
Sort telescopes with 'T' (toggles sorting by the first thre columns; Name, APP, FL). Sort eyepieces in the same way with the 'E' key.
|
9
10
|
Tag items with the SPACE key (untag all with 'u'), then press 'o' to create an observation log file (content shown in the lower panel).
|
10
11
|
Refresh all panels with the 'r' key. Escape the selected panels or the command line by pressing 'Ctrl-G'. Quit via 'q' (or 'Q' if you
|
11
12
|
don't want to save your edits since last session). Save a backup session with 'b' and load a saved backup session with the 'B' key.
|
@@ -45,8 +46,11 @@ begin # BASIC SETUP
|
|
45
46
|
@tsmark = false
|
46
47
|
@epmark = false
|
47
48
|
|
48
|
-
@tstag
|
49
|
-
@eptag
|
49
|
+
@tstag = []
|
50
|
+
@eptag = []
|
51
|
+
|
52
|
+
@t_sort = false
|
53
|
+
@e_sort = false
|
50
54
|
end
|
51
55
|
if File.exist?(Dir.home+'/.telescope')
|
52
56
|
load(Dir.home+'/.telescope')
|
@@ -54,6 +58,9 @@ end
|
|
54
58
|
class Numeric # NUMERIC CLASS EXTENSION
|
55
59
|
def deg
|
56
60
|
self * Math::PI / 180
|
61
|
+
end
|
62
|
+
def rad
|
63
|
+
self * 180 / Math::PI
|
57
64
|
end
|
58
65
|
def dec2
|
59
66
|
"%.2f" % self
|
@@ -184,12 +191,12 @@ end
|
|
184
191
|
def main_getkey # GET KEY FROM USER
|
185
192
|
chr = getchr
|
186
193
|
case chr
|
187
|
-
when '?' # Show helptext in
|
194
|
+
when '?' # Show helptext in lower panel
|
188
195
|
@w_ep.clr
|
189
196
|
@w_ep.pa(249, 0, 0, @help)
|
190
197
|
@w_ep.p("\n ...Press any key to continue")
|
191
198
|
getch
|
192
|
-
when 'TAB'
|
199
|
+
when 'TAB' # Move between the panels
|
193
200
|
if @tsmark
|
194
201
|
@tsmark = false
|
195
202
|
@epmark = 0
|
@@ -200,10 +207,10 @@ def main_getkey # GET KEY FROM USER
|
|
200
207
|
@tsmark = 0
|
201
208
|
@epmark = false
|
202
209
|
end
|
203
|
-
when 'C-G'
|
210
|
+
when 'C-G' # Escape from panel selections or command line
|
204
211
|
@epmark = false
|
205
212
|
@tsmark = false
|
206
|
-
when 'ENTER'
|
213
|
+
when 'ENTER' # Edit selected item in the command line (or refresh panels)
|
207
214
|
if @tsmark
|
208
215
|
out = "#{@ts[@tsmark][0]}, #{@ts[@tsmark][1]}, #{@ts[@tsmark][2]}"
|
209
216
|
ret = w_cm_getstr("", out).split(",")
|
@@ -219,7 +226,7 @@ def main_getkey # GET KEY FROM USER
|
|
219
226
|
ret[2] = ret[2].to_i
|
220
227
|
@ep[@epmark] = ret
|
221
228
|
end
|
222
|
-
when 't'
|
229
|
+
when 't' # Add a telescope
|
223
230
|
return if @ts.length == 5
|
224
231
|
ret = w_cm_getstr("", "Telescope, App, FL").split(",")
|
225
232
|
return if ret.length != 3
|
@@ -228,7 +235,7 @@ def main_getkey # GET KEY FROM USER
|
|
228
235
|
ret[1] = 1 if ret[1] == 0
|
229
236
|
ret[2] = 1 if ret[2] == 0
|
230
237
|
@ts[@ts.length] = ret
|
231
|
-
when 'e'
|
238
|
+
when 'e' # Add an eyepiece
|
232
239
|
ret = w_cm_getstr("", "Eyepiece, FL, AFOV").split(",")
|
233
240
|
return if ret.length != 3
|
234
241
|
ret[1] = ret[1].to_f
|
@@ -236,7 +243,7 @@ def main_getkey # GET KEY FROM USER
|
|
236
243
|
ret[1] = 1 if ret[1] == 0
|
237
244
|
ret[2] = 1 if ret[2] == 0
|
238
245
|
@ep[@ep.length] = ret
|
239
|
-
when 'D'
|
246
|
+
when 'D' # Delete selected item (telescope or eyepiece)
|
240
247
|
if @tsmark
|
241
248
|
@ts.delete_at(@tsmark)
|
242
249
|
@tsmark -= 1
|
@@ -244,19 +251,55 @@ def main_getkey # GET KEY FROM USER
|
|
244
251
|
@ep.delete_at(@epmark)
|
245
252
|
@epmark -= 1
|
246
253
|
end
|
247
|
-
when '
|
254
|
+
when 'T' # Sort telescopes by next column (Name, APP, FL)
|
255
|
+
if @t_sort == false or @t_sort == 2
|
256
|
+
@t_sort = 0
|
257
|
+
else
|
258
|
+
@t_sort += 1
|
259
|
+
end
|
260
|
+
@ts = @ts.sort {|a,b| b[@t_sort] <=> a[@t_sort]}
|
261
|
+
when 'E' # Sort eyepiece by next column (Name, FL, AFOV)
|
262
|
+
if @e_sort == false or @e_sort == 2
|
263
|
+
@e_sort = 0
|
264
|
+
else
|
265
|
+
@e_sort += 1
|
266
|
+
end
|
267
|
+
@ep = @ep.sort {|a,b| b[@e_sort] <=> a[@e_sort]}
|
268
|
+
when 'UP' # Move to one item up
|
248
269
|
if @tsmark
|
249
|
-
|
270
|
+
if @tsmark == 0
|
271
|
+
@tsmark = false
|
272
|
+
else
|
273
|
+
@tsmark -= 1
|
274
|
+
end
|
250
275
|
elsif @epmark
|
251
|
-
|
276
|
+
if @epmark == 0
|
277
|
+
@epmark = false
|
278
|
+
@tsmark = @ts.length - 1
|
279
|
+
else
|
280
|
+
@epmark -= 1
|
281
|
+
end
|
282
|
+
else
|
283
|
+
@epmark = @ep.length - 1
|
252
284
|
end
|
253
|
-
when 'DOWN'
|
285
|
+
when 'DOWN' # Move to one item down
|
254
286
|
if @tsmark
|
255
|
-
|
287
|
+
if @tsmark == @ts.length - 1
|
288
|
+
@tsmark = false
|
289
|
+
@epmark = 0
|
290
|
+
else
|
291
|
+
@tsmark += 1
|
292
|
+
end
|
256
293
|
elsif @epmark
|
257
|
-
|
294
|
+
if @epmark == @ep.length - 1
|
295
|
+
@epmark = false
|
296
|
+
else
|
297
|
+
@epmark += 1
|
298
|
+
end
|
299
|
+
else
|
300
|
+
@tsmark = 0
|
258
301
|
end
|
259
|
-
when 'PgUP'
|
302
|
+
when 'PgUP' # Move selected item up by one
|
260
303
|
if @tsmark
|
261
304
|
t = @ts.delete_at(@tsmark)
|
262
305
|
@tsmark -= 1 unless @tsmark == 0
|
@@ -266,7 +309,7 @@ def main_getkey # GET KEY FROM USER
|
|
266
309
|
@epmark -= 1 unless @epmark == 0
|
267
310
|
@ep.insert(@epmark, e)
|
268
311
|
end
|
269
|
-
when 'PgDOWN'
|
312
|
+
when 'PgDOWN' # Move selected item by one down
|
270
313
|
if @tsmark
|
271
314
|
t = @ts.delete_at(@tsmark)
|
272
315
|
@tsmark += 1 unless @tsmark == @ts.length
|
@@ -276,19 +319,19 @@ def main_getkey # GET KEY FROM USER
|
|
276
319
|
@epmark += 1 unless @epmark == @ep.length
|
277
320
|
@ep.insert(@epmark, e)
|
278
321
|
end
|
279
|
-
when 'HOME'
|
322
|
+
when 'HOME' # Jump to first item in the panel
|
280
323
|
if @tsmark
|
281
324
|
@tsmark = 0
|
282
325
|
elsif @epmark
|
283
326
|
@epmark = 0
|
284
327
|
end
|
285
|
-
when 'END'
|
328
|
+
when 'END' # Move to last item in the panel
|
286
329
|
if @tsmark
|
287
330
|
@tsmark = @ts.length - 1
|
288
331
|
elsif @epmark
|
289
332
|
@epmark = @ep.length - 1
|
290
333
|
end
|
291
|
-
when ' '
|
334
|
+
when ' ' # Tag selected item to be used in observation file/log
|
292
335
|
if @tsmark
|
293
336
|
@tstag.include?(@tsmark) ? @tstag.delete(@tsmark) : @tstag.push(@tsmark)
|
294
337
|
@tsmark += 1 unless @tsmark == @ts.length - 1
|
@@ -296,23 +339,23 @@ def main_getkey # GET KEY FROM USER
|
|
296
339
|
@eptag.include?(@epmark) ? @eptag.delete(@epmark) : @eptag.push(@epmark)
|
297
340
|
@epmark += 1 unless @epmark == @ep.length - 1
|
298
341
|
end
|
299
|
-
when 'u'
|
342
|
+
when 'u' # Untag all tagget items
|
300
343
|
@tstag.clear
|
301
344
|
@eptag.clear
|
302
|
-
when 'o'
|
345
|
+
when 'o' # Create observation file/log and show content in lower panel
|
303
346
|
observe
|
304
|
-
when 'b'
|
347
|
+
when 'b' # Create backup file (~/.telescope.bu) with current items
|
305
348
|
File.write(Dir.home+'/.telescope.bu',"@ts = #{@ts}\n@ep = #{@ep}")
|
306
|
-
when 'B'
|
349
|
+
when 'B' # Read items from backup file
|
307
350
|
if File.exist?(Dir.home+'/.telescope.bu')
|
308
351
|
load(Dir.home+'/.telescope.bu')
|
309
352
|
end
|
310
|
-
when 'r'
|
353
|
+
when 'r' # Hard refres panels
|
311
354
|
@break = true
|
312
|
-
when 'q' # Exit
|
355
|
+
when 'q' # Exit after saving items to ~/.telescope
|
313
356
|
File.write(Dir.home+'/.telescope',"@ts = #{@ts}\n@ep = #{@ep}")
|
314
357
|
exit 0
|
315
|
-
when 'Q' # Exit
|
358
|
+
when 'Q' # Exit without saving items
|
316
359
|
exit 0
|
317
360
|
else
|
318
361
|
end
|
@@ -336,7 +379,7 @@ def observe
|
|
336
379
|
mag = (5 * Math::log(d/10, 10) + 7.5).truncate(1).to_s
|
337
380
|
obs += " Max MAG: " + mag
|
338
381
|
sepd = (115.824/d).truncate(2).to_s
|
339
|
-
sepr = (3600*Math::asin(671E-6/d)
|
382
|
+
sepr = (3600*Math::asin(671E-6/d).rad).truncate(2).to_s
|
340
383
|
obs += " Min SEP: " + sepd + "/" + sepr + "\n"
|
341
384
|
end
|
342
385
|
obs += "No telescope(s) chosen for the observation\n" if @tstag.empty?
|
@@ -377,16 +420,16 @@ end
|
|
377
420
|
# TELESCOPE FUNCTIONS (top window, w_ts)
|
378
421
|
def w_ts_show
|
379
422
|
@w_ts.setpos(0,0)
|
380
|
-
heading = " TELESCOPES
|
423
|
+
heading = " TELESCOPES APP(mm) FL(mm) F/? <MAG xEYE MINx MAXx *FIELD GX/NEB PL/GCL PLd/2* TGHT2* DL-SEP RC-SEP MOON SUN"
|
381
424
|
heading += " " * (@w_ts.maxx - heading.length).abs
|
382
425
|
@w_ts.pa(255, 94, Curses::A_BOLD, heading)
|
383
426
|
@w_ts.fg = 15
|
384
427
|
@w_ts.bg = 0
|
385
428
|
@ts.each_with_index do |scope, i|
|
386
|
-
name = scope[0]
|
429
|
+
name = scope[0][0...18]
|
387
430
|
d = scope[1]
|
388
431
|
f = scope[2]
|
389
|
-
out = " " + name.ljust(
|
432
|
+
out = " " + name.ljust(18)
|
390
433
|
out += d.to_s.rjust(8)
|
391
434
|
out += f.to_s.rjust(8)
|
392
435
|
attr = Curses::A_BOLD
|
@@ -415,9 +458,9 @@ def w_ts_show
|
|
415
458
|
@w_ts.pa(189, 0, 0, out) # TGHT2*
|
416
459
|
out = (115.824/d).truncate(2).dec2.to_s.rjust(7)
|
417
460
|
@w_ts.pa(219, 0, 0, out) # DL-SEP
|
418
|
-
out = (3600*Math::asin(671E-6/d)
|
461
|
+
out = (3600*Math::asin(671E-6/d).rad).truncate(2).dec2.to_s.rjust(8)
|
419
462
|
@w_ts.pa(219, 0, 0, out) # RC-SEP
|
420
|
-
moon = (384E6*Math::tan((
|
463
|
+
moon = (384E6*Math::tan((115.824.deg/d)/3600))
|
421
464
|
out = moon.to_i.to_s.rjust(6) + "m"
|
422
465
|
@w_ts.pa(225, 0, 0, out) # MOON
|
423
466
|
out = (moon/2.5668).to_i.to_s.rjust(5) + "km"
|
@@ -436,7 +479,7 @@ end
|
|
436
479
|
def w_ep_show
|
437
480
|
@w_ep.setpos(0,0)
|
438
481
|
scopes = 5
|
439
|
-
heading = " ".rjust(
|
482
|
+
heading = " ".rjust(35)
|
440
483
|
@w_ep.pa(231, 240, 0, heading)
|
441
484
|
@ts.each do |scope|
|
442
485
|
@w_ep.pa(231, 240, Curses::A_BOLD, "│ ")
|
@@ -445,17 +488,17 @@ def w_ep_show
|
|
445
488
|
end
|
446
489
|
heading = " " * (@w_ep.maxx - @w_ep.curx)
|
447
490
|
@w_ep.p(heading)
|
448
|
-
heading = " EYEPIECES
|
491
|
+
heading = " EYEPIECES FL(mm) AFOV "
|
449
492
|
heading += "│ xMAGN FOV(dms) XPUP " * @ts.length
|
450
493
|
heading += " " * (@w_ep.maxx - heading.length).abs
|
451
494
|
@w_ep.pa(231, 240, Curses::A_BOLD, heading)
|
452
495
|
@w_ep.fg = 15
|
453
496
|
@w_ep.bg = 0
|
454
497
|
@ep.each_with_index do |ep, i|
|
455
|
-
name = ep[0]
|
498
|
+
name = ep[0][0...18]
|
456
499
|
m = ep[1].truncate(1)
|
457
500
|
a = ep[2]
|
458
|
-
out = " " + name.ljust(
|
501
|
+
out = " " + name.ljust(18)
|
459
502
|
out += m.to_s.rjust(8)
|
460
503
|
out += a.to_s.rjust(6) + "°"
|
461
504
|
attr = Curses::A_BOLD
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: telescope-term
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Geir Isene
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-11-
|
11
|
+
date: 2021-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: curses
|
@@ -32,8 +32,8 @@ dependencies:
|
|
32
32
|
version: 1.3.2
|
33
33
|
description: 'With this program you can list your telescopes and eyepieces and get
|
34
34
|
a set of calculations done for each scope and for the combination of scope and eyepiece.
|
35
|
-
Easy interface. Run the program, then hit ''?'' to show the help file. New in v0.
|
36
|
-
|
35
|
+
Easy interface. Run the program, then hit ''?'' to show the help file. New in v0.6.0:
|
36
|
+
Added sorting of telescopes (via ''T'') and eyepieces (''E'').'
|
37
37
|
email: g@isene.com
|
38
38
|
executables:
|
39
39
|
- telescope
|