File Coverage

blib/lib/Astro/SkyX/ccdsoftCamera.pm
Criterion Covered Total %
statement 11 37 29.7
branch 0 10 0.0
condition 0 6 0.0
subroutine 4 8 50.0
pod 0 2 0.0
total 15 63 23.8


line stmt bran cond sub pod time code
1             package Astro::SkyX::ccdsoftCamera;
2              
3 1     1   16 use 5.006001;
  1         3  
4 1     1   4 use strict;
  1         2  
  1         20  
5 1     1   4 use warnings;
  1         2  
  1         286  
6             require IO::Socket;
7             require Exporter;
8             require Astro::SkyX;
9              
10             #use vars qw( $SkyXConnection $_count );
11             our @ISA = qw(Exporter );
12              
13             # Items to export into callers namespace by default. Note: do not export
14             # names by default without a very good reason. Use EXPORT_OK instead.
15             # Do not simply export all your public functions/methods/constants.
16             our ($AUTOLOAD);
17             # This allows declaration use SkyX ':all';
18             # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
19             # will save memory.
20             our %EXPORT_TAGS = ( 'all' => [ qw(
21             new connect Send Get
22             ) ] );
23              
24             our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
25              
26             our @EXPORT = qw(
27             );
28              
29             our $VERSION = '0.11';
30             our @PROPERTIES = qw( TakeImage Autoguide Abort Connect Disconnect CenterBrightestObject Calibrate AtFocus TakeColor MoveGuideStar Move focConnect focDisconnect focSettings focMoveIn focMoveOut AtFocus2 filterWheelConnect filterWheelDisconnect filterWheelIsConnected centerAO rotatorConnect rotatorDisconnect rotatorIsConnected rotatorPositionAngle rotatorGotoPositionAngle rotatorIsRotating PropDbl setPropDbl PropLng setPropLng PropStr setPropStr szFilterName setszFilterName szBinModeFromIndex ReductionGroupFromIndex LRGBArray setLRGBArray );
31              
32             # Preloaded methods go here.
33              
34             ##---##
35              
36             sub new {
37 0     0 0   my ($caller, %arg) = @_;
38 0           my $caller_is_obj = ref($caller);
39 0   0       my $class = $caller_is_obj || $caller;
40              
41 0           my $self = bless {
42             _debug => $_[1],
43             }, $class;
44             # Private count increment/decrement methods
45             # $self->_incr_count();
46 0           return $self;
47             }
48              
49             sub AUTOLOAD ($;$) {
50 1     1   5 no strict "refs";
  1         2  
  1         431  
51 0     0     my ($self, @newval) = @_;
52 0           my $newtext = '';
53 0           my $js = "/* Java Script */ \r\n";
54 0 0         if ($AUTOLOAD =~ /.*::(.*::.*)/) {
55 0           my $method = $1;
56             # Let's build the javascript
57 0 0         $newtext = join ',', map{ /^[0-9.-]*$/ ? $_ : qq/'$_'/ }@newval;
  0            
58 0           $method =~ tr/::/./s;
59              
60 0           my ($package, $propertyName) = $AUTOLOAD =~ m/^(.+::)(.+)$/;
61 0 0 0       if(haveProperty($propertyName)){
    0          
62 0           $js .= $method . "(" . $newtext . ");\r\n";
63             } elsif(length($propertyName) and length($newtext) ){
64 0           $js .= $method . ' = ' . $newtext . ";\r\n";
65             } else {
66 0           $js .= $method . ";\r\n";
67             }
68 0           Astro::SkyX::Send($self,$js);
69 0           return Astro::SkyX::Get($self);
70             }
71 0           die "No such method: $AUTOLOAD";
72             }
73              
74             sub haveProperty{
75 0     0 0   my ($value) = @_;
76 0           for my $property (@PROPERTIES){
77 0 0         if($property eq $value){
78 0           return "1";
79             }
80             }
81 0           return undef;
82             }
83              
84       0     sub DESTROY {
85             # $_[0]->_decr_count();
86             }
87              
88             1;
89             __END__