| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using MECF.Framework.Simulator.Core.Driver;namespace MECF.Framework.Simulator.Core.Robots{    public class YaskawaNX100RobotSimulator : YaskawaNX100ControllerSimulator    {        public YaskawaNX100RobotSimulator()            : base(10110)        {        }        //$ <UNo> (<SeqNo>) MMAP<TrsSt> <SlotNo> <Sum> <CR>  //$,<UNo>(,<SeqNo>),<Sts>,<Ackcd>,MTRS,<Mtn>,<TrsSt>,<Slot>,<Posture>,<Hand>,<TrsPnt>(,<OfstX>,<OfstY>,<OfstZ>)(,<Angle>)(,<Sum>)<CR>        //$ <UNo> (<SeqNo>) <StsN> <Ackcd> 01 <Result> 02 <Result> … XX <Result> <Sum> <CR>        public override void HandleRMAP(string msg)        {            Random rd = new Random();            string unit = msg.Substring(1, 1);            string seq = msg.Substring(2, 2);             string cmd = msg.Substring(4, 4);             string trs = msg.Substring(8, 2);             string slot = msg.Substring(10, 2);            string sts = 0.ToString("X02");            string Ackcd = 0.ToString("X04");            string error = 0.ToString("X04");            //bool random = false;            bool full = trs == "C1" || trs == "C2";            //string mapData = GetMapData(random, full);            bool pre = trs == "C1" || trs == "C2";            bool mid = trs == "C3" || trs == "C4";            bool post = trs == "C5" || trs == "C6";            string mapData = GetMapData(pre, mid, post);            string feedback = string.Format(",{0},{1},{2},{3},{4},", unit, seq, sts, Ackcd,  mapData).Replace(",","").Replace(":", "");            string sum = CheckSum(feedback);            string result = String.Format("{0}{1}{2}","$", feedback, sum);            OnWriteMessage(result);        }      }}
 |