Beispiel #1
0
        public static byte[] GetBitsfromArray(List <bool> answers)
        {
            byte[] bytearray = new byte[1];
            var    bitArray  = new System.Collections.BitArray(bytearray);

            var index = 0;

            foreach (var answer in answers)
            {
                if (answer == true)
                {
                    bitArray.Set(index, true);
                }
                else
                {
                    bitArray.Set(index, false);
                }
                index++;
            }
            bitArray.Set(6, false);
            bitArray.Set(7, false);
            bitArray.CopyTo(bytearray, 0);

            return(bytearray);
        }
Beispiel #2
0
        public static byte[] GetBitsFromString(string answer)
        {
            byte[] bytearray = new byte[1];
            var    bitArray  = new System.Collections.BitArray(bytearray);

            var index = 0;

            foreach (char c in answer)
            {
                if (c == '1')
                {
                    bitArray.Set(index, true);
                }
                else
                {
                    bitArray.Set(index, false);
                }
                index++;
            }
            bitArray.Set(6, false);
            bitArray.Set(7, false);
            bitArray.CopyTo(bytearray, 0);

            return(bytearray);
        }
Beispiel #3
0
        static ulong ToUInt64(this BitArray bitArray)
        {
            var array = new byte[8];

            bitArray.CopyTo(array, 0);
            return(BitConverter.ToUInt64(array, 0));
        }
Beispiel #4
0
 private byte[] L(byte[] state)
 {
     byte[] result = new byte[64];
     for (int i = 0; i < 8; i++)
     {
         ulong  t         = 0;
         byte[] tempArray = new byte[8];
         Array.Copy(state, i * 8, tempArray, 0, 8);
         tempArray = tempArray.Reverse().ToArray();
         System.Collections.BitArray tempBits1 = new System.Collections.BitArray(tempArray);
         bool[] tempBits = new bool[64];
         tempBits1.CopyTo(tempBits, 0);
         tempBits = tempBits.Reverse().ToArray();
         for (int j = 0; j < 64; j++)
         {
             if (tempBits[j] != false)
             {
                 t = t ^ A[j];
             }
         }
         byte[] ResPart = BitConverter.GetBytes(t).Reverse().ToArray();
         Array.Copy(ResPart, 0, result, i * 8, 8);
     }
     return(result);
 }
Beispiel #5
0
        private string ReadFromWriteResult(Domain.Writers.Dtos.MessageWriteResult writeResult)
        {
            string resultMessage           = null;
            ushort byteThresholdBitCounter = 0;

            var bitArray = new System.Collections.BitArray(8);
            var messageRetrievedFromResultBuffer = new System.Collections.Generic.List <byte>();

            for (int byteIndex = 0; byteIndex < writeResult.TotalNumberOfBytesUsed; byteIndex++)
            {
                var currentByte = writeResult.Buffer[byteIndex];

                for (ushort bitInBytePositionCounter = 0; bitInBytePositionCounter < writeResult.NumberOfBitsUsedInByte; bitInBytePositionCounter++)
                {
                    var bit = ((currentByte & (1 << bitInBytePositionCounter)) != 0);
                    bitArray.Set(byteThresholdBitCounter, bit);
                    byteThresholdBitCounter++;

                    if (byteThresholdBitCounter == 8)
                    {
                        var byteStorage = new byte[1];
                        bitArray.CopyTo(byteStorage, 0);
                        messageRetrievedFromResultBuffer.Add(byteStorage[0]);
                        bitArray.SetAll(false);
                        byteThresholdBitCounter = 0;
                    }
                }
            }

            resultMessage = System.Text.Encoding.UTF8.GetString(messageRetrievedFromResultBuffer.ToArray());

            return(resultMessage);
        }
 /// <summary>
 /// Convert Byte Array To Bool Array
 /// </summary>
 /// <param name="bytes"></param>
 /// <returns></returns>
 public static bool[] ConvertByteArrayToBoolArray(byte[] bytes)
 {
     System.Collections.BitArray b = new System.Collections.BitArray(bytes);
     bool[] bitValues = new bool[b.Count];
     b.CopyTo(bitValues, 0);
     Array.Reverse(bitValues);
     return(bitValues);
 }
Beispiel #7
0
        private static byte[] ToBits(int value)
        {
            System.Collections.BitArray b = new System.Collections.BitArray(new int[] { value });

            bool[] bits = new bool[b.Count];
            b.CopyTo(bits, 0);
            byte[] bitValues = System.Linq.Enumerable.ToArray(System.Linq.Enumerable.Select(bits, bit => (byte)(bit ? 1 : 0)));
            return(bitValues);
        }
 private void WriteBitmapInfo()
 {
     byte[] buffer = new byte[(completedChunks.Length / 8) + (completedChunks.Length % 8 > 0 ? 1 : 0)];
     completedChunks.CopyTo(buffer, 0);
     stream.SetLength(targetSize + BITMAP_MARKER.Length + buffer.Length);
     stream.Seek(-(BITMAP_MARKER.Length + buffer.Length), SeekOrigin.End);
     stream.Write(BITMAP_MARKER, 0, BITMAP_MARKER.Length);
     stream.Write(buffer, 0, buffer.Length);
 }
Beispiel #9
0
        private UInt16 getUInt16FromBitArray(System.Collections.BitArray bitArray)
        {
            if (bitArray.Length > 16)
            {
                throw new ArgumentException("Argument length shall be at most 32 bits.");
            }

            int[] array = new int[1];
            bitArray.CopyTo(array, 0);
            return((UInt16)array[0]);
        }
Beispiel #10
0
            /// <summary>
            /// Creates an object to hold a particular TableEntry.
            /// </summary>
            /// <param name="bytes">The bytes from which to make the TableEntry.</param>
            public TableEntry(byte[] bytes)
            {
                System.Collections.BitArray ba = new System.Collections.BitArray(bytes);
                Compressed = ba.Get(31);
                ba.Set(31, false);

                byte[] temp = new byte[4];
                ba.CopyTo(temp, 0);

                Offset = BitConverter.ToInt32(temp, 0);
            }
