Inheritance: MonoBehaviour
Ejemplo n.º 1
0
        static void waitForFinish(SerialPort myPort)
        {
            uint      curpos = 0;
            uint      setpos = 0;
            SpeedInfo spd    = getCurrentSpeed(myPort);

            for (int i = 0; i < 400; i++)
            {
                curpos = getCurPos(myPort);
                setpos = getSetPos(myPort);
                //spd = getCurrentSpeed(myPort);

                Console.WriteLine("即时运行位置:" + curpos + " 设定运行位置:" + setpos + " 速度倍数:" + spd.level + " 速度单位毫秒:" + spd.speed);


                if (curpos == setpos)
                {
                    Console.WriteLine("到达目标位置");
                    break;
                }

                uint wt = (setpos > curpos?(setpos - curpos):(curpos - setpos)) * spd.speed / 1000;
                Thread.Sleep((int)wt);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="Creature" /> class.
 /// </summary>
 /// <param name="creatureType">Type of the creature.</param>
 /// <param name="speechBubble">The speech bubble.</param>
 protected Creature(CreatureType creatureType, SpeechBubble speechBubble)
 {
     CreatureType = creatureType;
     SpeechBubble = speechBubble;
     BaseSpeed    = new SpeedInfo();
     Settings     = new CreatureSettings();
 }
Ejemplo n.º 3
0
 /// <summary>
 ///     Adds the specified message.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="creatureId">The creature identifier.</param>
 /// <param name="speedInfo">The speed information.</param>
 public static void Add(NetworkMessage message, uint creatureId, SpeedInfo speedInfo)
 {
     message.AddPacketType(GamePacketType.CreatureChangeSpeed);
     message.AddUInt32(creatureId);
     message.AddUInt16(speedInfo.WalkSpeed);
     message.AddUInt16(speedInfo.BonusSpeed);
 }
Ejemplo n.º 4
0
        /// <summary>
        /// 新增线路速度表
        /// </summary>
        /// <param name="dao">数据对象</param>
        /// <returns>成功/失败</returns>
        public bool Insert(SpeedInfo dao)
        {
            SqlStatement stmt = _session.CreateSqlStatement();

            stmt.AppendString("insert into SpeedInfo(GroupID,Category,Speed,Length,EndMileage,Remark) values (");
            stmt.AppendParameter(_session.MakeInParameter("GroupID", dao.GroupID, SqlDbType.UniqueIdentifier));
            stmt.AppendString(",");
            stmt.AppendParameter(_session.MakeInParameter("Category", dao.Category, SqlDbType.Int));
            stmt.AppendString(",");
            stmt.AppendParameter(_session.MakeInParameter("Speed", dao.Speed, SqlDbType.Int));
            stmt.AppendString(",");
            stmt.AppendParameter(_session.MakeInParameter("Length", dao.Length, SqlDbType.Int));
            stmt.AppendString(",");
            stmt.AppendParameter(_session.MakeInParameter("EndMileage", dao.EndMileage, SqlDbType.NVarChar));
            stmt.AppendString(",");
            stmt.AppendParameter(_session.MakeInParameter("Remark", dao.Remark, SqlDbType.NVarChar));
            stmt.AppendString(");select SCOPE_IDENTITY();");
            stmt.StatementType = SqlStatementType.Identity;
            SqlResult result = _session.Excecute(stmt);

            if (result.Data != null)
            {
                dao.ID = int.Parse(result.Data.ToString());
                return(true);
            }
            return(false);
        }
Ejemplo n.º 5
0
 /// <summary>
 /// 获取指定的数据行DataRow转换成SpeedInfo
 /// </summary>
 /// <param name="dr">DataRow数据</param>
 /// <param name="dao">SpeedInfo实体类</param>
 public void DataRowToEntity(DataRow dr, SpeedInfo dao)
 {
     if (dr["ID"] == null || dr["ID"] == DBNull.Value)
     {
         dao.ID = int.MinValue;
     }
     else
     {
         dao.ID = int.Parse(dr["ID"].ToString());
     }
     if (dr["GroupID"] == null || dr["GroupID"] == DBNull.Value)
     {
         dao.GroupID = Guid.NewGuid();
     }
     else
     {
         dao.GroupID = Guid.Parse(dr["GroupID"].ToString());
     }
     if (dr["Category"] == null || dr["Category"] == DBNull.Value)
     {
         dao.Category = int.MinValue;
     }
     else
     {
         dao.Category = int.Parse(dr["Category"].ToString());
     }
     if (dr["Speed"] == null || dr["Speed"] == DBNull.Value)
     {
         dao.Speed = int.MinValue;
     }
     else
     {
         dao.Speed = int.Parse(dr["Speed"].ToString());
     }
     if (dr["Length"] == null || dr["Length"] == DBNull.Value)
     {
         dao.Length = int.MinValue;
     }
     else
     {
         dao.Length = int.Parse(dr["Length"].ToString());
     }
     if (dr["EndMileage"] == null || dr["EndMileage"] == DBNull.Value)
     {
         dao.EndMileage = null;
     }
     else
     {
         dao.EndMileage = dr["EndMileage"].ToString();
     }
     if (dr["Remark"] == null || dr["Remark"] == DBNull.Value)
     {
         dao.Remark = null;
     }
     else
     {
         dao.Remark = dr["Remark"].ToString();
     }
 }
Ejemplo n.º 6
0
 /// <inheritdoc />
 /// <summary>
 ///     Initializes a new instance of the <see cref="T:Tibia.Spawns.CreatureSpawn" /> class.
 /// </summary>
 protected CreatureSpawn()
 {
     Health = new Health();
     Skull  = new Skull();
     Level  = new Level();
     Mount  = new Mount();
     Outfit = new Outfit();
     RegenerationConditions = new HashSet <RegenerationCondition>();
     Speed = new SpeedInfo();
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 获取指定大小的一页线路速度表集合
        /// </summary>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">分页大小</param>
        /// <param name="rowsCount">总记录条数</param>
        /// <returns>分页数据</returns>
        public ObservableCollection <SpeedInfo> SelectAllCollection(int pageIndex, int pageSize, int rowsCount)
        {
            ObservableCollection <SpeedInfo> datas = new ObservableCollection <SpeedInfo>();
            GenDataReader reader = Session.ExcecuteReader(_dal.SelectAllSqlStatement(), pageIndex, pageSize, rowsCount);

            while (reader.Read())
            {
                SpeedInfo dao = new SpeedInfo();
                _dal.DataReaderToEntity(reader, dao);
                datas.Add(dao);
            }
            reader.Close();
            return(datas);
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Sets the recording device to use in this session
        /// </summary>
        public static void setRecordingDrive()
        {
            Program.drive_selector.Logger = Program.logger;
            Program.drive_selector.InitializeDeviceList(false);

            if (Program.drive != null)
            {
                Program.drive.Dispose();
                Program.drive = null;
            }

            if (Program.device != null)
            {
                Program.device.Dispose();
                Program.device = null;
            }

            string dname = (string)Program.drive_selector.SelectedItem;

            Program.device = new Device(Program.logger);

            if (!Program.device.Open(dname[0]))
            {
                Program.device = null;
                return;
            }

            Program.drive = new Drive(Program.device);
            DiskOperationError status = Program.drive.Initialize();

            if (status != null)
            {
                Program.drive.Dispose();
                Program.device.Dispose();
                Program.device = null;
                Program.drive  = null;
                return;
            }

            SpeedInfo[] speeds;
            if (Program.drive.GetWriteSpeeds(out speeds) == null && speeds.GetLength(0) != 0)
            {
                Program.burn_speed = speeds[0];
            }
            else
            {
                Program.burn_speed = null;
            }
        }
Ejemplo n.º 9
0
        //Check for collision with all other gameobjects
        private SpeedInfo applyPhysics(Vector3 speed)
        {
            SpeedInfo speedInfo;

            speedInfo.speed          = speed;
            speedInfo.speedThisFrame = speed;

            foreach (GameObject gameObject in gameobjects)
            {
                if (gameObject is Box)
                {
                    foreach (Plane plane in ((Box)gameObject).planes)
                    {
                        SpeedInfo info = applyCollisionPhysics(plane, speedInfo.speed);
                        speedInfo.speed = info.speed;
                        if (info.speedThisFrame.Length() < speedInfo.speedThisFrame.Length())
                        {
                            speedInfo.speedThisFrame = info.speedThisFrame;
                        }
                    }
                }
                else if (gameObject is Flipper)
                {
                    foreach (Plane plane in ((Flipper)gameObject).planes)
                    {
                        SpeedInfo info = applyCollisionPhysics(plane, speedInfo.speed);
                        speedInfo.speed = info.speed;
                        if (info.speedThisFrame.Length() < speedInfo.speedThisFrame.Length())
                        {
                            speedInfo.speedThisFrame = info.speedThisFrame;
                        }
                    }
                }
                else if (gameObject is Plane)
                {
                    SpeedInfo info = applyCollisionPhysics((Plane)gameObject, speedInfo.speed);
                    speedInfo.speed = info.speed;
                    if (info.speedThisFrame.Length() < speedInfo.speedThisFrame.Length())
                    {
                        speedInfo.speedThisFrame = info.speedThisFrame;
                    }
                }
                index++;
            }

            index = 0;
            return(speedInfo);
        }
Ejemplo n.º 10
0
 public SpeedInfo(SpeedInfo source)
 {
     if (source == null)
     {
         PassengerSpeed = -1;
         FreightSpeed   = -1;
     }
     else
     {
         PassengerSpeed        = source.PassengerSpeed;
         FreightSpeed          = source.FreightSpeed;
         Flag                  = source.Flag;
         Reset                 = source.Reset;
         LimitedSpeedReduction = source.LimitedSpeedReduction;
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        /// 获取指定的线路速度表
        /// </summary>
        /// <param name="iD">顺序号</param>
        /// <returns>线路速度表</returns>
        public SpeedInfo SelectOne(int iD)
        {
            SqlStatement stmt = _session.CreateSqlStatement();

            stmt.AppendString("select * from SpeedInfo where ID=");
            stmt.AppendParameter(_session.MakeInParameter("ID", iD, SqlDbType.Int));
            stmt.StatementType = SqlStatementType.Select;
            SqlResult result    = _session.Excecute(stmt);
            SpeedInfo speedInfo = new SpeedInfo();

            if (result.RowsAffected > 0)
            {
                DataRowToEntity(result.Tables[0].Rows[0], speedInfo);
            }
            return(speedInfo);
        }
Ejemplo n.º 12
0
        //Move the ball and check for collision
        private void move(float deltaTime)
        {
            Vector3   speed     = velocity * deltaTime;
            SpeedInfo speedInfo = applyPhysics(speed);

            position += speedInfo.speedThisFrame;
            if (!speed.Equals(speedInfo.speed))
            {
                velocity = speedInfo.speed / deltaTime;
            }
            else
            {
                this.velocity += this.acceleration;
                this.velocity *= airFriction;
            }
        }
Ejemplo n.º 13
0
        UIPresenter(
            ThrowButtonView tButtonViewIn,
            BombButtonView bButtonViewIn,
            PlayerLife pLifeIn,
            HouseLife hLifeIn,
            BossLife bLifeIn,
            SpeedInfo sInfoIn,
            HeightInfo hInfoIn,
            Combo comboIn,
            PlayTime timeIn,
            Score scoreIn,
            Money moneyIn,
            LoadingView loadingViewIn,
            GameController gameControllerIn,
            Player playerIn,
            House houseIn,
            EnemyGenerator enemyGeneratorIn,
            BGScroller bgScrollerIn,
            BulletGenerator bulletGeneratorIn
            )
        {
            // それぞれ代入
            tButtonView = tButtonViewIn;
            bButtonView = bButtonViewIn;
            pLife       = pLifeIn;
            hLife       = hLifeIn;
            bLife       = bLifeIn;
            sInfo       = sInfoIn;
            hInfo       = hInfoIn;
            combo       = comboIn;
            time        = timeIn;
            score       = scoreIn;
            money       = moneyIn;
            loadingView = loadingViewIn;

            gameController  = gameControllerIn;
            player          = playerIn;
            house           = houseIn;
            enemyGenerator  = enemyGeneratorIn;
            bgScroller      = bgScrollerIn;
            bulletGenerator = bulletGeneratorIn;

            // 各種情報の監視と表示更新はここでは行わない

            // 読み込み待ちの監視登録
            CheckLoadData();
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 获取所有的线路速度表集合
        /// </summary>
        /// <returns>所有信息</returns>
        public ObservableCollection <SpeedInfo> SelectAllCollection()
        {
            ObservableCollection <SpeedInfo> datas = new ObservableCollection <SpeedInfo>();
            SqlStatement stmt = _session.CreateSqlStatement();

            stmt.AppendString("select * from SpeedInfo");
            stmt.StatementType = SqlStatementType.Select;
            GenDataReader reader = _session.ExcecuteReader(stmt);

            while (reader.Read())
            {
                SpeedInfo dao = new SpeedInfo();
                DataReaderToEntity(reader, dao);
                datas.Add(dao);
            }
            reader.Close();
            return(datas);
        }
Ejemplo n.º 15
0
        /// <summary>
        /// 更新线路速度表
        /// </summary>
        /// <param name="dao">数据对象</param>
        /// <returns>成功/失败</returns>
        public bool Update(SpeedInfo dao)
        {
            SqlStatement stmt = _session.CreateSqlStatement();

            stmt.AppendString("update SpeedInfo set ");
            stmt.AppendString("GroupID=");
            stmt.AppendParameter(_session.MakeInParameter("GroupID", dao.GroupID, SqlDbType.UniqueIdentifier));
            stmt.AppendString(",Category=");
            stmt.AppendParameter(_session.MakeInParameter("Category", dao.Category, SqlDbType.Int));
            stmt.AppendString(",Speed=");
            stmt.AppendParameter(_session.MakeInParameter("Speed", dao.Speed, SqlDbType.Int));
            stmt.AppendString(",Length=");
            stmt.AppendParameter(_session.MakeInParameter("Length", dao.Length, SqlDbType.Int));
            stmt.AppendString(",EndMileage=");
            stmt.AppendParameter(_session.MakeInParameter("EndMileage", dao.EndMileage, SqlDbType.NVarChar));
            stmt.AppendString(",Remark=");
            stmt.AppendParameter(_session.MakeInParameter("Remark", dao.Remark, SqlDbType.NVarChar));
            stmt.AppendString(" where ");
            stmt.AppendString("ID=");
            stmt.AppendParameter(_session.MakeInParameter("ID", dao.ID, SqlDbType.Int));
            stmt.StatementType = SqlStatementType.Update;
            return(_session.Excecute(stmt).RowsAffected > 0);
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 新增线路速度表
        /// </summary>
        /// <param name="dao">数据对象</param>
        /// <returns>成功/失败</returns>
        public bool Insert(SpeedInfo dao)
        {
            bool ret = false;

            try
            {
                Session.Open();
                Session.BeginTransaction();
                ret = _dal.Insert(dao);
                Session.CommitTransaction();
            }
            catch (Exception err)
            {
                ret = false;
                Log.Error(dao, err);
                Session.RollBackTransaction();
            }
            finally
            {
                Session.Close();
            }
            return(ret);
        }
Ejemplo n.º 17
0
        public void update(TimeSpan time)
        {
            if (time.TotalSeconds <= 0)
            {
                return;
            }

            int index = -1;

            for (int i = 0; i < rects.Length; i++)
            {
                if (rects[i].Contains(new Point((int)Position.X, (int)Position.Y)))
                {
                    index = i;
                    break;
                }
            }

            if (index != currentSector)
            {
                int val = toFinish.Pop();
                if (currentSector == val)
                {
                    if (toFinish.Count == 1)
                    {
                        int val2 = toFinish.Pop();
                        if (val2 == index)
                        {
                            if (lapTime != null)
                            {
                                lastLapTime = DateTime.Now - lapTime;
                                if (bestLapTime == null || lastLapTime < bestLapTime)
                                {
                                    bestLapTime = lastLapTime;
                                }
                            }

                            lapTime = DateTime.Now;

                            toFinish.Push(0);
                            toFinish.Push(3);
                            toFinish.Push(2);
                            toFinish.Push(1);
                            toFinish.Push(0);
                        }
                        else
                        {
                            toFinish.Push(val2);
                        }
                    }
                }
                else
                {
                    toFinish.Push(val);
                    toFinish.Push(index);
                }

                currentSector = index;
            }

            SpeedInfo speedInfo = getSpeed();

            // rzeczywiste odchylenie kol od srodka
            float realSteer = inputState.steer * maxSteer;

            realSteer *= -0.9f * speedInfo.speed.Length() / maxForwardSpeed + 1;

            if (inputState.acceleration > 0 || inputState.breakVal > 0)
            {
                // jedzie do przodu
                if (speedInfo.angleCos >= 0)
                {
                    float mul = (float)time.TotalSeconds * acceleration * inputState.acceleration;
                    mul             -= (float)time.TotalSeconds * breaking * inputState.breakVal;
                    speedInfo.speed += speedInfo.direction * mul;
                    if (speedInfo.speed.Length() > maxForwardSpeed)
                    {
                        speedInfo.speed = speedInfo.direction * maxForwardSpeed;
                    }
                }
                // jedzie do tylu
                else if (speedInfo.angleCos < 0)
                {
                    float mul = (float)time.TotalSeconds * breaking * inputState.acceleration;
                    mul             -= (float)time.TotalSeconds * acceleration * inputState.breakVal;
                    speedInfo.speed += speedInfo.direction * mul;
                    if (speedInfo.speed.Length() > maxBackwardSpeed)
                    {
                        speedInfo.speed *= maxBackwardSpeed / speedInfo.speed.Length();
                    }
                }
            }
            else if (speedInfo.speed.Length() > minVelocity)
            {
                int sign = getLinearVelocitySign(speedInfo.speed, speedInfo.direction);
                speedInfo.speed -= sign * speedInfo.direction * (float)time.TotalSeconds * dragBreaking;
                if (getLinearVelocitySign(speedInfo.speed, speedInfo.direction) != sign)
                {
                    speedInfo.speed = Vector2.Zero;
                }
            }
            else
            {
                speedInfo.speed = Vector2.Zero;
            }

            int linearVelocitySign = getLinearVelocitySign(speedInfo.speed, speedInfo.direction);

            // odleglosc, jaka przebedzie samochod
            Vector2 distance = speedInfo.speed * (float)time.TotalSeconds;

            // droga przebyta przez samochod w linii prostej
            float linearDistance = distance.Length();
            // obrot samochodu
            float angularVelocity = 0;

            if (realSteer != 0)
            {
                // odleglosc srodka tylnej osi od srodka okregu
                float r1 = d / (float)Math.Tan(realSteer);

                // odleglosc srodka samochodu od srodka okregu
                float r = (float)Math.Sqrt(r1 * r1 + d * d / 4);

                // kat okregu, ktory przejedzie samochod
                // linearVelocity == distance.Length()
                angularVelocity = linearVelocitySign * Math.Sign(realSteer) * (linearDistance / r);

                linearDistance = r * r * (2 - (float)Math.Cos(angularVelocity));
            }

            if (speedInfo.sideSpeed.Length() > minSideVelocity)
            {
                Vector2 sideDirection = speedInfo.sideSpeed;
                sideDirection.Normalize();
                speedInfo.sideSpeed -= sideDirection * (float)time.TotalSeconds * sideBreaking;
            }
            else
            {
                speedInfo.sideSpeed = Vector2.Zero;
            }

            AngularVelocity = angularVelocity / (float)time.TotalSeconds;
            LinearVelocity  = linearVelocitySign * getVelocityVect(speedInfo.speed.Length(), Rotation + angularVelocity) + speedInfo.sideSpeed;
        }
Ejemplo n.º 18
0
        public static IEnumerable <SpeedInfo> GetMedianFilteredSpeeds(GpxPointCollection points,
                                                                      int sampleCount, int jump, TimeSpan?maxTimeSpan = null,
                                                                      double min = double.MinValue, double max = double.MaxValue
                                                                      )
        {
            var filterResult = Filter.MedianValueFilter(GetSpeeds(points), p => p.Speed, sampleCount, jump);

            //List<SpeedInfo> speeds = new List<SpeedInfo>();
            foreach (var item in filterResult)
            {
                if (item.SelectedItem.Speed > max || item.SelectedItem.Speed < min)
                {
                    continue;
                }
                var maxTime = item.ReferenceItems.First().CenterTime;
                var minTime = item.ReferenceItems.Last().CenterTime;
                if (maxTimeSpan.HasValue && maxTime - minTime > maxTimeSpan)
                {
                    continue;
                }
                SpeedInfo speed = new SpeedInfo(minTime, maxTime, item.SelectedItem.Speed);
                yield return(speed);
            }

            //var sortedPoints = points.TimeOrderedPoints;
            //if (sampleCount > sortedPoints.Count)
            //{
            //    return new SpeedInfo[] { new SpeedInfo(sortedPoints) };
            //}
            //GpxPoint last = null;
            //List<double> distances = new List<double>();
            //foreach (var point in points)
            //{
            //    if (last != null)
            //    {
            //        distances.Add(Calculate.Distance(last, point));
            //    }
            //    last = point;
            //}
            //List<SpeedInfo> speedList = new List<SpeedInfo>();
            //for (int i = sampleCount - 1; i < sortedPoints.Count; i+=jump)
            //{
            //    DateTime minTime = sortedPoints[i - sampleCount + 1].Time;
            //    DateTime maxTime = sortedPoints[i].Time;
            //    double totalDistance = 0;
            //    for (int j = i - sampleCount + 1; j < i; j++)
            //    {
            //        totalDistance += distances[j];
            //    }
            //    double speed = totalDistance / (maxTime - minTime).TotalSeconds;
            //    if(speed<min)
            //    {
            //        continue;
            //    }
            //    if(speed>max)
            //    {
            //        continue;
            //    }
            //    speedList.Add(new SpeedInfo(minTime, maxTime, speed));

            //}
            //return speedList;
        }
Ejemplo n.º 19
0
        /// <summary>
        /// 获取指定的IDataReader中的SpeedInfo
        /// </summary>
        /// <param name="reader">IDataReader对象</param>
        /// <param name="dao">SpeedInfo实体类</param>
        public void DataReaderToEntity(IDataReader reader, SpeedInfo dao)
        {
            object data;

            data = reader["ID"];
            if (data == null || data == DBNull.Value)
            {
                dao.ID = int.MinValue;
            }
            else
            {
                dao.ID = int.Parse(data.ToString());
            }
            data = reader["GroupID"];
            if (data == null || data == DBNull.Value)
            {
                dao.GroupID = Guid.NewGuid();
            }
            else
            {
                dao.GroupID = Guid.Parse(data.ToString());
            }
            data = reader["Category"];
            if (data == null || data == DBNull.Value)
            {
                dao.Category = int.MinValue;
            }
            else
            {
                dao.Category = int.Parse(data.ToString());
            }
            data = reader["Speed"];
            if (data == null || data == DBNull.Value)
            {
                dao.Speed = int.MinValue;
            }
            else
            {
                dao.Speed = int.Parse(data.ToString());
            }
            data = reader["Length"];
            if (data == null || data == DBNull.Value)
            {
                dao.Length = int.MinValue;
            }
            else
            {
                dao.Length = int.Parse(data.ToString());
            }
            data = reader["EndMileage"];
            if (data == null || data == DBNull.Value)
            {
                dao.EndMileage = null;
            }
            else
            {
                dao.EndMileage = data.ToString();
            }
            data = reader["Remark"];
            if (data == null || data == DBNull.Value)
            {
                dao.Remark = null;
            }
            else
            {
                dao.Remark = data.ToString();
            }
        }
Ejemplo n.º 20
0
        static void Main(string[] args)
        {
            uint       curpos = 0;
            uint       setpos = 0;
            SpeedInfo  spd    = null;
            SerialPort myPort = new SerialPort();

            byte[] cmd = null;

            myPort.PortName = "COM7";
            myPort.BaudRate = 9600;
            myPort.Open();
            //myPort.DataReceived += myPort_DataReceived;
            Console.WriteLine("连接完成");



            Console.WriteLine("设置 EQ ");
            myPort.Write(LinShengStepMotor.cmd_reset_main, 0, LinShengStepMotor.cmd_reset_eq.Length);



            spd = getCurrentSpeed(myPort);

            curpos = getCurPos(myPort);
            setpos = getSetPos(myPort);
            if (curpos != 0)
            {
                moveAndWaitStep(false, curpos, myPort);
            }
            Console.WriteLine("即时运行位置:" + curpos + " 设定运行位置:" + setpos + " 速度倍数:" + spd.level + " 速度单位毫秒:" + spd.speed);

            uint myspeed = 4000;

            if (spd.speed != myspeed)
            {
                Console.WriteLine("修改速度: " + myspeed);
                cmd = LinShengStepMotor.cmd_set_speed_ex(0, (ushort)(myspeed));
                myPort.Write(cmd, 0, cmd.Length);
                Thread.Sleep(1000);
            }
            //spd = getCurrentSpeed(myPort);
            //curpos = getCurPos(myPort);
            //setpos = getSetPos(myPort);
            //Console.WriteLine("即时运行位置:" + curpos + " 设定运行位置:" + setpos + " 速度倍数:" + spd.level + " 速度单位毫秒:" + spd.speed);

            Console.WriteLine("转轴位置累加 4096 ");


            moveAndWaitStep(true, 5500, myPort);



            //     Console.WriteLine("转轴位置累减 4096 ");
            //     moveAndWaitStep(false, 4096, myPort);



            Console.ReadLine();
            myPort.Close();
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Sets the recording device to use in this session
        /// </summary>
        public static void setRecordingDrive()
        {
            Program.drive_selector.Logger = Program.logger;
            Program.drive_selector.InitializeDeviceList(false);

            if (Program.drive != null)
            {
                Program.drive.Dispose();
                Program.drive = null;
            }

            if (Program.device != null)
            {
                Program.device.Dispose();
                Program.device = null;
            }

            string dname = (string)Program.drive_selector.SelectedItem;
            Program.device = new Device(Program.logger);
            
            if (!Program.device.Open(dname[0]))
            {
                Program.device = null;
                return;
            }

            Program.drive = new Drive(Program.device);
            DiskOperationError status = Program.drive.Initialize();
            if (status != null)
            {
                Program.drive.Dispose();
                Program.device.Dispose();
                Program.device = null;
                Program.drive = null;
                return;
            }

            SpeedInfo[] speeds;
            if (Program.drive.GetWriteSpeeds(out speeds) == null && speeds.GetLength(0) != 0)
                Program.burn_speed = speeds[0];
            else
                Program.burn_speed = null;
        }