From cc5af3f70ec2d75b6f0fc84745fd7e51db0cbf40 Mon Sep 17 00:00:00 2001 From: Andrea Enrici <andrea.enrici@nokia.com> Date: Thu, 26 Mar 2015 09:51:19 +0000 Subject: [PATCH] added symmetrical value to MapperBuffer. corrected bugs when reloading the model --- src/tmltranslator/ctranslator/FepBuffer.java | 2 +- src/tmltranslator/ctranslator/MMBuffer.java | 2 +- .../ctranslator/MapperBuffer.java | 3 +- src/ui/tmldd/TMLArchiPortArtifact.java | 10 ++- src/ui/window/JDialogPortArtifact.java | 75 ++++++++----------- 5 files changed, 42 insertions(+), 50 deletions(-) diff --git a/src/tmltranslator/ctranslator/FepBuffer.java b/src/tmltranslator/ctranslator/FepBuffer.java index 3a8c334533..9e51484d6e 100755 --- a/src/tmltranslator/ctranslator/FepBuffer.java +++ b/src/tmltranslator/ctranslator/FepBuffer.java @@ -54,7 +54,7 @@ import tmltranslator.*; public class FepBuffer extends BaseBuffer { - public static final String DECLARATION = "struct FEP_BUFFER_TYPE {\n\tint num_samples;\n\tint base_ddress;\n\tint bank;\n\tint type;\n};"; + public static final String DECLARATION = "extern struct FEP_BUFFER_TYPE {\n\tint num_samples;\n\tint base_ddress;\n\tint bank;\n\tint type;\n};"; public static final String[] dataTypeList = { "int8", "int16", "cpx16", "cpx32" }; public static final String[] banksList = { "0", "1", "2", "3" }; diff --git a/src/tmltranslator/ctranslator/MMBuffer.java b/src/tmltranslator/ctranslator/MMBuffer.java index 829baba4f5..095c529119 100644 --- a/src/tmltranslator/ctranslator/MMBuffer.java +++ b/src/tmltranslator/ctranslator/MMBuffer.java @@ -53,7 +53,7 @@ import tmltranslator.*; public class MMBuffer extends BaseBuffer { - public static final String DECLARATION = "struct MM_BUFFER_TYPE {\n\tint num_samples;\n\tint base_address;\n};"; + public static final String DECLARATION = "extern struct MM_BUFFER_TYPE {\n\tint num_samples;\n\tint base_address;\n};"; protected int num_samples; protected String num_samples_value; private String Context = "embb_mainmemory_context"; diff --git a/src/tmltranslator/ctranslator/MapperBuffer.java b/src/tmltranslator/ctranslator/MapperBuffer.java index 1df2e1a1cd..ceabf6e871 100644 --- a/src/tmltranslator/ctranslator/MapperBuffer.java +++ b/src/tmltranslator/ctranslator/MapperBuffer.java @@ -59,7 +59,8 @@ public class MapperBuffer extends BaseBuffer { protected String bits_per_symbol; protected String symmetrical; protected int symmetrical_value; - public static final String DECLARATION = "struct MAPPER_BUFFER_TYPE {\n\tint num_samples;\n\tint base_address;\n};"; + public static final String DECLARATION = "extern struct MAPPER_BUFFER_TYPE {\n\tint num_samples;\n\tint base_address;\n};"; + public static final String[] symmetricalValues = { "ON" , "OFF" }; private String Context = "embb_mapper_context"; /*public MapperBuffer( String _name, String _type, int _base_address_value, int _num_samples_value, int _bits_per_symbol_value, int _symmetrical_value ) { diff --git a/src/ui/tmldd/TMLArchiPortArtifact.java b/src/ui/tmldd/TMLArchiPortArtifact.java index dc2297981f..d75ddb4eff 100644 --- a/src/ui/tmldd/TMLArchiPortArtifact.java +++ b/src/ui/tmldd/TMLArchiPortArtifact.java @@ -276,7 +276,7 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements sb.append("\" bank=\"" + bufferParameters.get(3) ); sb.append("\" dataType=\"" + bufferParameters.get(4) ); break; - case Buffer.MapperBuffer: + case Buffer.InterleaverBuffer: sb.append("\" baseAddress=\"" + bufferParameters.get(1) ); sb.append("\" numSamples=\"" + bufferParameters.get(2) ); TraceManager.addDev( "I am writing the parameters to XML" ); @@ -285,11 +285,12 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements sb.append("\" baseAddress=\"" + bufferParameters.get(1) ); sb.append("\" numSamples=\"" + bufferParameters.get(2) ); break; - case Buffer.InterleaverBuffer: + case Buffer.MapperBuffer: sb.append("\" baseAddress=\"" + bufferParameters.get(1) ); sb.append("\" numSamples=\"" + bufferParameters.get(2) ); sb.append("\" bitsPerSymbol=\"" + bufferParameters.get(3) ); sb.append("\" symbolBaseAddress=\"" + bufferParameters.get(4) ); + sb.append("\" symmetricalValue=\"" + bufferParameters.get(5) ); break; case Buffer.MainMemoryBuffer: sb.append("\" baseAddress=\"" + bufferParameters.get(1) ); @@ -347,7 +348,7 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements bufferParameters.add( elt.getAttribute( "bank" ) ); bufferParameters.add( elt.getAttribute( "dataType" ) ); break; - case Buffer.MapperBuffer: + case Buffer.InterleaverBuffer: bufferParameters.add( elt.getAttribute( "baseAddress" ) ); bufferParameters.add( elt.getAttribute( "numSamples" ) ); break; @@ -355,11 +356,12 @@ public class TMLArchiPortArtifact extends TGCWithoutInternalComponent implements bufferParameters.add( elt.getAttribute( "baseAddress" ) ); bufferParameters.add( elt.getAttribute( "numSamples" ) ); break; - case Buffer.InterleaverBuffer: + case Buffer.MapperBuffer: bufferParameters.add( elt.getAttribute( "baseAddress" ) ); bufferParameters.add( elt.getAttribute( "numSamples" ) ); bufferParameters.add( elt.getAttribute( "bitsPerSymbol" ) ); bufferParameters.add( elt.getAttribute( "symbolBaseAddress" ) ); + bufferParameters.add( elt.getAttribute( "symmetricalValue" ) ); break; case Buffer.MainMemoryBuffer: bufferParameters.add( elt.getAttribute( "baseAddress" ) ); diff --git a/src/ui/window/JDialogPortArtifact.java b/src/ui/window/JDialogPortArtifact.java index 793080db08..466170ef2c 100755 --- a/src/ui/window/JDialogPortArtifact.java +++ b/src/ui/window/JDialogPortArtifact.java @@ -69,9 +69,10 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi private TMLArchiPortArtifact artifact; private String mappedMemory = "VOID"; protected JComboBox referenceCommunicationName, priority, memoryCB; - protected JTextField baseAddressTF, endAddressTF, numSamplesTF, symbolBaseAddressTF, bitsPerSymbolTF; - protected String baseAddress, endAddress, mappedPort, sampleLength, numSamples, symbolBaseAddress, bitsPerSymbol, bank, dataType; - protected JComboBox dataTypeCB, bankCB; + protected JTextField baseAddressTF, numSamplesTF, symbolBaseAddressTF, bitsPerSymbolTF; + protected String baseAddress, mappedPort, sampleLength, numSamples, symbolBaseAddress, bitsPerSymbol; + protected String bank, dataType, symmetricalValue; + protected JComboBox dataTypeCB, bankCB, symmetricalValueCB; // Main Panel private JButton closeButton; @@ -226,12 +227,12 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi } makeFepBufferPanel( c1, c2 ); break; - case Buffer.MapperBuffer: + case Buffer.InterleaverBuffer: if( loadBufferParameters ) { baseAddress = bufferParameters.get(1); numSamples = bufferParameters.get(2); } - makeMapperBufferPanel( c1, c2 ); + makeInterleaverBufferPanel( c1, c2 ); break; case Buffer.AdaifBuffer: if( loadBufferParameters ) { @@ -240,14 +241,15 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi } makeAdaifBufferPanel( c1, c2 ); break; - case Buffer.InterleaverBuffer: + case Buffer.MapperBuffer: if( loadBufferParameters ) { baseAddress = bufferParameters.get(1); numSamples = bufferParameters.get(2); bitsPerSymbol = bufferParameters.get(3); symbolBaseAddress = bufferParameters.get(4); + symmetricalValue = bufferParameters.get(5); } - makeInterleaverBufferPanel( c1, c2 ); + makeMapperBufferPanel( c1, c2 ); break; case Buffer.MainMemoryBuffer: if( loadBufferParameters ) { @@ -263,7 +265,7 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi bank = bufferParameters.get(3); dataType = bufferParameters.get(4); } - makeMapperBufferPanel( c1, c2 ); + makeFepBufferPanel( c1, c2 ); break; } @@ -318,12 +320,12 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi panel3.add( new JLabel( "Data type = "), c2 ); c1.gridwidth = GridBagConstraints.REMAINDER; if( dataType != null ) { - dataTypeCB.setSelectedIndex( Integer.parseInt( dataType ) ); + dataTypeCB.setSelectedItem( dataType ); } panel3.add( dataTypeCB, c1 ); } - private void makeMapperBufferPanel( GridBagConstraints c1, GridBagConstraints c2 ) { + private void makeInterleaverBufferPanel( GridBagConstraints c1, GridBagConstraints c2 ) { c2.anchor = GridBagConstraints.LINE_START; makeMainMemoryBufferPanel( c1, c2 ); } @@ -333,32 +335,36 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi makeMainMemoryBufferPanel( c1, c2 ); } - private void makeInterleaverBufferPanel( GridBagConstraints c1, GridBagConstraints c2 ) { + private void makeMapperBufferPanel( GridBagConstraints c1, GridBagConstraints c2 ) { c2.anchor = GridBagConstraints.LINE_START; numSamplesTF = new JTextField( numSamples, 5 ); panel3.add( new JLabel( "Number of samples = "), c2 ); c1.gridwidth = GridBagConstraints.REMAINDER; - numSamplesTF = new JTextField( numSamples, 5 ); panel3.add( numSamplesTF, c1 ); // baseAddressTF = new JTextField( baseAddress, 5 ); panel3.add( new JLabel( "Base address = "), c2 ); c1.gridwidth = GridBagConstraints.REMAINDER; - baseAddressTF = new JTextField( baseAddress, 5 ); panel3.add( baseAddressTF, c1 ); // bitsPerSymbolTF = new JTextField( bitsPerSymbol, 5 ); panel3.add( new JLabel( "Number of bits/symbol = "), c2 ); c1.gridwidth = GridBagConstraints.REMAINDER; - bitsPerSymbolTF = new JTextField( bitsPerSymbol, 5 ); panel3.add( bitsPerSymbolTF, c1 ); // symbolBaseAddressTF = new JTextField( symbolBaseAddress, 5 ); panel3.add( new JLabel( "Symbol base address = "), c2 ); c1.gridwidth = GridBagConstraints.REMAINDER; - symbolBaseAddressTF = new JTextField( symbolBaseAddress, 5 ); panel3.add( symbolBaseAddressTF, c1 ); + // + symmetricalValueCB = new JComboBox( new Vector<String>( Arrays.asList( MapperBuffer.symmetricalValues ) ) ); + panel3.add( new JLabel( "Symmetrical value = "), c2 ); + c1.gridwidth = GridBagConstraints.REMAINDER; + if( symmetricalValue != null ) { + symmetricalValueCB.setSelectedItem( symmetricalValue ); + } + panel3.add( symmetricalValueCB, c1 ); } private void makeMainMemoryBufferPanel( GridBagConstraints c1, GridBagConstraints c2 ) { @@ -477,12 +483,12 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi private void flushBuffersStrings() { baseAddress = ""; - endAddress = ""; mappedPort = ""; sampleLength = ""; numSamples = ""; symbolBaseAddress = ""; bitsPerSymbol = ""; + symmetricalValue = ""; } @@ -537,7 +543,7 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi return checkBaseAddress() && checkNumSamples(); } - private boolean handleClosureWhenSelectedMapperBuffer() { + private boolean handleClosureWhenSelectedInterleaverBuffer() { return checkBaseAddress() && checkNumSamples(); } @@ -547,8 +553,9 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi return checkBaseAddress() && checkNumSamples(); } - private boolean handleClosureWhenSelectedInterleaverBuffer() { - + private boolean handleClosureWhenSelectedMapperBuffer() { + + symmetricalValue = (String)symmetricalValueCB.getSelectedItem(); return checkBaseAddress() && checkNumSamples() && checkNumBitsPerSymbol() && checkSymbolBaseAddress(); } @@ -569,10 +576,6 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi return baseAddress; } - public String getEndAddress() { - return endAddress; - } - public void cancelDialog() { dispose(); } @@ -635,24 +638,6 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi return priority.getSelectedIndex(); } - private boolean checkEndAddress() { - - endAddress = (String) endAddressTF.getText(); - if( endAddress.length() <= 2 && endAddress.length() > 0 ) { - JOptionPane.showMessageDialog( frame, "Please enter a valid end address", "Badly formatted parameter", - JOptionPane.INFORMATION_MESSAGE ); - return false; - } - if( endAddress.length() > 2 ) { - if( !( endAddress.substring(0,2).equals("0x") || endAddress.substring(0,2).equals("0X") ) ) { - JOptionPane.showMessageDialog( frame, "End address must be expressed in hexadecimal", "Badly formatted parameter", - JOptionPane.INFORMATION_MESSAGE ); - return false; - } - } - return true; - } - private boolean checkBaseAddress() { baseAddress = (String) baseAddressTF.getText(); @@ -695,6 +680,9 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi String regex = "[0-9]+"; bitsPerSymbol = (String) bitsPerSymbolTF.getText(); + if( !( bitsPerSymbol.length() > 0 ) ) { + return true; + } if( Integer.parseInt( bitsPerSymbol ) == 0 ) { JOptionPane.showMessageDialog( frame, "The number of bits/samples must be greater than 0", "Badly formatted parameter", JOptionPane.INFORMATION_MESSAGE ); @@ -737,7 +725,7 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi params.add( (String)bankCB.getSelectedItem() ); params.add( (String)dataTypeCB.getSelectedItem() ); break; - case Buffer.MapperBuffer: + case Buffer.InterleaverBuffer: params.add( baseAddress ); params.add( numSamples ); break; @@ -745,11 +733,12 @@ public class JDialogPortArtifact extends javax.swing.JDialog implements ActionLi params.add( baseAddress ); params.add( numSamples ); break; - case Buffer.InterleaverBuffer: + case Buffer.MapperBuffer: params.add( baseAddress ); params.add( numSamples ); params.add( bitsPerSymbol ); params.add( symbolBaseAddress ); + params.add( symmetricalValue ); break; case Buffer.MainMemoryBuffer: params.add( baseAddress ); -- GitLab