Beispiel #11
0
        public static void Guild_ListPlayersInfo(List <Global.guild_player> guildMembers, PacketWriter Writer)
        {
            Writer.Byte(guildMembers.Count);
            foreach (Global.guild_player m in guildMembers)
            {
                Writer.DWord(m.MemberID);
                Writer.Text(m.Name);
                Writer.Byte(m.Rank);
                Writer.Byte(m.Level);
                Writer.DWord(m.DonateGP);

                System.Collections.BitArray bits = new System.Collections.BitArray(new bool[]
                {
                    m.noticeeditRight,
                    m.guildstorageRight,
                    m.unionRight,
                    m.withdrawRight,
                    m.joinRight,
                    false, false, false
                });
                byte[] bytes = new byte[1];
                bits.CopyTo(bytes, 0);

                Writer.DWord((int)bytes[0]);
                Writer.DWord(0);
                Writer.DWord(0);
                Writer.DWord(0);
                if (m.GrantName != null)
                {
                    if (m.GrantName != "")
                    {
                        Writer.Text(m.GrantName);
                    }
                    else
                    {
                        Writer.Word(0);
                    }
                }
                else
                {
                    Writer.Word(0);
                }

                Writer.DWord(m.Model);
                Writer.Byte(m.FWrank);

                Writer.Byte(m.Xsector);
                Writer.Byte(m.Ysector);
                Writer.DWord(0xFFFFFFFF); // when he entered last time 25794314
                Writer.DWord(0x0189EECA); // when he leveled up last time 25816778 later :P
                Writer.Bool(!m.Online);
            }
        }
Beispiel #12
0
        private static byte[] EncryptSafe(byte[] bytes, int key)
        {
            Random rand = new Random(key);

            byte[] k = new byte[bytes.Length];
            rand.NextBytes(k);
            System.Collections.BitArray arr = new System.Collections.BitArray(bytes);
            arr.Xor(new System.Collections.BitArray(k));
            arr.CopyTo(k, 0);

            return(k);
        }
Beispiel #13
0
 /// <summary>將布林值陣列轉成32位元整數</summary>
 /// <param name="source">布林值陣列</param>
 /// <returns></returns>
 public static int ToInt32(this bool[] source)
 {
     if (source.Length > 32)
     {
         throw new ArgumentOutOfRangeException();
     }
     bool[] tmp = new bool[source.Length];
     Array.Copy(source, tmp, tmp.Length);
     Array.Reverse(tmp);
     System.Collections.BitArray ba = new System.Collections.BitArray(tmp);
     int[] res = new int[1];
     ba.CopyTo(res, 0);
     return(res[0]);
 }
Beispiel #14
0
 static void Main(string[] args)
 {
     System.Collections.BitArray bits = new System.Collections.BitArray(900);
     // Setting all bits to 0
     bits.SetAll(false);
     // Here Im setting 21st bit in array
     bits[21] = true;
     // etc...
     int[] nativeBits = new int[29];
     // Packing your bits in int array
     bits.CopyTo(nativeBits, 0);
     // This prints 2097152. this is 2^21
     Console.WriteLine("First element is:" + nativeBits[0].ToString());
 }
Beispiel #15
0
        private void button_update_Click(object sender, EventArgs e)
        {
            System.Collections.BitArray bl, re, gr;
            bl = new System.Collections.BitArray(bitsfield.Count / 3);
            re = new System.Collections.BitArray(bitsfield.Count / 3);
            gr = new System.Collections.BitArray(bitsfield.Count / 3);
            Byte[] b = new Byte[resol * led_count / 8];
            Byte[] r = new Byte[resol * led_count / 8];
            Byte[] g = new Byte[resol * led_count / 8];
            for (int i = 0; i < bitsfield.Count; i += 24)
            {
                for (int j = 0; j < 8; j++)
                {
                    bl.Set(i / 3 + j, bitsfield.Get(i + (7 - j) * 3));
                    re.Set(i / 3 + j, bitsfield.Get(i + (7 - j) * 3 + 1));
                    gr.Set(i / 3 + j, bitsfield.Get(i + (7 - j) * 3 + 2));
                }
            }
            bl.CopyTo(b, 0);
            re.CopyTo(r, 0);
            gr.CopyTo(g, 0);
            String Bdata = "";
            String Rdata = "";
            String Gdata = "";

            for (int i = 0; i < (resol * led_count / 8); i++)
            {
                Bdata += BitConverter.ToString(b, i, 1);
                Rdata += BitConverter.ToString(r, i, 1);
                Gdata += BitConverter.ToString(g, i, 1);
            }
            String txt = "";
            for (int i = 0; i < (resol * led_count / 4); i += (led_count / 4))
            {
                txt += "0x";
                txt += Bdata.Substring(i, (led_count / 4));
                txt += ", 0x";
                txt += Rdata.Substring(i, (led_count / 4));
                txt += ", 0x";
                txt += Gdata.Substring(i, (led_count / 4));
                txt += ",\r\n";
            }
            this.textBox_data.Text = txt;
        }
Beispiel #16
0
        public static byte[] BitArrayToBytes(System.Collections.BitArray bitarray)
        {
            if (bitarray.Length == 0)
            {
                throw new System.ArgumentException("must have at least length 1", "bitarray");
            }

            int num_bytes = bitarray.Length / 8;

            if (bitarray.Length % 8 != 0)
            {
                num_bytes += 1;
            }

            var bytes = new byte[num_bytes];

            bitarray.CopyTo(bytes, 0);
            return(bytes);
        }
        private byte[] ToAntialiasingData(BitArray antialiasingData)
        {
            Contract.Requires(antialiasingData != null, "Antialiasing data cannot be null.");

            if (antialiasingData.Length == 0)
            {
                return(new byte[0]);
            }

            int alignedLength = BytesPerInt32 * ((antialiasingData.Length - 1) / BitsPerInt32 + 1);

            byte[] data = new byte[alignedLength];
            antialiasingData.CopyTo(data, 0);

            for (int i = 0; i < data.Length; i++)
            {
                data[i] = Helper.ReverseBits(data[i]);
            }

            return(data);
        }
        private void FillGraphemeClusterBoundaries(TinyFont font)
        {
            GlyphMetadataAppendix metadata = font.GetOrAddNewAppendix <GlyphMetadataAppendix>();

            byte[] clusterBoundaries = Resources.GraphemeBreakProperty;

            BitArray data = new BitArray(0);

            foreach (CharacterInfo info in font.EnumerateAllCharacterInfos())
            {
                byte property = FindClusterProperty(clusterBoundaries, info.Codepoint);
                data.AppendLsb(property, 4);
            }

            byte[] setData = new byte[(data.Length + 7) / 8];
            data.CopyTo(setData, 0);

            metadata.Sets.Add(setData);
            GlyphMetadataAppendix.MetadataSetOffset offset = new GlyphMetadataAppendix.MetadataSetOffset();
            offset.Id   = GlyphMetadataAppendix.GraphemeSet;
            offset.Bits = GlyphMetadataAppendix.MetadataSetBitLength.Four;

            metadata.SetsOffsets.Add(offset);
        }
 /// <summary>
 /// Bitarray should be under 32 bits
 /// </summary>
 /// <param name="Array"></param>
 /// <returns></returns>
 public static int ConvertBitarrayToInt(System.Collections.BitArray Array)
 {
     int[] array = new int[1];
     Array.CopyTo(array, 0);
     return(array[0]);
 }
