public void ReceivedPacket(Object sender, RecievedData data)
 {
     try {
         if (data.Data.Length == 18)
         {
             Byte[] decoded = this.DecodeData(data.Data);
             Byte   crc     = this.SHA256Calc(decoded[0..17])[0];
    public IEnumerator DownMoney(System.Action <string> callback)
    {
        //set content
        WWWForm form = new WWWForm();

        form.AddField("user", "rabbit");

        //set headers
        Dictionary <string, string> headers = form.headers;

        headers["Cookie"] = cookie;

        //Send post
        WWW www = new WWW(disURL + "down_money.php", form.data, headers);

        yield return(www);

        if (www.error != null)
        {
            Debug.Log(www.error);
            callback(www.error);
        }
        else
        {
            RecievedData tempData = JsonUtility.FromJson <RecievedData>(www.text);
            Debug.Log("DownMoney Success with money = " + tempData.money);
            callback("success");
        }
    }
Exemple #3
0
        protected void SetLoraData(RecievedData e, TrackerUpdateEvent tracker)
        {
            if (e is Ic880aRecievedObj)
            {
                Ic880aRecievedObj ic = e as Ic880aRecievedObj;
                tracker.Bandwidth         = ic.Bandwidth;
                tracker.Calculatedcrc     = ic.Calculatedcrc;
                tracker.Codingrate        = ic.CodingRate;
                tracker.Crcstatus         = ic.CrcStatus;
                tracker.Frequency         = ic.Frequency;
                tracker.Recieverinterface = ic.Interface;
                //tracker.Modulation = ic.Modulation;
                tracker.Recieverradio   = ic.Radio;
                tracker.Snrmax          = ic.SnrMax;
                tracker.Snrmin          = ic.SnrMin;
                tracker.Spreadingfactor = ic.Spreadingfactor;
                tracker.Time            = ic.Time;
            }
            if (e is DragionoRecievedObj)
            {
                DragionoRecievedObj dragino = e as DragionoRecievedObj;
                tracker.Freqerror = dragino.FreqError;
                tracker.Crcstatus = e.Crc ? "Ok" : "Bad";
            }
            tracker.Rssi = e.Rssi;
            tracker.Snr  = e.Snr;

            tracker.Receivedtime = e.RecievedTime;
        }
        /// <summary>
        /// Do not use, for interfacing with Water Mod
        /// </summary>
        private void ModHandler(object data)
        {
            if (data == null)
            {
                return;
            }

            if (data is byte[])
            {
                Waters = MyAPIGateway.Utilities.SerializeFromBinary <List <Water> >((byte[])data);

                if (Waters == null)
                {
                    Waters = new List <Water>();
                }
                else
                {
                    foreach (var water in Waters)
                    {
                        MyEntity entity = MyEntities.GetEntityById(water.planetID);

                        if (entity != null)
                        {
                            water.planet = MyEntities.GetEntityById(water.planetID) as MyPlanet;
                        }
                    }
                }

                int count = Waters.Count;
                RecievedData?.Invoke();

                if (count > Waters.Count)
                {
                    WaterCreatedEvent?.Invoke();
                }
                if (count < Waters.Count)
                {
                    WaterRemovedEvent?.Invoke();
                }
            }

            if (!Registered)
            {
                Registered = true;
                OnRegisteredEvent?.Invoke();
            }

            if (data is int && (int)data != ModAPIVersion)
            {
                MyLog.Default.WriteLine("Water API V" + ModAPIVersion + " for " + ModName + " is outdated, expected V" + (int)data);
                MyAPIGateway.Utilities.ShowMessage(ModName, "Water API V" + ModAPIVersion + " is outdated, expected V" + (int)data);
            }
        }
Exemple #5
0
        private void SetSourceData(RecievedData value)
        {
            var setting = new Properties.Settings();

            switch (value)
            {
            case RecievedData.Confirmed: _adressSourceData = setting.URI_CV19_Confirmed; break;

            case RecievedData.Recovered: _adressSourceData = setting.URI_CV19_Recovered; break;

            case RecievedData.Death: _adressSourceData = setting.URI_CV19_Death; break;
            }
        }
        public static string GetName(this RecievedData source)
        {
            switch (source)
            {
            case RecievedData.ScaleIndicator:
                return("ScaleIndicator");

            case RecievedData.ScannerJobAndSuffix:
                return("ScannerJobAndSuffix");

            case RecievedData.ScannerOperation:
                return("ScannerOperation");

            case RecievedData.None:
                return("None");

            default:
                return("Undefined");
            }
        }
Exemple #7
0
        private async void ListenForData()
        {
            byte[] buffer = new byte[256];

            while (client.Connected)
            {
                int nBytesRead = await stream.ReadAsync(buffer);

                int available = client.Available;

                byte[] data = new byte[available + nBytesRead];
                Array.Copy(buffer, data, nBytesRead);
                if (stream.DataAvailable)
                {
                    _ = await stream.ReadAsync(data, nBytesRead, available);
                }
                byte[] decryptedData = DecryptByte(data, _Key);
                RecievedData?.Invoke(this, decryptedData);
            }
        }
Exemple #8
0
        public IEnumerable <CountryInfo> GetData(RecievedData value)
        {
            SetSourceData(value);

            var dates = GetDates();

            var data_countries = GetCountriesData().GroupBy(i => i.Country);

            foreach (var item in data_countries)
            {
                CountryInfo resultItem = new CountryInfo();
                resultItem.Name          = item.Key;
                resultItem.ProvinceCount = item.Select(i =>
                                                       new ProvinceInfo()
                {
                    Name     = i.Province,
                    Location = i.Location,
                    Counts   = i.Counts.Zip(dates, (count, date) => new ConfirmedCount(date, count))
                });
                yield return(resultItem);
            }
        }
Exemple #9
0
 private void PacketReceived(Object sender, RecievedData e) => this.Received?.Invoke(sender, e);
 public BinaryPacket(String name, LoraParser.Typ typ, Single lat, Single lon, Double hdop, Double height, Double battery, UInt16 counter, Boolean has_time, Boolean has_date, Boolean has_fix, Byte sat, Boolean correct_if, String hash, RecievedData recieveddata)
 {
     this.TransferData = new LocationUpdateEvent(typ)
     {
         Name             = name,
         BatteryLevel     = battery,
         Counter          = counter,
         CorrectInterface = correct_if,
         Hash             = hash,
         Gps = new GpsUpdateEvent()
         {
             Latitude  = lat,
             Longitude = lon,
             Hdop      = hdop,
             Height    = height,
             Fix       = has_fix,
             Satelites = sat,
             HasTime   = has_time,
             HasDate   = has_date
         }
     };
     this.Type = typ;
     this.SetLoraData(recieveddata, this.TransferData);
 }
Exemple #11
0
 public DebugPacket(String text, String name, Int32 version, String ipaddress, String wifissid, Boolean wifiactive, Double batteryLevel, Int32 freqOffset, LoraParser.Status devicestatus, Boolean correct_if, String hash, RecievedData recieveddata)
 {
     this.Text = text;
     if (devicestatus == LoraParser.Status.Unknown)
     {
         this.Type = Typ.Error;
     }
     else
     {
         this.Status = new StatusUpdateEvent()
         {
             Name             = name,
             BatteryLevel     = batteryLevel,
             Version          = version,
             IpAddress        = ipaddress,
             WifiSsid         = wifissid,
             WifiActive       = wifiactive,
             FrequencyOffset  = freqOffset,
             DeviceStatus     = devicestatus.ToString(),
             Hash             = hash,
             CorrectInterface = correct_if
         };
         this.SetLoraData(recieveddata, this.Status);
     }
 }
Exemple #12
0
        //     public System.Timers.Timer t = new System.Timers.Timer(1000);
        public bool Run(int nCommandIndex, string strParamater)
        {
            Debug.WriteLine("run section   nCommandIndex: " + nCommandIndex.ToString() + "  strParamater: " + strParamater);
            //  if (ConnectionCompleted!=null)
            //      ConnectionCompleted();


            if ((strParamater == ""))
            {
                strParamater = "7000;192.168.123.34;com1;10000;70000";
            }

            str = strParamater.Split(';');



            int API_TimeOut_ms = Convert.ToInt32(str[4]) + 10000;

            // 0: port
            // 1: ip
            // 2: usb port
            // 3: price
            // 4: timeout  (ms)

            int nCommandIndex_Provider = nCommandIndex / 100;
            int temp = nCommandIndex % 100;
            int nCommandIndex_TransMode = temp / 10;

            temp = temp % 10;
            int nCommandIndex_ConType = temp;



            if (PEP_Pos != null)
            {
                PEP_Pos.Dispose();
            }

            // t.Elapsed += T_Elapsed;

            try
            {
                switch (nCommandIndex_Provider)
                {
                case 11:    //pep

                    switch (nCommandIndex_TransMode)
                    {
                    case 1:            //async
                        switch (nCommandIndex_ConType)
                        {
                        case 1:                //lan (sync)

                            PEP_Pos = new PcPosClassLibrary.PCPOS(Convert.ToInt32(str[0]), str[1]);
                            PEP_Pos.SetLanReceiveTimeout(Convert.ToInt32(Convert.ToInt32(str[4]) / 1000));
                            if (Convert.ToInt32(POS_Count) > 1)
                            {
                                semSepehr.Release();                                                 //release Sepehr semaphore
                            }
                            CallWithTimeout(() => PEP_RD = PEP_Pos.SyncSale(Convert.ToInt32(str[3])), API_TimeOut_ms);
                            semRecieveMessage.WaitOne();                 //every thread recieved data block  others
                            //CallWithTimeout(() => RD = pos.SyncSale(Convert.ToInt32(str[3])),Convert.ToInt32( str[4])); // causing incomplete session in  sync operation
                            RefNo = PEP_RD.ReferenceNumber;
                            Err   = PEP_RD.ErrorCode.ToString();
                            break;

                        case 2:                     //usb
                            PEP_Pos = new PcPosClassLibrary.PCPOS(str[2]);
                            //  t.AutoReset = true;
                            //  t.Enabled = true;
                            PEP_Pos.DataRecieved += new PcPosClassLibrary.DataRecievedEventHandler(this.Pep_pos_DataReceived);
                            if (Convert.ToInt32(POS_Count) > 1)
                            {
                                semSepehr.Release();                                                 //release Sepehr semaphore
                            }
                            PEP_Pos.Sale(Convert.ToInt32(str[3]));
                            a.WaitOne();
                            //  t.Stop();
                            break;
                        }
                        break;

                    case 2:             //sync
                        switch (nCommandIndex_ConType)
                        {
                        case 1:                //lan
                            Debug.WriteLine("pep : " + nCommandIndex.ToString() + " : " + strParamater);
                            string str1 = "";
                            for (int i = 0; i < 5; i++)
                            {
                                str1 += str[i];
                            }
                            Debug.WriteLine("pep : " + str1);

                            PEP_Pos = new PcPosClassLibrary.PCPOS(Convert.ToInt32(str[0]), str[1]);
                            PEP_Pos.SetLanReceiveTimeout(Convert.ToInt32(Convert.ToInt32(str[4]) / 1000));
                            if (Convert.ToInt32(POS_Count) > 1)
                            {
                                semSepehr.Release();                                                 //release Sepehr semaphore
                            }
                            CallWithTimeout(() => PEP_RD = PEP_Pos.SyncSale(Convert.ToInt32(str[3])), API_TimeOut_ms);
                            semRecieveMessage.WaitOne();                 //every thread recieved data blocked  others
                            Debug.WriteLine("------------- semRecieveMessage  waitOne ");
                            //CallWithTimeout(() => RD = pos.SyncSale(Convert.ToInt32(str[3])),Convert.ToInt32( str[4])); // causing incomplete session in  sync operation
                            RefNo = PEP_RD.ReferenceNumber;
                            Err   = PEP_RD.ErrorCode.ToString();
                            break;

                        case 2:                 //usb
                            PEP_Pos = new PcPosClassLibrary.PCPOS(str[2]);
                            PEP_Pos.SetLanReceiveTimeout(Convert.ToInt32(Convert.ToInt32(str[4]) / 1000));
                            semSepehr.Release();                 //release Sepehr semaphore
                            CallWithTimeout(() => PEP_RD = PEP_Pos.SyncSale(Convert.ToInt32(str[3])), API_TimeOut_ms);
                            semRecieveMessage.WaitOne();         //every thread recieved data block  others
                            //CallWithTimeout(() => RD = pos.SyncSale(Convert.ToInt32(str[3])),Convert.ToInt32( str[4])); // causing incomplete session in  sync operation
                            RefNo = PEP_RD.ReferenceNumber;
                            Err   = PEP_RD.ErrorCode.ToString();
                            break;
                        }

                        break;
                    }
                    break;


                case 12:     //sepehr

                    switch (nCommandIndex_TransMode)
                    {
                    case 1:            //async
                        switch (nCommandIndex_ConType)
                        {
                        case 1:                //lan (sync)
                            return(false);

                        case 2:                 //usb
                            return(false);
                        }
                        break;

                    case 2:             //sync
                        switch (nCommandIndex_ConType)
                        {
                        case 1:                //lan
                            Debug.WriteLine("sepehr  : " + nCommandIndex.ToString() + " : " + strParamater);
                            string str1 = "";
                            for (int i = 0; i < 5; i++)
                            {
                                str1 += str[i];
                            }
                            Debug.WriteLine("sepehr  : " + str1);

                            clsCommunication clsCommunicationObj = new clsCommunication();
                            clsCommunicationObj.ConnType  = (int)clsCommunication.connectionType.ETHERNET;
                            clsCommunicationObj.IPAddress = str[1];
                            clsCommunicationObj.IPPort    = Convert.ToInt32(str[0]);
                            clsCommunicationObj.TimeOut   = Convert.ToInt32(Convert.ToInt32(str[4]) / 1000);               // force 20 sec
                            Sepehr_transaction            = new clsMessage();
                            Sepehr_req.msgTyp             = clsMessage.msgType.Sale;
                            Sepehr_req.terminalID         = "";
                            Sepehr_req.amount             = str[3];
                            Sepehr_transaction.request    = Sepehr_req;

                            if (Convert.ToInt32(POS_Count) > 1)
                            {
                                semSepehr.WaitOne();                   // wait until others begin
                            }
                            int SendretCode = Sepehr_transaction.SendMessage(0);
                            if (SendretCode != 0)
                            {
                                Err = (100).ToString();
                                semRecieveMessage.WaitOne();
                                Debug.WriteLine("------------- semRecieveMessage  waitOne ");
                                goto end;
                            }             // not send
                            int RecieveretCode = 0;
                            CallWithTimeout(() => RecieveretCode = Sepehr_transaction.ReceiveMessage(0), API_TimeOut_ms);
                            semRecieveMessage.WaitOne();                 //every thread recieved data block  others
                            Debug.WriteLine("------------- semRecieveMessage  waitOne ");
                            if (RecieveretCode != 0)
                            {
                                Err = (RecieveretCode + 110).ToString(); goto end;
                            }                   //not recieved  //  110-1 : 109 : not recived  //  110-5:105 : timeout // else : Message MAC Error
                            string POSErrCode = Sepehr_transaction.response.AppResponseCode;
                            if (Sepehr_transaction.response.AppResponseCode != "00")
                            {
                                Err = (Convert.ToInt32(POSErrCode) + 200).ToString(); goto end;
                            }                                                                                                                            //POS Err code:  +200

                            RefNo = Sepehr_transaction.response.SystemTraceNumber == "000000000000" ? "0":Sepehr_transaction.response.SystemTraceNumber; // 000000000000 -> 0

                            break;

                        case 2:                 //usb

                            break;
                        }

                        break;
                    }
                    break;
                }
end:
                Debug.WriteLine("Error:" + Err + "\n RefNo:" + RefNo);
            }
            catch (Exception ex)
            {
                if (ex.Message == "The operation has timed out.") //handle  Exception  (CallWithTimeout)
                {
                    if (nCommandIndex_Provider == 11)             //PEP
                    {
                        Err = "132";
                    }
                    else if (nCommandIndex_Provider == 12) //Sepehr
                    {
                        Err = "105";
                    }
                }
                Debug.WriteLine("Run Api Func Exception:" + ex.ToString() + "\n API_TimeOut_ms: " + API_TimeOut_ms);

                if (PEP_Pos != null)
                {
                    PEP_Pos.cancelTrans();
                }
                return(false);
            }

            return(true);
        }