//STEP 2 END RECORDING AND SAVE DATA FROM CACHE public async Task <ActionResult> EndCarRecord(int carName) { //get car info from db var car = _carService.GetCarByName(carName); //save cached coordinates to database var carInCache = await RedisHelper.Instance.GetCacheItem <CachedRecordingModel>($"car_{car.CarName}"); _carService.EndCarRecording(car.Id, carInCache.CachedCoordinates); //update robot status in cache carInCache.RobotStatus = 0; carInCache.CachedCoordinates = new List <Coordinate>(); await RedisHelper.Instance.SetCache($"car_{car.CarName}", carInCache); //send to robot to end recording var msg = new msg_control_cmd() { cmd = 0, cmd_slave = 0, route_id = 0 }; var outbound = new OutboundModel() { Ip = carInCache.Ip, CarName = carInCache.CarName, Data = new List <object> { msg } }; await RedisHelper.Instance.SetCache <OutboundModel>("command", outbound); return(Ok()); }
//STEP 1 START RECORDING CAR COORDINATES public async Task <ActionResult> StartCoordinateRecording(int carName, string recordId) { if (recordId == null) { //get car info from db var car = _carService.GetCarByName(carName); //update robot status in cache var carInCache = await RedisHelper.Instance.GetCacheItem <CachedRecordingModel>($"car_{car.CarName}"); if (carInCache == null) { return(BadRequest()); } carInCache.RobotStatus = Const.ROBOT_STATUS_REMOTE; await RedisHelper.Instance.SetCache($"car_{car.CarName}", carInCache); //add to db _carService.AddNewCarRecord(car.Id); //send to robot to start recording var msg = new msg_control_cmd() { cmd = 1, cmd_slave = 0, route_id = 0 }; var outbound = new OutboundModel() { Ip = carInCache.Ip, CarName = carInCache.CarName, Data = new List <object> { msg } }; await RedisHelper.Instance.SetCache <OutboundModel>("command", outbound); return(Ok()); } else { return(BadRequest()); } }