Beispiel #20
0
            /// <summary>
            /// Creates an object to hold a particular TableEntry.
            /// </summary>
            /// <param name="bytes">The bytes from which to make the TableEntry.</param>
            public TableEntry(byte[] bytes)
            {
                System.Collections.BitArray ba = new System.Collections.BitArray(bytes);
                Compressed = ba.Get(31);
                ba.Set(31, false);

                byte[] temp = new byte[4];
                ba.CopyTo(temp, 0);

                Offset = BitConverter.ToInt32(temp, 0);
            }
Beispiel #21
0
 public static void ReverseBitsOrder(byte[] bytes)
 {
     System.Collections.BitArray bits = new System.Collections.BitArray(bytes);
     BUtil.ReverseBitsOrder(bits);
     bits.CopyTo(bytes, 0);
 }
Beispiel #22
0
            public IEnumerable <byte> Encode()
            {
                var allSbs = new List <List <byte> >();
                var curSb  = new List <byte>();

                allSbs.Add(curSb);
                Action <byte> addByte =
                    b =>
                {
                    curSb.Add(b);
                    if (curSb.Count >= int.MaxValue / 2)
                    {
                        var newSb = new List <byte>();
                        allSbs.Add(newSb);
                        curSb = newSb;
                    }
                };
                Action <IEnumerable <byte> > addByteRange =
                    e =>
                {
                    foreach (var b in e)
                    {
                        addByte(b);
                    }
                };

                var methodNameBytes = Encoding.UTF8.GetBytes(MethodName);
                var len             = methodNameBytes.Length;

                if (len > ushort.MaxValue)
                {
                    throw new Exception("Yeah, that shouldn't be possible");
                }
                addByte((byte)((len >> 8) & 0xFF));
                addByte((byte)((len >> 0) & 0xFF));
                addByteRange(methodNameBytes);

                var maxOrdinal = SequencePoints.Max(s => s.Ordinal);

                if (maxOrdinal > ushort.MaxValue)
                {
                    throw new Exception("That's a giant method, wtf");
                }
                addByte((byte)((maxOrdinal >> 8) & 0xFF));
                addByte((byte)((maxOrdinal >> 0) & 0xFF));

                if (SequencePoints.Any(s => s.Visited))
                {
                    var bitMask = new System.Collections.BitArray(maxOrdinal + 1);
                    foreach (var seq in SequencePoints)
                    {
                        if (seq.Visited)
                        {
                            bitMask.Set(seq.Ordinal, true);
                        }
                    }

                    var bitArrayByteCount = ((maxOrdinal + 1) / 8) + ((maxOrdinal + 1) % 8);
                    var bitArrayBytes     = new byte[bitArrayByteCount];
                    bitMask.CopyTo(bitArrayBytes, 0);
                    addByteRange(bitArrayBytes);
                }

                foreach (var set in allSbs)
                {
                    foreach (var b in set)
                    {
                        yield return(b);
                    }
                }
            }
Beispiel #23
0
        void backWorker_DoWork(object sender, System.ComponentModel.DoWorkEventArgs e)
        {
            System.ComponentModel.BackgroundWorker b = sender as System.ComponentModel.BackgroundWorker;
            int samples = 32;

            short[] buffer = new short[samples];
            bw = new BinaryWriter(File.Open(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "/Code.huf", FileMode.Create));

            stream = Bass.BASS_StreamCreateFile(path, 0L, 0L, BASSFlag.BASS_STREAM_DECODE);

            ww = new WaveWriter(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "/HufSound.wav", stream, true);
            int  mult = 0;
            long len  = Bass.BASS_ChannelGetLength(stream, BASSMode.BASS_POS_BYTES);

            while (Bass.BASS_ChannelIsActive(stream) == BASSActive.BASS_ACTIVE_PLAYING)
            {
                int length = Bass.BASS_ChannelGetData(stream, buffer, samples * 2);
                mult++;
                b.ReportProgress((int)(((samples * mult) * 100) / len * 2));
                List <short> listBuffer = new List <short>();
                HuffmanTree  tree       = new HuffmanTree();
                if (length > 0)
                {
                    listBuffer.AddRange(buffer);
                    short[] auxbuf = new short[buffer.Length];
                    auxbuf = buffer;
                    canvasWavComp.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.SystemIdle, new Action(delegate
                    {
                        //Whole Wave
                        //double xScale = canvasWavComp.Width / samples;

                        //Formula by Manuel García. Dude you're amazing.
                        //NOTE: multiply by 2 'cos I supoused some relation with Nyquist Theorem
                        double xScale = (canvasWavComp.Width * samples) / len * 2;

                        double yScale      = (canvasWavComp.Height / (double)(amplitude * 2)) * ((double)amplitude / MAX_AMP);
                        Polyline graphLine = new Polyline();

                        //This Line is used to move on the x axis
                        Canvas.SetLeft(graphLine, xAxis);

                        graphLine.Stroke          = new SolidColorBrush(Color.FromRgb(244, 67, 54));
                        graphLine.StrokeThickness = 2;
                        for (int i = 0; i < buffer.Length; i++)
                        {
                            graphLine.Points.Add(new Point(xScale * i, (canvasWavComp.Height / 2) - (buffer[i] * yScale)));
                        }
                        xAxis += xScale;
                        //canvasWavComp.Children.Clear();
                        canvasWavComp.Children.Add(graphLine);
                    }));
                    double entaux = 0;
                    foreach (var sym in listBuffer.GroupBy(i => i))
                    {
                        NodeHuf nodeHuf = new NodeHuf();
                        nodeHuf.Symbol    = sym.Key;
                        nodeHuf.Frequency = sym.Count();
                        nodeHuf.Right     = nodeHuf.Left = null;
                        tree.Add(nodeHuf);
                        double prob = (double)nodeHuf.Frequency / samples;
                        //entropy -= prob * (Math.Log(prob) / Math.Log(2));
                        entaux   += prob * Math.Log(1 / (prob), 2);
                        entauxlbl = entaux;
                    }
                    entropy += entaux;
                    entcount++;
                    tree.Build();


                    //Encode
                    System.Collections.BitArray encoded = tree.Encode(auxbuf);
                    byte[] arrayBytes = new byte[encoded.Length / 8 + (encoded.Length % 8 == 0 ? 0 : 1)];
                    encoded.CopyTo(arrayBytes, 0);
                    File.WriteAllBytes("Compress.bin", arrayBytes);

                    //Decode
                    byte[] data;
                    Stream fs = File.OpenRead("Compress.bin");
                    data = new byte[fs.Length];
                    fs.Read(data, 0, data.Length);
                    System.Collections.BitArray bitDec = new System.Collections.BitArray(data);

                    short[] decoded = tree.Decode(bitDec);
                    if (decoded.Length > 0)
                    {
                        ww.Write(decoded, length);
                    }
                    bw.Write(data);
                    fs.Close();
                }
            }
            //Delete temporaly file
            File.Delete("Compress.bin");

            //Close de Stream WAV ww
            ww.Close();

            //If you not add this line, the backgroundworker will be restat but when file is create again
            //there will be an incongruence because the bw never was closed.
            bw.Close();

            entropy /= entcount;// (len / samples);
            entcount = 0;
        }
