File Coverage

blib/lib/Astro/SkyX/ccdsoftCamera.pm
Criterion Covered Total %
statement 12 44 27.2
branch 0 12 0.0
condition 0 6 0.0
subroutine 4 9 44.4
pod 0 3 0.0
total 16 74 21.6


line stmt bran cond sub pod time code
1             package Astro::SkyX::ccdsoftCamera;
2              
3 1     1   16 use 5.006001;
  1         3  
  1         40  
4 1     1   5 use strict;
  1         3  
  1         36  
5 1     1   4 use warnings;
  1         1  
  1         328  
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.03';
30             our @PROPERTIES = qw( Abort Autoguide AtFocus AtFocus2 Calibrate CenterBrightestObject Connect Disconnect focConnect focDisconnect focMovein focMoveout focSettings Move MoveGuideStar TakeColor TakeImage szFilterName setszFilterName szBinModeFromIndex ReductionGroupFromIndex LRGBArray setLRGBArray );
31             our @READWRITEPROPS = qw( Asynchronous AtFocusAveraging AtFocusInitialMoveDirection AtFocusSamples AutoContrast Autoguider AutoguiderAggressiveness AutoguiderBacklashXAxis AutoguiderBacklashYAxis AutoguiderCalibrationTimeXAxis AutoguiderCalibrationTimeYAxis AutoguiderDelayAfterCorrection AutoguiderExposureTime AutoguiderLogData AutoguiderMaximumMove AutoguiderMinimumMove AutoSaveFileFormat AutoSaveFocusImages AutoSaveOn AutoSavePath AutoSavePrefix BinX BinY CalibrationVectorXNegativeXComponent CalibrationVectorXNegativeYComponent CalibrationVectorXPositiveXComponent CalibrationVectorXPositiveYComponent CalibrationVectorYNegativeXComponent CalibrationVectorYNegativeYComponent CalibrationVectorYPositiveXComponent CalibrationVectorYPositiveYComponent CameraInterface ColorSeries ContinuousFocus DeclinationAtCalibration Delay DownloadAbortedExposures DownloadAbortedExposuresAfterSeconds EnabledXAxis EnabledYAxis ExposureStatus ExposureTime FilterIndexZeroBased focBacklash focLargeStepSize focPort focSmallStepSize focTemperature focTemperatureCompensationMode FocusExposureTime FocusGraphType Frame GuideErrorX GuideErrorY GuideStarX GuideStarY HighPriorityDownloads ImageReduction ImageUseDigitizedSkySurvey lAsynchronous MoveToX MoveToY MoveVia Percent ReductionGroupName RegulateTemperature ReverseX SavedCalibrationTimeX SavedCalibrationTimeY SaveImagesWithUTC SBIGFanOn SBIGGuiderAntiBloom SBIGOffChipBinning ScreenShutter Series ShowAutoguider ShutDownTemperatureRegulationOnDisconnect Status Subframe SubframeBottom SubframeLeft SubframeRight SubframeTop TelescopeDeclination TemperatureSetPoint ToNewWindow TrackBoxX TrackBoxY );
32              
33             # Preloaded methods go here.
34              
35             ##---##
36              
37             sub new {
38 0     0 0   my ($caller, %arg) = @_;
39 0           my $caller_is_obj = ref($caller);
40 0   0       my $class = $caller_is_obj || $caller;
41              
42 0           my $self = bless {
43             _debug => $_[1],
44             }, $class;
45             # Private count increment/decrement methods
46             # $self->_incr_count();
47 0           return $self;
48             }
49             # sub _incr_count { ++$_count }
50             # sub _decr_count { --$_count }
51              
52             sub AUTOLOAD ($;$) {
53 1     1   4 no strict "refs";
  1         1  
  1         386  
54 0     0     my ($self, @newval) = @_;
55 0           my $newtext = '';
56 0           my $js = "/* Java Script */ \r\n";
57 0 0         if ($AUTOLOAD =~ /.*::(.*::.*)/) {
58 0           my $method = $1;
59             # Let's build the javascript
60             # $newtext = join ',', map{ qq/"$_"/ }@newval;
61 0 0         $newtext = join ',', map{ /^[0-9.-]*$/ ? $_ : qq/'$_'/ }@newval;
  0            
62 0           $method =~ tr/::/./s;
63              
64 0           my ($package, $propertyName) = $AUTOLOAD =~ m/^(.+::)(.+)$/;
65 0 0 0       if(haveProperty($propertyName)){
    0          
66 0           $js .= $method . "(" . $newtext . ");\r\n";
67             } elsif(haveReadWriteProp($propertyName) and length($newtext) ){
68              
69 0           $js .= $method . ' = ' . $newtext . ";\r\n";
70             } else {
71 0           $js .= $method . ";\r\n";
72             }
73 0           Astro::SkyX::Send($self,$js);
74 0           return Astro::SkyX::Get($self);
75             }
76 0           die "No such method: $AUTOLOAD";
77             }
78              
79             sub haveReadWriteProp{
80 0     0 0   my ($value) = @_;
81 0           for my $property (@READWRITEPROPS){
82 0 0         if($property eq $value){
83 0           return "1";
84             }
85             }
86 0           return undef;
87             }
88              
89             sub haveProperty{
90 0     0 0   my ($value) = @_;
91 0           for my $property (@PROPERTIES){
92 0 0         if($property eq $value){
93 0           return "1";
94             }
95             }
96 0           return undef;
97             }
98              
99 0     0     sub DESTROY {
100             # $_[0]->_decr_count();
101             }
102              
103             1;
104             __END__