cycle_analyst_logger 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c3011f180df601db59efd523a1ee9ccb6ffd6521
4
- data.tar.gz: f53a937549e43c562ad8c0e1a594235f9946cf83
3
+ metadata.gz: 271a460b2211a9d5021cc3994a43ed5380cbeb43
4
+ data.tar.gz: 3ad2cd453f30f2f6809864578967d0f6cbe3f368
5
5
  SHA512:
6
- metadata.gz: 96c66ff2178ae54788ab15ec4221fe4fda695b777426316f1c80d7c592f1c8a9f8a5cb90595e0062c7d181239c537f0ffd5f6690dc94c7e6737cfef5cc13002f
7
- data.tar.gz: 69cc29521879ff250579f6b1ff3e9db483c3d550d5686bf4b73a4a40443009953f936285ce9d5d4c79188ede57b3b453264ada57d1070e5ccf89a1f911f58578
6
+ metadata.gz: a49ee57ab3196de2b29bcfad840a932ad17640490da5434cff0ee52ca85b3e4e7e262b29033709deb15803f01c01c25d04e8fcf6724b7b7438f25b77b26745d4
7
+ data.tar.gz: 59882320fe416ab40be3170d398c38598025ff454565d463d49b30f797138f0bcf2a2dbe0fc8f3fcbfb79b2a54f3f3abf73d7af6405e4d38251b0e3aab62ce44
data/.gitignore CHANGED
@@ -38,3 +38,4 @@ Gemfile.lock
38
38
  *.csv
39
39
  *.log
40
40
  nmea.*.txt
41
+ /LOCAL/
data/README.rdoc CHANGED
@@ -97,28 +97,28 @@ There is a working systemd service unit file
97
97
  +resources/cycle_analyst_logger.service+. You can copy it into
98
98
  +/lib/systemd/system+ and do a
99
99
 
100
- +systemctl daemon-reload+ to load it into systemd
100
+ <tt>systemctl daemon-reload</tt> to load it into systemd
101
101
 
102
102
  * If you want it to start when the system is booted say:
103
103
 
104
- +systemctl enable cycle_analyst_logger.service+
104
+ <tt>systemctl enable cycle_analyst_logger.service</tt>
105
105
 
106
106
  * To disable:
107
107
 
108
- +systemctl disable cycle_analyst_logger.service+
108
+ <tt>systemctl disable cycle_analyst_logger.service</tt>
109
109
 
110
110
  * To start it manually (have to do this also the first time you do an enable and
111
111
  want it to run then):
112
112
 
113
- +systemctl start cycle_analyst_logger.service+
113
+ <tt>systemctl start cycle_analyst_logger.service</tt>
114
114
 
115
115
  * You can check the status:
116
116
 
117
- +systemctl status cycle_analyst_logger.service+
117
+ <tt>systemctl status cycle_analyst_logger.service</tt>
118
118
 
119
119
  * To see the logs:
120
120
 
121
- +journalctl -u cycle_analyst_logger.service+
121
+ <tt>journalctl -u cycle_analyst_logger.service</tt>
122
122
 
123
123
  This file assumed that rvm was installed in my home directory and an rvm wrapper
124
124
  was created so it the service unit file could just exec it. I am currently using
@@ -126,7 +126,7 @@ Ruby 2.4.1.
126
126
 
127
127
  The command used to create the wrapper was run as my normal user:
128
128
 
129
- +rvm alias create cycle_analyst_logger 2.4.1+
129
+ <tt>rvm alias create cycle_analyst_logger 2.4.1</tt>
130
130
 
131
131
  == License and Copyright
132
132
 
@@ -80,7 +80,16 @@ module CycleAnalystLogger
80
80
  end
81
81
  end
82
82
 
83
- pre do |global,command,options,args|
83
+ desc 'Transform logs to CA format'
84
+ arg_name 'log_filename'
85
+ command :to_ca_file do |to_ca_file|
86
+ to_ca_file.action do |global_options, options, args|
87
+ log_filename = args[0]
88
+ CycleAnalyst.log_to_ca_file(log_filename)
89
+ end
90
+ end
91
+
92
+ pre do |global,command,options,args|
84
93
  # Pre logic here
85
94
  # Return true to proceed; false to abort and not call the
86
95
  # chosen command
@@ -49,6 +49,9 @@ module CycleAnalystLogger
49
49
  13 => { address: 12, name: "Limit Flags", units: "bit flags", scale: 1}
50
50
  }
51
51
 
52
+ # CA_STD_HEADER
53
+ CA_STD_HEADER = %w(Ah V A S D Deg RPM HW Nm ThI ThO AuxA AuxD Flgs)
54
+
52
55
  # CycleAnalyst New
53
56
  def initialize(opts)
54
57
  @baudrate = opts[:baud_ca]
@@ -136,5 +139,34 @@ module CycleAnalystLogger
136
139
  break if idx >= loop_count
137
140
  end
138
141
  end
142
+
143
+ def self.valid_timestamp(input)
144
+ begin
145
+ Time.parse(input)
146
+ rescue ArgumentError
147
+ nil
148
+ end
149
+ end
150
+
151
+ def self.log_to_ca_file(log_filename)
152
+ output_filename = log_filename.sub(
153
+ /cycle_analyst\.(\d\d\d\d\-\d\d\-\d\d_\d\d\-\d\d\-\d\d).csv/,
154
+ 'CALog_\1.txt'
155
+ )
156
+ out_fd = File.open(output_filename, 'w')
157
+
158
+ File.readlines(log_filename).each.with_index do |log_line, idx|
159
+ log_record = log_line.split(',')
160
+ if idx == 0
161
+ out_fd.puts CA_STD_HEADER.join("\t")
162
+ next
163
+ end
164
+
165
+ # Check that the line has a valid timestamp, skip this line if it isn't
166
+ next unless (timestamp = valid_timestamp log_record[0])
167
+
168
+ out_fd.puts log_record[1..CA_STD_HEADER.length].join("\t")
169
+ end
170
+ end
139
171
  end
140
172
  end
@@ -1,3 +1,3 @@
1
1
  module CycleAnalystLogger
2
- VERSION = '0.3.3'
2
+ VERSION = '0.3.4'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cycle_analyst_logger
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert J. Berger
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-01 00:00:00.000000000 Z
11
+ date: 2018-02-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gli