Beispiel #24
0
        private Brush getBrush(int resPos, int ledPos)
        {
            System.Collections.BitArray bite = new System.Collections.BitArray(8);
            byte[] bitref = new byte[1];
            Brush br;

            bite.Set(0, led_bits.Get(48 * resPos + 3 * ledPos));
            bite.Set(1, led_bits.Get(48 * resPos + 3 * ledPos + 1));
            bite.Set(2, led_bits.Get(48 * resPos + 3 * ledPos + 2));
            bite.CopyTo(bitref, 0);
            switch (bitref[0])
            {
                case 1:
                    br = br_blue;
                    break;
                case 2:
                    br = br_red;
                    break;
                case 3:
                    br = br_rb;
                    break;
                case 4:
                    br = br_green;
                    break;
                case 5:
                    br = br_gb;
                    break;
                case 6:
                    br = br_rg;
                    break;
                case 7:
                    br = br_rgb;
                    break;
                default:
                    br = br_black;
                    break;
            }
            return br;
        }
Beispiel #25
0
        void ReadingTask()
        {
            Stream stream=null;
          //  byte[] tempdata;// = new byte[34];
            while (true)
            {

                try
                {
                    if (tcp == null || !tcp.Connected)
                    {
                      //  Comm_state = 0;
                        tcp = new TcpClient();
                        try
                        {
                            Console.WriteLine("Connect to Smr" + IP + ":" + Port);
                            tcp.Connect(IP, Port);
                        }
                        catch (Exception exx)
                        {
                            Console.WriteLine(exx.Message);
                        }
                    }
                    // 偵測 RTU開 斷線並產生事件
                    if (tcp != null && tcp.Connected)
                    {
                        Comm_state = 1;

                          stream = tcp.GetStream();
                        stream.ReadTimeout = 3000;
                        //    int voltage=0;
                        //  int data;
                        int voltage = 0, current = 0, mod1, mod2, mod3;
                        int AcFail = 0, SmrWarning = 0, major = 0, minor = 0;
                        byte[] rdata = new byte[32];
                        //while (true)
                        //{

                        //if (stream.Length == 32  )
                        //{

                        int cks = 0;
                        stream.Write(new byte[] { 0xaa, 0x02, 100, 2 + 100 }, 0, 4);  // CSU 運作狀態   50d 32h
                        stream.Flush();
                        try
                        {
                            stream.Read(rdata, 0, 32);
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("SMR_RTU"+ex.Message);
                            tcp.Close();
                            System.Threading.Thread.Sleep(1000);
                            continue;
                        }
                        Console.WriteLine("read");
                        voltage = rdata[1] + rdata[2] * 256;
                        current = rdata[3] + rdata[4] * 256;
                        mod1 = rdata[13];
                        mod2 = rdata[14];
                        mod3 = rdata[15];
                        AcFail = ((mod1 >> 6) & 1);
                        SmrWarning = ((mod1 >> 5) & 1);
                        major = ((mod1 >> 3) & 1);
                        minor = ((mod1 >> 4) & 1);
                        Console.WriteLine("v:{0} i:{1} mod1={2:X2} mod2={3:X2} mod3={4:X2} major:{5}  minor:{6}  Acfail:{7} SmrWarning:{8}", voltage, current, mod1, mod2, mod3, major, minor, AcFail, SmrWarning);
                        for (int i = 0; i < 32; i++)
                        {
                            cks += rdata[i];
                            Console.Write("{0:X2} ", rdata[i]);
                        }
                        cks -= rdata[31];
                        Console.WriteLine();

                        if ((cks & 255) != rdata[31])
                            Console.WriteLine("cks error {0:X2}!", cks & 255);

                        byte[] retData = new byte[6];
                        retData[0] = (byte)(voltage / 256);
                        retData[1] = (byte)(voltage % 256);
                        retData[2] = (byte)(current / 256);
                        retData[3] = (byte)(current % 256);
                        retData[4] = 0;
                        System.Collections.BitArray ba = new System.Collections.BitArray(new byte[] { 0 });
                        // bit   0       1      2          3
                        //      major   minor  SmrWarning AcFail
                        ba.Set(0, major == 0);
                        ba.Set(1, minor == 0);
                        ba.Set(2, SmrWarning == 0);
                        ba.Set(3, AcFail == 0);
                        ba.CopyTo(retData, 5);

                        for (int i = 0; i < data.Length; i++)
                            data[i] = retData[i];

                    }
                    else
                    {
                        Comm_state = 0;
                    }
                   

                }
                catch (Exception ex)
                {
                    Console.WriteLine("RTU:" + this.ControlID + "," + ex.Message + "," + ex.StackTrace);
                  
                }

                System.Threading.Thread.Sleep(10000);

            }


        }
