Changeset 1024


Ignore:
Timestamp:
Dec 16, 2009, 8:16:28 PM (12 years ago)
Author:
weyers
Message:

Transposition execute bugfix!

Location:
trunk/CrypPlugins/Transposition
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/Transposition/Transposition.cs

    r990 r1024  
    44using System.Text;
    55using System.ComponentModel;
     6using System.Threading;
     7using System.Windows.Threading;
     8using System.Runtime.InteropServices;
    69
    710using Cryptool;
     
    2427        private byte[] input;
    2528        private byte[] output;
    26         private byte[] output1;
    2729        private TranspositionSettings settings;
    2830        private TranspositionPresentation myPresentation;
    29 
    3031        private byte[,] read_in_matrix;
    3132        private byte[,] permuted_matrix;
    3233        private int[] key;
     34        private AutoResetEvent ars;
     35
    3336        # endregion
    3437
     
    4144            myPresentation = new TranspositionPresentation();
    4245            Presentation = myPresentation;
     46            ars =new AutoResetEvent(false);
    4347            myPresentation.feuerEnde += new EventHandler(presentation_finished);
    4448            myPresentation.updateProgress += new EventHandler(update_progress);
     
    5559        private void presentation_finished(object sender, EventArgs e)
    5660        {
    57            
    58             output1 = output;
     61            ars.Set();
    5962            Output = output;
    6063            ProgressChanged(1, 1);
     64           
    6165        }
    6266
     
    147151            get
    148152            {
    149                 return this.output1;
     153                return this.output;
    150154            }
    151155            set
     
    185189            }
    186190
    187             output1 = null;
    188191            if (Presentation.IsVisible)
    189                 //myPresentation.main(settings.NumberMode,Read_in_matrix,Permuted_matrix,key,Keyword,Input,Output,this.settings.Permutation,this.settings.ReadIn,this.settings.ReadOut,this.settings.Action);
    190                 myPresentation.main(Read_in_matrix, Permuted_matrix, key, Keyword, Input, output, this.settings.Permutation, this.settings.ReadIn, this.settings.ReadOut, this.settings.Action, this.settings.Number);
     192            {
     193                Thread.SpinWait(1000);
     194                 Presentation.Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
     195                {
     196                    myPresentation.main(Read_in_matrix, Permuted_matrix, key, Keyword, Input, output, this.settings.Permutation, this.settings.ReadIn, this.settings.ReadOut, this.settings.Action, this.settings.Number); 
     197                }
     198                , null);
     199                 ars.WaitOne(); 
     200            }
    191201            else
    192202            {
    193                 output1 = output;
     203                Output = output;
    194204                ProgressChanged(1, 1);
    195205            }
     206
     207           
     208            Transposition_LogMessage("Hallo", NotificationLevel.Debug);
     209
    196210        }
    197211
     
    219233        public void PreExecution()
    220234        {
    221 
     235           
    222236        }
    223237
     
    235249        public void Stop()
    236250        {
     251            ars.Set();
    237252            myPresentation.my_Stop(this, EventArgs.Empty);
    238253        }
     
    261276                    key = sortKey(keyword);
    262277                }
    263 
     278               
    264279                switch (settings.Action)
    265280                {
    266281                    case 0:
    267                         Output = encrypt(input, key);
     282                        output = encrypt(input, key);
    268283                        break;
    269284                    case 1:
    270                         Output = decrypt(input, key);
     285                        output = decrypt(input, key);
    271286                        break;
    272287                    default:
  • trunk/CrypPlugins/Transposition/TranspositionPresentation.xaml

    r961 r1024  
    4040            </StackPanel>
    4141            <Label Height="10"></Label>
    42             <TextBox  Name="textBox2" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="160"></TextBox>
     42            <TextBox  Name="textBox2" IsEnabled="False" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="160"></TextBox>
    4343        </StackPanel>
    4444    </Canvas>
  • trunk/CrypPlugins/Transposition/TranspositionPresentation.xaml.cs

    r1019 r1024  
    3535
    3636        }
     37
     38       
    3739
    3840        public void sizeChanged(Object sender, EventArgs eventArgs)
     
    101103        {
    102104            //background being created
     105            GradientStop gs = new GradientStop();
    103106            LinearGradientBrush myBrush = new LinearGradientBrush();
    104107            myBrush.GradientStops.Add(new GradientStop(Colors.CornflowerBlue, 0.0));
     
    219222        {
    220223
    221             Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    222             {
     224            //Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
     225            //{
    223226                this.my_Stop(this, EventArgs.Empty);
    224227                if (keyword != null && input != null)
    225228                {
     229                    schleife = 0;
    226230                    init(read_in_matrix, permuted_matrix, keyword, per, rein, reout, act, key, number);
    227231                    create(read_in_matrix, permuted_matrix, key, keyword, input, output);
    228232                    sizeChanged(this, EventArgs.Empty);
    229                     schleife = 0;
    230                     //textBox1.Text = input;
    231                     //readIn();
    232                 }
    233             }, null);
     233                }
     234            //}, null);
    234235        }
    235236
     
    247248        public void create(byte[,] read_in_matrix, byte[,] permuted_matrix, int[] key, String keyword, byte[] input, byte[] output)
    248249        {
    249             Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    250             {
     250           
    251251                if (read_in_matrix != null && key != null)
    252252                {
     
    490490                Stack.BeginAnimation(OpacityProperty, nop);
    491491
    492             }
    493          , null);
     492           
    494493        }
    495494        #endregion
     
    516515                if (rein == 0)
    517516                {
    518                     myupdateprogress(outcount2 * 1000 / read_in_matrix.GetLength(0));
     517                    myupdateprogress(outcount2 * 1000 / read_in_matrix.GetLength(1));
    519518
    520519                    for (int i = 0; i < read_in_matrix.GetLength(0); i++)
     
    530529                {
    531530
    532                     myupdateprogress(outcount2 * 1000 / read_in_matrix.GetLength(1));
     531                    myupdateprogress(outcount2 * 1000 / read_in_matrix.GetLength(0));
    533532                    for (int i = 0; i < read_in_matrix.GetLength(1); i++)
    534533                    {
     
    623622                        {
    624623
    625                             if (mat_back[2 - rowper, outcount3 - colper] == Brushes.LawnGreen)
     624                            if (mat_back[0, outcount3 - colper] == Brushes.LawnGreen)
    626625                                myColorAnimation_green.Completed += new EventHandler(my_Help14);
    627626                            else
     
    633632                    if (no)
    634633                    {
    635                         if (mat_back[2 - rowper, outcount3 - colper] == Brushes.LawnGreen)
     634                        if (mat_back[0, outcount3 - colper] == Brushes.LawnGreen)
    636635                            myColorAnimation_green.Completed += new EventHandler(my_Help5);
    637636                        else
     
    915914                            teba[i, outcount4].Background = brush_blue;
    916915                    }
    917                     if (mat_back[2 - rowper, outcount4 - colper] == Brushes.LawnGreen)
     916                    if (mat_back[0, outcount4 - colper] == Brushes.LawnGreen)
    918917                        myColorAnimation_green.Completed += new EventHandler(my_Help6);
    919918                    else
     
    11941193        private void my_Completed(object sender, EventArgs e)
    11951194        {
    1196             Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    1197             {
     1195         
    11981196                if (per == 1)
    11991197                {
     
    12821280                        }
    12831281                }
    1284             }, null);
     1282           
    12851283        }
    12861284
     
    15521550                }
    15531551        }
     1552       
     1553        #endregion
     1554
    15541555        private void myupdateprogress(int value)
    15551556        {
     
    15571558            updateProgress(this, EventArgs.Empty);
    15581559        }
    1559         #endregion
    1560 
    1561 
    15621560
    15631561    }
  • trunk/CrypPlugins/Transposition/TranspositionSettings.cs

    r1019 r1024  
    102102
    103103        [PropertySaveOrder(5)]
    104         [TaskPane("Presentation Speed", "Change the pace of the Presentation", null, 5, true, DisplayLevel.Expert, ControlType.Slider, 1, 1000)]
     104        [TaskPane("Presentation Speed", "Change the pace of the Presentation", null, 5, true, DisplayLevel.Expert, ControlType.Slider, 1, 900)]
    105105        public int PresentationSpeed
    106106        {
Note: See TracChangeset for help on using the changeset viewer.