Class: Sensingplaza::Client
- Inherits:
-
Object
- Object
- Sensingplaza::Client
- Defined in:
- lib/sensingplaza/client.rb
Instance Attribute Summary collapse
-
#mailaddress ⇒ Object
Returns the value of attribute mailaddress.
Instance Method Summary collapse
-
#get_data(sensorkey, datetime) ⇒ Object
———————————————————————— sensorkey - String(s) ex) “12abe9de” or [“12abe9de”, “433bedd2”, …] datetime - String ex) “2018-07-04 12:00:00”.
-
#get_image(sensorkey, datetime) ⇒ Object
———————————————————————— sensorkey - String(s) ex) “12abe9de” or [“12abe9de”, “433bedd2”, …] datetime - String ex) “2018-05-22 12:34:00”.
-
#get_last_data(sensorkey, isFromAllData = false) ⇒ Object
———————————————————————— sensorkey - String(s) ex) “” or [“”, “”, …].
-
#get_period_data(sensorkey, sdatetime, edatetime) ⇒ Object
———————————————————————— sensorkey - String(s) sdatetme, edatetime - String ex) “2018-07-04 12:12:00” getting data from sdatetime to edatetime result: { :skey => [[:datetime, value], …], [:datetime, value], …] }.
-
#get_period_image(sensorkey, sdatetime, edatetime) ⇒ Object
———————————————————————— sensorkey - String(s) ex) “” or [“”, “”, …] sdatetime, edatetime -String ex) “2018-07-05 12:00:00”.
-
#get_sensor_information(sensorkey) ⇒ Object
———————————————————————— sensorkey - String(s) ex) “” or [“”, “”, …].
-
#initialize(mailaddress = nil, logger = nil) ⇒ Client
constructor
mailaddress - String ex) [email protected] logger - Logger.
- #logger=(val) ⇒ Object
-
#push_bulkdata(sensorkey, bulkdata) ⇒ Object
———————————————————————— sensorkey - String ex) “ssssssss” bulkdata - Array ex) [[:datetime, value], [:datetime, value], …].
-
#push_data(sensorkey, data, datetime = nil) ⇒ Object
———————————————————————— sensorkey - String(s) ex) “” or [“”, “”, …] data - value(s) ex) 12.45 or [12.45, “on”, …] datetime - String or Nil ex) “2018-07-04 12:34:00”, nil -> now time.
-
#push_image(sensorkey, data, datetime = nil) ⇒ Object
———————————————————————— sensorkey -String(s) ex) “12abe9de” or [“12abe9de”, “433bedd2”, …] data - image data(binary) datetime - String ex) “2018-07-04 12:34:00” or nil -> now time.
- #sensingplaza_url=(val) ⇒ Object
Constructor Details
#initialize(mailaddress = nil, logger = nil) ⇒ Client
mailaddress - String ex) [email protected] logger - Logger
12 13 14 15 16 17 18 |
# File 'lib/sensingplaza/client.rb', line 12 def initialize(mailaddress = nil, logger = nil) @sensingplaza_url = SENSINGPLAZA_URL @mailaddress = mailaddress @logger = logger @webreq = WebRequest.new(@sensingplaza_url, @logger) end |
Instance Attribute Details
#mailaddress ⇒ Object
Returns the value of attribute mailaddress.
8 9 10 |
# File 'lib/sensingplaza/client.rb', line 8 def mailaddress @mailaddress end |
Instance Method Details
#get_data(sensorkey, datetime) ⇒ Object
sensorkey - String(s) ex) “12abe9de” or [“12abe9de”, “433bedd2”, …] datetime - String ex) “2018-07-04 12:00:00”
145 146 147 148 149 150 151 152 153 154 155 |
# File 'lib/sensingplaza/client.rb', line 145 def get_data(sensorkey, datetime) return nil if @mailaddress.nil? datetime = Time.now.to_s[0, 19] if datetime.nil? return nil unless datetime_format?(datetime) skeys = skey_forming(sensorkey) return nil if skeys.empty? result = download(skeys, datetime) return result end |
#get_image(sensorkey, datetime) ⇒ Object
sensorkey - String(s) ex) “12abe9de” or [“12abe9de”, “433bedd2”, …] datetime - String ex) “2018-05-22 12:34:00”
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 |
# File 'lib/sensingplaza/client.rb', line 210 def get_image(sensorkey, datetime) return nil if @mailaddress.nil? return nil unless datetime_format?(datetime) skeys = skey_forming(sensorkey) return nil if skeys.empty? result = Hash.new datas = download(skeys, datetime) datas.each do |k, v| unless v.nil? imgdat = Base64.strict_decode64(v) imgtype, mimetype = check_image_format(imgdat[0, 4]) # first 4bytes fname = "#{datetime.gsub(/[\-\s\:]/, "")}.#{imgtype}" result[k] = { "blob" => imgdat, "filename" => fname, "content-type" => mimetype } else result[k] = nil end end return result end |
#get_last_data(sensorkey, isFromAllData = false) ⇒ Object
sensorkey - String(s) ex) “” or [“”, “”, …]
176 177 178 179 180 181 182 183 184 185 186 187 |
# File 'lib/sensingplaza/client.rb', line 176 def get_last_data(sensorkey, isFromAllData = false) return nil if @mailaddress.nil? skeys = skey_forming(sensorkey) return nil if skeys.empty? datetime = nil max_datetime = Time.now.to_s[0, 19] max_datetime = nil if isFromAllData result = download(skeys, datetime, max_datetime) return result end |
#get_period_data(sensorkey, sdatetime, edatetime) ⇒ Object
sensorkey - String(s) sdatetme, edatetime - String ex) “2018-07-04 12:12:00”
getting data from sdatetime to edatetime
result: { :skey => [[:datetime, value], …], [:datetime, value], …] }
162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/sensingplaza/client.rb', line 162 def get_period_data(sensorkey, sdatetime, edatetime) return nil if @mailaddress.nil? return nil unless datetime_format?(sdatetime) return nil unless datetime_format?(edatetime) skeys = skey_forming(sensorkey) return nil if skeys.empty? result = bulkdown(skeys, sdatetime, edatetime) return result end |
#get_period_image(sensorkey, sdatetime, edatetime) ⇒ Object
sensorkey - String(s) ex) “” or [“”, “”, …] sdatetime, edatetime -String ex) “2018-07-05 12:00:00”
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 |
# File 'lib/sensingplaza/client.rb', line 235 def get_period_image(sensorkey, sdatetime, edatetime) return nil if @mailaddress.nil? return nil unless datetime_format?(sdatetime) return nil unless datetime_format?(edatetime) skeys = skey_forming(sensorkey) return nil if skeys.empty? result = Array.new datas = bulkdown(skeys, sdatetime, edatetime) datas.each do |dat| dt = dat["datetime"] rehash = Hash.new rehash["datetime"] = dt dat["data"].each do |k, v| unless v.nil? imgdat = Base64.strict_decode64(v) imgtype, mimetype = check_image_format(imgdat[0, 4]) # first 4bytes fname = "#{dt.gsub(/[\-\s\:]/, "")}.#{imgtype}" rehash[k] = { "blob" => imgdat, "filename" => fname, "content-type" => mimetype } else rehash[k] = nil end end result.push(rehash) end return result end |
#get_sensor_information(sensorkey) ⇒ Object
sensorkey - String(s) ex) “” or [“”, “”, …]
289 290 291 292 293 294 295 296 297 298 299 300 |
# File 'lib/sensingplaza/client.rb', line 289 def get_sensor_information(sensorkey) skeys = skey_forming(sensorkey) return nil if skeys.empty? endpoint = "/api/sensor_info" req = { "mailaddress" => @mailaddress, "data" => skeys } jsonstr = @webreq.post(req, endpoint) response = JSON.parse(jsonstr) return response["data"] end |
#logger=(val) ⇒ Object
24 25 26 27 |
# File 'lib/sensingplaza/client.rb', line 24 def logger=(val) @logger = val @webreq.logger = val end |
#push_bulkdata(sensorkey, bulkdata) ⇒ Object
sensorkey - String ex) “ssssssss” bulkdata - Array ex) [[:datetime, value], [:datetime, value], …]
305 306 307 308 309 310 311 312 |
# File 'lib/sensingplaza/client.rb', line 305 def push_bulkdata(sensorkey, bulkdata) return nil if @mailaddress.nil? skeys = skey_forming(sensorkey) return nil if skeys.empty? result = bulkupload(skeys, bulkdata) return result end |
#push_data(sensorkey, data, datetime = nil) ⇒ Object
sensorkey - String(s) ex) “” or [“”, “”, …] data - value(s) ex) 12.45 or [12.45, “on”, …] datetime - String or Nil ex) “2018-07-04 12:34:00”, nil -> now time
193 194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/sensingplaza/client.rb', line 193 def push_data(sensorkey, data, datetime = nil) return nil if @mailaddress.nil? datetime = Time.now.to_s[0, 19] if datetime.nil? return nil unless datetime_format?(datetime) skeys = skey_forming(sensorkey) return nil if skeys.empty? datas = data_forming(data) return nil if datas.empty? result = upload(skeys, datetime, datas) return result end |
#push_image(sensorkey, data, datetime = nil) ⇒ Object
sensorkey -String(s) ex) “12abe9de” or [“12abe9de”, “433bedd2”, …] data - image data(binary) datetime - String ex) “2018-07-04 12:34:00” or nil -> now time
269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 |
# File 'lib/sensingplaza/client.rb', line 269 def push_image(sensorkey, data, datetime = nil) return nil if @mailaddress.nil? datetime = Time.now.to_s[0, 19] if datetime.nil? return nil unless datetime_format?(datetime) skeys = skey_forming(sensorkey) return nil if skeys.empty? datas = data_forming(data) return nil if datas.empty? imgs = Array.new datas.each do |dat| imgs.push(Base64.strict_encode64(dat)) end result = upload(skeys, datetime, imgs) return result end |
#sensingplaza_url=(val) ⇒ Object
20 21 22 23 |
# File 'lib/sensingplaza/client.rb', line 20 def sensingplaza_url=(val) @sensingplaza_url = val @webreq.url = val end |