Beispiel #26
0
        private void Form1_Load(object sender, EventArgs e)
        {
            string fullname   = typeof(NCR.EAI.AUB.BPE.NIInspectorConfigurationSection).AssemblyQualifiedName;
            string parameters = "";

            string[] paramArray = parameters.Split(',');

            NCR.Core.Encryption.EncryptionHelper _enchelper = new NCR.Core.Encryption.EncryptionHelper();
            _enchelper.EncryptTripleDES("230119581201196930041982", "1234");

            TestVBEncryption.EncryptionVB _vbEncrypt = new TestVBEncryption.EncryptionVB();
            _vbEncrypt.TripleDES("1234");

            //GeneratePinBlock("4250580000001234", "1234");
            GeneratePinBlock("4192360934425644", "8536");

            NCR.EAI.AUB.Entity.CustomerProduct.Cards.CreditCardSAF creditcardsaf = new NCR.EAI.AUB.Entity.CustomerProduct.Cards.CreditCardSAF();
            creditcardsaf.recordid      = 1;
            creditcardsaf.ni1_tran_type = "test";

            try
            {
                NCR.EAI.Utilities.Utility _utility = new NCR.EAI.Utilities.Utility();
                string xml  = _utility.SerializeObjectAsXML(typeof(NCR.EAI.AUB.Entity.CustomerProduct.Cards.CreditCardSAF), creditcardsaf, Encoding.Default);
                int    idex = xml.IndexOf(Environment.NewLine);
                //xml = xml.Replace("<?xml version=\"1.0\" encoding=\"utf-8\"?>", "");
                XDocument _xdoc = new XDocument();
                //_xdoc = XDocument.Parse("<CreditCardSAF><ni1_tran_type>test</ni1_tran_type><recordid>1</recordid><retry_count>0</retry_count></CreditCardSAF>");
                //_xdoc = new XDocument();
                //_xdoc = XDocument.Parse("<CreditCardSAF><ni1_tran_type>test</ni1_tran_type><recordid>1</recordid><retry_count>0</retry_count></CreditCardSAF>");
                _xdoc = XDocument.Parse(xml);
                //XmlDocument _xdoc = new XmlDocument();
                //_xdoc.LoadXml("<?xml version=\"1.0\" encoding=\"UTF-16\"?><CreditCardSAF><ni1_tran_type>test</ni1_tran_type><recordid>1</recordid><retry_count>0</retry_count></CreditCardSAF>");
                //_xdoc.LoadXml("<test><subtest>tett</subtest></test>");
                //_xdoc.LoadXml(xml);
                XElement _xele = _xdoc.Root;
            }
            catch (Exception ex)
            {
            }

            List <XElement> _testList = new List <XElement>();

            _testList.Add(new XElement("element1"));
            _testList.Add(new XElement("element2"));
            string testResult = String.Join(",", _testList.Select(a => a.Name.LocalName));


            string   sFNSOfflineStartTime = "23:00:00";
            string   sFNSOfflineEndTime   = "05:00:00";
            bool     isOffline            = false;
            DateTime _fnsOfflineStartTime = Convert.ToDateTime(sFNSOfflineStartTime);
            DateTime _fnsOfflineEndTime   = Convert.ToDateTime(sFNSOfflineEndTime);

            int compareStartEnd = _fnsOfflineStartTime.CompareTo(_fnsOfflineEndTime);

            if (compareStartEnd > 0)
            {
                _fnsOfflineStartTime = _fnsOfflineStartTime.AddDays(-1);
            }

            DateTime _currentDateTime = DateTime.Now;

            int compareStart = _currentDateTime.CompareTo(_fnsOfflineStartTime);
            int compareEnd   = _currentDateTime.CompareTo(_fnsOfflineEndTime);

            if (compareStart >= 0 && compareEnd <= 0)
            {
                isOffline = true;
            }
            else
            {
                isOffline = false;
            }

            AssemblyName _asemblyName = System.Reflection.AssemblyName.GetAssemblyName(@"F:\Hashim\AUB\NXP\AUB\AUBBPELibrary\bin\Debug\NCR.EAI.AUB.BPE.dll");

            Assembly _asmBPETest = Assembly.LoadFile(@"F:\Hashim\AUB\NXP\AUB\AUBBPELibrary\bin\Debug\NCR.EAI.AUB.BPE.dll");
            Type     tBPEAsm     = _asmBPETest.GetType("NCR.EAI.AUB.BPE.AUBBPELibrary", false, true);

            try
            {
                var _objInstance = _asmBPETest.CreateInstance(tBPEAsm.ToString(), true);

                object _objValue = null;
                _objValue = _objInstance.GetType().GetProperty("testProperty").GetValue(_objInstance, null);

                List <XElement> _list = new List <XElement>();
                XElement        _xle  = new XElement("Firstpushedbycaller");
                _list.Add(_xle);
                _objInstance.GetType().GetProperty("InternalMessageElements").SetValue(_objInstance, _list, null);


                MethodInfo _methodInfoBPE = tBPEAsm.GetMethod("testElement");
                object     output         = _methodInfoBPE.Invoke(_objInstance, null);

                object _objValue2 = null;
                _objValue2 = _objInstance.GetType().GetProperty("InternalMessageElements").GetValue(_objInstance, null);
                _list      = (List <XElement>)_objValue2;

                _xle = new XElement("Secondpushedbycaller");
                _list.Add(_xle);
                _objInstance.GetType().GetProperty("InternalMessageElements").SetValue(_objInstance, _list, null);

                _list      = null;
                _objValue2 = null;
                _objValue2 = _objInstance.GetType().GetProperty("InternalMessageElements").GetValue(_objInstance, null);
            }
            catch (Exception ex)
            {
                string expp = ex.Message;
            }
            System.Collections.BitArray _bitArray = new System.Collections.BitArray(16, false);
            for (int i = 0; i < _bitArray.Length; i++)
            {
                _bitArray.Set(i, false);
            }
            _bitArray.Set(0, true);
            _bitArray.Set(2, true);
            _bitArray.Set(9, true);

            string bitMap = "";

            for (int i = 0; i < _bitArray.Length; i++)
            {
                bitMap += _bitArray[i].ToString();
            }

            byte[] _byteArray = new byte[2];
            _bitArray.CopyTo(_byteArray, 0);

            string hexRep = BitConverter.ToString(_byteArray);

            hexRep = hexRep.Replace("-", "");

            bitMap = System.Text.Encoding.ASCII.GetString(_byteArray);

            string ttt = "Format(1)";

            string[] splittt = ttt.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            //string formattedDate = DateTime.ParseExact("20150101", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy");
            string formattedDate = DateTime.ParseExact("23-AUG-2015", "d-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture).ToString("dd/MM/yyyy");
            //DateTime dt = DateTime.ParseExact("20150101", "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);
            Assembly _asm = Assembly.LoadFile(@"F:\Hashim\AUB\NXP\AUB\DynamicTest\bin\Debug\dynamicTest.dll");
            Type     t    = _asm.GetType("DynamicTest.DynamicTestClass", false, true);
            var      obj  = _asm.CreateInstance(t.ToString());


            object T = new object();
            //MethodInfo _methodInfo = typeof(TestClient.Form1).GetMethod("testDynamicMethod");
            MethodInfo _methodInfo = t.GetMethod("testDynamicMethod");

            object[] _objParams = new object[2];
            _objParams[0] = "test";
            _objParams[1] = "RefRequest";

            try
            {
                //object output = _methodInfo.Invoke(T, _objParams);
                object output = _methodInfo.Invoke(obj, _objParams);
            }
            catch (Exception ex)
            {
            }
        }
Beispiel #27
0
        static void ReceiveTask()
        {
            Stream stream=tcp.GetStream();
        //    int voltage=0;
          //  int data;
            int voltage = 0, current = 0, mod1, mod2, mod3;
             int   AcFail=0,SmrWarning=0,major=0,minor=0;
            byte[] data = new byte[32];
            //while (true)
            //{
                
                //if (stream.Length == 32  )
                //{

            int cks = 0;
                    
                   stream.Read(data, 0, 32);
                   Console.WriteLine("read");
                    voltage = data[1] + data[2] * 256;
                    current = data[3] + data[4]*256;
                    mod1=data[13];
                    mod2 = data[14];
                    mod3 = data[15];
                    AcFail = ((mod1 >> 6) & 1)  ;
                    SmrWarning = ((mod1 >> 5) & 1) ;
                    major = ((mod1 >> 3) & 1) ;
                    minor = ((mod1 >> 4) & 1)  ;
                    Console.WriteLine("v:{0} i:{1} mod1={2:X2} mod2={3:X2} mod3={4:X2} major:{5}  minor:{6}  Acfail:{7} SmrWarning:{8}", voltage, current, mod1, mod2, mod3,major,minor,AcFail,SmrWarning);
                    for (int i = 0; i < 32; i++)
                    {
                        cks+=data[i];
                        Console.Write("{0:X2} ",data[i]);
                    }
                    cks -= data[31];
                    Console.WriteLine();
                    
            if( (cks&255)!=data[31])
                         Console.WriteLine("cks error {0:X2}!",cks&255);

            byte[] retData = new byte[6];
            retData[0] = (byte)(voltage / 256);
            retData[1] = (byte)(voltage % 256);
            retData[2] = (byte)(current / 256);
            retData[3] = (byte)(current % 256);
            retData[4] = 0;
            System.Collections.BitArray ba = new System.Collections.BitArray(new byte[] { 0 });
            // bit   0       1      2          3
            //      major   minor  SmrWarning AcFail
            ba.Set(0, major == 0);
            ba.Set(1, minor == 0);
            ba.Set(2, SmrWarning == 0);
            ba.Set(3, AcFail == 0);
            ba.CopyTo(retData, 5);


            
            //for (int i = 0; i < 8; i++)
                    //    stream.ReadByte();
                    //mod1 = stream.ReadByte();
                    //mod2 = stream.ReadByte();
                    //mod3 = stream.ReadByte();

                }
Beispiel #28
0
 public static byte[] ToByteArray(this System.Collections.BitArray bits)
 {
     byte[] ret = new byte[(bits.Length - 1) / 8 + 1];
     bits.CopyTo(ret, 0);
     return(ret);
 }
Beispiel #29
0
		/// <summary>
        /// Implements the operator >>, 
        /// </summary>
        /// <param name="a">A.</param>
        /// <param name="shift">The shift.</param>
        /// <returns>The result of the operator.</returns>
        public static NodeId operator >>(NodeId a, int shift)
        {
            if (((object)a == null) || shift == 0)
            {
                return a;
            }
            System.Collections.BitArray input = new System.Collections.BitArray(a.Data);
            System.Collections.BitArray resultarray = new System.Collections.BitArray(a.Digits * 8);

            byte[] result = new byte[a.Digits];

            for (int i = a.Digits * 8 - 1; i >= a.Digits * 8 - 1 - shift; i--)
            {
                resultarray[i] = false;
            }

            for (int i = a.Digits * 8 - 1 - shift; i >= 0; i--)
            {
                resultarray.Set(i, input.Get(i + shift));
            }

            resultarray.CopyTo(result, 0);

            Array.Reverse(result);

            return new NodeId(result);
        }
Beispiel #30
0
       void ReadingTask()
       {
           byte[] tempdata = new byte[data.Length];
           while (true)
           {

               try
               {
                   if (RTUDevice!=null && RTUDevice.connected != IsConnected)
                   {
                       IsConnected = RTUDevice.connected;
                      using( SecureDBEntities1 db = new SecureDBEntities1())
                       {
                           tblPDConfig pdc = db.tblPDConfig.Where(n => n.PDName == this.PDName).FirstOrDefault();
                           if (pdc != null)
                           {
                               pdc.Comm_state = IsConnected ? 1 : 0;
                               db.SaveChanges();
                           }

                           db.tblPDAlarmLog.Add(new tblPDAlarmLog() { Timestamp = DateTime.Now, PDItem = "Comm_state", PDName = this.PDName, Status = IsConnected ? 1 : 0 , UserMemo=pdc.Memo});
                           db.SaveChanges();
                       }
                   }

                   if (RTUDevice != null && RTUDevice.connected)
                   {
                       lock (lockobj)
                       {
                         
                                RTUDevice.ReadDiscreteInputs(1, 0, 0, 12, ref tempdata);
                                if (tempdata == null)
                                {
                                    Console.WriteLine(this.PDName + "讀取資料失敗");
                                    reading_fail_cnt++;
                                    continue;
                                }
                                else
                                    reading_fail_cnt = 0;

                                if ((tblPDConfig.type ?? 1) == 2)  //R11
                                {
                                    for (int i = 0; i < tempdata.Length; i++)
                                        tempdata[i] = (byte)(~tempdata[i]);

                                    System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]);
                                    System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata);
                                    baryD.Set(0, baryS.Get(4));  //r0
                                    baryD.Set(1, baryS.Get(5));  //s0
                                    baryD.Set(2, baryS.Get(6));  // t0
                                    baryD.Set(3, baryS.Get(0));  //r1
                                    baryD.Set(4, baryS.Get(1)); //s1
                                    baryD.Set(5, baryS.Get(2));  //t1
                                    baryD.Set(6, baryS.Get(7));  // L0
                                    baryD.Set(7, baryS.Get(8));  // L1
                                    baryD.Set(8, baryS.Get(9));  // L2
                                    baryD.Set(9, baryS.Get(10));  // L3
                                    baryD.Set(10, baryS.Get(11));  // L4
                                    baryD.Set(11, baryS.Get(3));  // cab
                                    baryD.CopyTo(tempdata, 0);
                                }
                                else if((tblPDConfig.type ?? 1) == 7)
                                {

                                    //for (int i = 0; i < tempdata.Length; i++)
                                    //    tempdata[i] = (byte)(~tempdata[i]);

                                    System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]);
                                    System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata);
                                    baryD.Set(0, baryS.Get(4));  //r0
                                    baryD.Set(1, baryS.Get(5));  //s0
                                    baryD.Set(2, baryS.Get(6));  // t0
                                    baryD.Set(3, baryS.Get(0));  //r1
                                    baryD.Set(4, baryS.Get(1)); //s1
                                    baryD.Set(5, baryS.Get(2));  //t1
                                    baryD.Set(6, baryS.Get(7));  // L0
                                    baryD.Set(7, baryS.Get(8));  // L1
                                    baryD.Set(8, baryS.Get(9));  // L2
                                    baryD.Set(9, baryS.Get(10));  // L3
                                    baryD.Set(10, baryS.Get(11));  // L4
                                    baryD.Set(11, !baryS.Get(3));  // cab
                                    baryD.CopyTo(tempdata, 0);
                                }
                           else if ((tblPDConfig.type ?? 1) == 5)  //R13
                                {
                                    for (int i = 0; i < tempdata.Length; i++)
                                        tempdata[i] = (byte)(~tempdata[i]);

                                    System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]);
                                    System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata);
                                    baryD.Set(0, baryS.Get(4));  //r0
                                    baryD.Set(1, baryS.Get(5));  //s0
                                    baryD.Set(2, baryS.Get(6));  // t0
                                    baryD.Set(3, baryS.Get(0));  //r1
                                    baryD.Set(4, baryS.Get(1)); //s1
                                    baryD.Set(5, baryS.Get(2));  //t1
                                    baryD.Set(6, baryS.Get(7));  // L0
                                    baryD.Set(7, baryS.Get(8));  // L1
                                    baryD.Set(8, baryS.Get(9));  // L2
                                    baryD.Set(9, baryS.Get(10));  // L3
                                    baryD.Set(10, baryS.Get(11));  // L4
                                    baryD.Set(11, !baryS.Get(3));  // cab
                                    baryD.CopyTo(tempdata, 0);
                                }
                                else if ((tblPDConfig.type ?? 1) == 3) //R12
                                {

                                    for (int i = 0; i < tempdata.Length; i++)
                                        tempdata[i] = (byte)(~tempdata[i]);

                                    System.Collections.BitArray baryD = new System.Collections.BitArray(new byte[2]);
                                    System.Collections.BitArray baryS = new System.Collections.BitArray(tempdata);
                                    baryD.Set(0, baryS.Get(6));  //r0
                                    baryD.Set(1, baryS.Get(7));  //s0
                                    baryD.Set(2, baryS.Get(8));  // t0
                                    baryD.Set(3, baryS.Get(0));  //r1
                                    baryD.Set(4, baryS.Get(1)); //s1
                                    baryD.Set(5, baryS.Get(2));  //t1
                                    baryD.Set(6, baryS.Get(9));  // L0
                                    baryD.Set(7, baryS.Get(10));  // L1
                                    baryD.Set(8, baryS.Get(11));  // L2
                                    //baryD.Set(9, 0baryS.Get(10));  // L3
                                    //baryD.Set(10,0 baryS.Get(11));  // L4
                                    baryD.Set(11, baryS.Get(3) && baryS.Get(4) && baryS.Get(5));  // cab
                                    baryD.CopyTo(tempdata, 0);
                                }

                                else if ((tblPDConfig.type ?? 1) == 4) //R23 T74
                                {
                                    System.Collections.BitArray baryD = new System.Collections.BitArray(tempdata);
                                    baryD.Set(11,! baryD.Get(11));
                                    baryD.CopyTo(tempdata, 0);
                                }
                                else if ((tblPDConfig.type ?? 1) == 6)
                                {
                                    System.Collections.BitArray bard = new System.Collections.BitArray(tempdata);
                                    for (int i = 0; i < 11; i++)
                                        bard.Set(i, !bard.Get(i));

                                    bard.CopyTo(tempdata, 0);
                                }

                                
                           //  RTUDevice.ReadHoldingRegister((ushort)this.DevID, (byte)255, (ushort)(StartAddress - 1), this.RegisterLength, ref tempdata);
                           if (tempdata != null && tempdata.Length != 0)
                           {
                               CheckDataChange(tempdata);
                               System.Array.Copy(tempdata, data, 2);
                               //for (int i = 0; i < tempdata.Length; i++)
                               //{


                               //    data[i] = tempdata[i];
                               //}
                           }
                       }
                   }


                   

               }
               catch (Exception ex)
               {
                 Console.WriteLine(this.PDName+","+((tempdata==null)?"突然斷線":ex.Message) + "," + ex.StackTrace);
               }
               finally
               {
                   System.Threading.Thread.Sleep(1000);
               }

           }
       }
        public static void Guild_ListPlayersInfo(List<ObjData.guild_player> guildMembers, PacketWriter Writer)
        {
            Writer.Byte(guildMembers.Count);
            foreach (ObjData.guild_player m in guildMembers)
            {
                Writer.DWord(m.MemberID);
                Writer.Text(m.Name);
                Writer.Byte(m.Rank);
                Writer.Byte(m.Level);
                Writer.DWord(m.DonateGP);

                System.Collections.BitArray bits = new System.Collections.BitArray(new bool[]
                {
                    m.noticeeditRight,
                    m.guildstorageRight,
                    m.unionRight,
                    m.withdrawRight,
                    m.joinRight,
                    false,false,false
                });
                byte[] bytes = new byte[1];
                bits.CopyTo(bytes, 0);

                Writer.DWord((int)bytes[0]);
                Writer.DWord(0);
                Writer.DWord(0);
                Writer.DWord(0);
                if (m.GrantName != null)
                {
                    if (m.GrantName != "")
                        Writer.Text(m.GrantName);
                    else
                        Writer.Word(0);
                }
                else
                    Writer.Word(0);

                Writer.DWord(m.Model);
                Writer.Byte(m.FWrank);

                Writer.Byte(m.Xsector);
                Writer.Byte(m.Ysector);
                Writer.DWord(0xFFFFFFFF); // when he entered last time 25794314
                Writer.DWord(0x0189EECA); // when he leveled up last time 25816778 later :P
                Writer.Bool(!m.Online);
            }
        }
