def mutate(self, info, sn): if options.tracker.get(sn): options.tracker.pop(sn) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn, iccid): if options.tracker.get(sn): code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_EXISTS) else: options.tracker[sn] = DotDict(iccid=iccid, lon=-75.59302, lat=41.40672, seq=0, bat=20, temp=10, chg=0, gsm=9, speed=80, course=10, gps=20, acc=10, sn=sn, fmt_iccid=fn.fmt_iccid(iccid), alt=50) Thread(target=SimulatorTracker(sn, iccid, options.socket_param).tcpClient, args=(iccid, )).start() code, message = RESPONSE.fmt_response(RESPONSE.OK) return Result(code=code, message=message)
def mutate(self, info, sn, type, bat=None, ts=int(time.time()), temp=None, gsm=None, acc=None, gps=None, course=None, speed=None, alt=None, lon=None, lat=None): tk = options.tracker.get(sn) def _set_conf(args): for k in args: if args[k] is not None: tk[k] = args[k] if tk: options.thread_lock.acquire() list( map(_set_conf, [{ 'type': type }, { 'bat': bat }, { 'temp': temp }, { 'ts': ts }, { 'gsm': gsm }, { 'gps': gps }, { 'course': course }, { 'speed': speed }, { 'alt': alt }, { 'lon': lon }, { 'lat': lat }, { 'acc': acc }])) options.thread_lock.release() u4 = Composer(tk.lon, tk.lat).compose_u4(tk) options.socket_param.send(u4) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn, lonlats, speed=None, last_stop=False): tk = options.tracker.get(sn) ts = int(time.time()) if tk: error_lons = [] error_lats = [] for i, t in enumerate(lonlats): if t[0] > 180 or t[0] < -180: error_lons.append(t[0]) if t[1] > 90 or t[1] < -90: error_lats.append(t[1]) lonlats[i][0] *= 100000 lonlats[i][1] *= 100000 if len(lonlats[i]) == 2: lonlats[i].append(ts) ts += 10 if error_lats or error_lons: return Result(code=RESPONSE.ILLEGAL_FORMAT, message='经度或纬度超出范围, ' '经度: %s; 纬度: %s' % (error_lons, error_lats)) else: options.thread_lock.acquire() tk['lon'] = lonlats[-1][0] / 100000 tk['lat'] = lonlats[-1][1] / 100000 if speed is not None: tk['speed'] = speed options.thread_lock.release() u5 = Composer(tk.lon, tk.lat).compose_move(tk, lonlats) options.socket_param.send(u5) if last_stop: ts = lonlats[-1][2] + 2 threading.Timer(ts, options.socket_param.send, args=(Composer(tk.lon, tk.lat).compose_stop(tk, ts=ts))) # u5 = Composer(tk.lon, tk.lat).compose_stop(tk) # options.socket_param.send(u5) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn, ts=None): tk = options.tracker.get(sn) if tk: u5 = Composer(tk.lon, tk.lat).compose_stop(tk, ts=ts) options.socket_param.send(u5) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn): tk = options.tracker.get(sn) if tk: cp = Composer(tk.lon, tk.lat) msg = cp.compose_u8(tk) options.socket_param.send(msg) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn, wireds): tk = options.tracker.get(sn) if tk: cp = Composer(tk.lon, tk.lat) info = '' for d in wireds: if info: info += '|' info += d['gpiox'] + '@' + str(d['offset']) + '=' + str( d['value']) msg = cp.compose_u6(tk, info) options.socket_param.send(msg) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn, chg=None, bat=None, temp=None, gsm=None, acc=None): tk = options.tracker.get(sn) def _set_conf(args): for k in args: if args[k] is not None: tk[k] = args[k] if tk: if any([chg, bat, temp, gsm, acc]): options.thread_lock.acquire() list( map(_set_conf, [{ 'chg': chg }, { 'bat': bat }, { 'temp': temp }, { 'acc': acc }])) options.thread_lock.release() u2 = Composer(tk.lon, tk.lat).compose_heartbat(fn.get_seq(sn), fn.fmt_iccid(tk.iccid), tk) options.socket_param.send(u2) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)
def mutate(self, info, sn, ruuvi, door, range): tk = options.tracker.get(sn) if tk: cp = Composer(tk.lon, tk.lat) lth = len(ruuvi) + len(range) + len(door) value, fmt = cp.compose_u7_header(tk, lth) if ruuvi: value, fmt = cp.compose_ruuvi(ruuvi, value, fmt) if door: value, fmt = cp.compose_wireless_door(door, value, fmt) if range: value, fmt = cp.compose_range(range, value, fmt) msg = struct.pack(fmt, *value) logging.info("u7_mg: %s", value) options.socket_param.send(msg) code, message = RESPONSE.fmt_response(RESPONSE.OK) else: code, message = RESPONSE.fmt_response(RESPONSE.TRACKER_NOT_EXISTS) return Result(code=code, message=message)