コード例 #1
0
        //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());
        }
コード例 #2
0
        //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());
            }
        }