Beispiel #32
0
        public Bitmap Process(BinaryReader reader, Palettecolour[] pal)
        {
            MapTile mt         = new MapTile();
            var     currOffset = 6144;

            // Read map tile lookup table
            for (var tileid = 0; tileid < 256; ++tileid)
            {
                for (var j = 0; j < 6; ++j)
                {
                    byte[] z = new byte[4];
                    z[0] = reader.ReadByte();
                    z[1] = reader.ReadByte();
                    z[2] = reader.ReadByte();
                    z[3] = reader.ReadByte();
                    UInt32 x  = BitConverter.ToUInt32(z, 0);
                    int    zp = ((int)x - 6144);
                    if (zp < 0)
                    {
                        zp = 0;
                    }


                    zp /= (5 * 4 * 16);

                    mt.SubTileIds[tileid, j] = (UInt32)zp;

                    //currOffset += 4;
                    mt.Offset[tileid, j] = x;
                }
            }

            //      x	7744	uint
            // 1600 / 320

            for (var t = 0; t < 986; t++)
            {
                SubTile st = new SubTile();
                mt.Sub[t] = st;
                for (var zz = 0; zz < 16; ++zz)
                {
                    Block32 b32 = new Block32();
                    b32.alpha = reader.ReadUInt32();
                    b32.bit0  = reader.ReadUInt32();
                    b32.bit1  = reader.ReadUInt32();
                    b32.bit2  = reader.ReadUInt32();
                    b32.bit3  = reader.ReadUInt32();

                    st.Lines[zz] = b32;
                }
            }



            // 32w, 16h
            //int []px = new int[32*16];
            foreach (var subBlock in mt.Sub)
            {
                subBlock.BlockImage = new Bitmap(32, 16);

                for (var line = 0; line < 16; ++line)
                {
                    for (var x = 0; x < 32; ++x)
                    {
                        System.Collections.BitArray ba = new System.Collections.BitArray(8, false);

                        ba[0] = (subBlock.Lines[line].bit0 & (1 << x)) != 0;
                        ba[1] = (subBlock.Lines[line].bit1 & (1 << x)) != 0;
                        ba[2] = (subBlock.Lines[line].bit2 & (1 << x)) != 0;
                        ba[3] = (subBlock.Lines[line].bit3 & (1 << x)) != 0;
                        ba[4] = false;
                        ba[5] = false;
                        ba[6] = false;
                        ba[7] = false;

                        byte[] p = new byte[1];
                        ba.CopyTo(p, 0);
                        //px[(line * 32) + x] = p[0];

                        byte alpha = (byte)((subBlock.Lines[line].alpha & (1 << x)) != 0 ? 0 : 255);

                        Palettecolour pc = pal[p[0]];

                        //////////////////////
                        // 0       7

                        var px = 0;
                        var py = line;

                        if (x < 8)
                        {
                            px = (24 + (x % 8));
                        }
                        else if (x < 16)
                        {
                            px = (16 + (x % 8));
                        }
                        else if (x < 24)
                        {
                            px = (8 + (x % 8));
                        }
                        else if (x < 32)
                        {
                            px = (0 + (x % 8));
                        }

                        subBlock.BlockImage.SetPixel(31 - px, py, Color.FromArgb(alpha, pc.Red, pc.Green, pc.Blue));

                        //Console.Write( (p[0] > 0 ? 1 : 0));
                    } //x
                     //Console.WriteLine();
                }     // line
            }

            var myTile = 33;
            //Bitmap bmp = new Bitmap(64, 48);
            // 3 0
            // 4 1
            // 5 2

            // Lay out thhe tiles 16 wide by 16 down

            int row = 0, col = 0;
            int numrows = 16, numcols = 16;

            Bitmap bmp = new Bitmap(2 * 32 * numcols, 16 * 3 * numrows);

            for (var t = 0; t < 256; t++)
            {
                if (col >= numcols)
                {
                    ++row;
                    col = 0;
                }

                var xpos = col * 64;
                var ypos = (row * 48);

                bmp.BlitIntoBitmap(mt.Sub[mt.SubTileIds[t, 0]].BlockImage, xpos + 0, ypos + 0);
                bmp.BlitIntoBitmap(mt.Sub[mt.SubTileIds[t, 3]].BlockImage, xpos + 32, ypos + 0);
                // 2
                bmp.BlitIntoBitmap(mt.Sub[mt.SubTileIds[t, 1]].BlockImage, xpos + 0, ypos + 16);
                bmp.BlitIntoBitmap(mt.Sub[mt.SubTileIds[t, 4]].BlockImage, xpos + 32, ypos + 16);
                // 3
                bmp.BlitIntoBitmap(mt.Sub[mt.SubTileIds[t, 2]].BlockImage, xpos + 0, ypos + 32);
                bmp.BlitIntoBitmap(mt.Sub[mt.SubTileIds[t, 5]].BlockImage, xpos + 32, ypos + 32);

                ++col;
            }


            return(bmp);
        }
 public SerializBitArray(System.Collections.BitArray bitArray)
 {
     length = bitArray.Length;
     iArray = new int[GetArrayLength(length, 32)];
     bitArray.CopyTo(iArray, 0);
 }
Beispiel #34
0
 private byte[] L(byte[] state)
 {
     byte[] result = new byte[64];            
     for (int i = 0; i < 8; i++)
     {
         ulong t = 0;
         byte[] tempArray = new byte[8];
         Array.Copy(state, i * 8, tempArray, 0, 8);
         tempArray = tempArray.Reverse().ToArray();
         System.Collections.BitArray tempBits1 = new System.Collections.BitArray(tempArray);
         bool[] tempBits=new bool[64];
         tempBits1.CopyTo(tempBits, 0);
         tempBits=tempBits.Reverse().ToArray();
         for (int j = 0; j < 64; j++)
         {
             if (tempBits[j] != false)
                 t = t ^ A[j];
         }
         byte[] ResPart = BitConverter.GetBytes(t).Reverse().ToArray();
         Array.Copy(ResPart, 0, result, i * 8, 8);
     }
     return result;
 }