// 心跳 heart lock unlock carinfo gps volume restart upgrade upmusic findcar usable disable
class Cmd {
  constructor(vcu,token) {
    this.vcuNo = vcu
    this.token = token
  }
  parse(msg) {
    msg = JSON.parse(msg)
    if (msg.vcuNo !== this.vcuNo) return {type:null}
    switch (msg.cmd) {
      case 61441:
        return { type: 'heart', val: msg}
        break;
      case 61442:
        if (msg.lock_state=='1'){
          return { type: 'lock', val: msg }
        }else{
          return { type: 'unlock', val: msg }
        }
        break;
      case 61443:
      case 61462:
        return { type: 'carinfo', val: msg }
        break;
      case 61444:
        return { type: 'gps', val: msg }
        break;
      case 61445:
        return { type: 'volume', val: msg }
        break;
      case 61461:
        if (msg.no_battary){
          return { type: 'alarm', val: '低电量' }
        }else{
          return { type: 'alarm', val: '震动' }
        }
        break;
      case 61460:
        if (msg.active_state == 1) {
          return { type: 'usable', val: msg }
        } else {
          return { type: 'disable', val: msg }
        }
        break;
      default:
        return { type: null }
    }
  }
  stringify(order,val) {
    let data={
      vcuNo: this.vcuNo,
      token:this.token
    }
    switch (order) {
      case 'heart':
        data.cmd = 4097
        break;
      case 'firstDevice':
        data.cmd = 4117
        break;
      case 'lock':
        data.cmd = 4098
        data.lock = 1
        break;
      case 'unlock':
        data.cmd = 4098
        data.lock = 3
        break;
      case 'gps':
        data.cmd = 4100
        data.gps_info = 3
        break;
      case 'volume':
        data.cmd = 4101
        data.music_volume = val.music_volume
        break;
      case 'usable':
        data.cmd = 4116
        data.active = 1
        break;
      case 'carinfo':
        data.cmd = 4099
        data.car_info = 3
        break;
      case 'disable':
        data.cmd = 4116
        data.active = 0
        break;
      case 'findcar':
        data.cmd = 4115
        data.find_car = 1
        break;
      case 'restart':
        data.cmd = 4102
        data.cli_cmd = 're'
        break;
      default:
        return false
    }
    return JSON.stringify(data)
  }
}
export default Cmd
