Ignore:
Timestamp:
2008-10-29T22:29:00+01:00 (16 years ago)
Author:
ramack
Message:

added support to configure the device

Location:
applications/editors/josm/plugins/globalsat/src/org
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/globalsat/src/org/kaintoch/gps/globalsat/dg100/Dg100Config.java

    r10378 r11555  
    156156         * @return Returns the disableLogDist.
    157157         */
    158         public byte getDisableLogDist()
    159         {
    160                 return disableLogDist;
     158        public boolean getDisableLogDist()
     159        {
     160                return disableLogDist != 0;
    161161        }
    162162
     
    164164         * @param disableLogDist The disableLogDist to set.
    165165         */
    166         public void setDisableLogDist(byte disableLogDist)
    167         {
    168                 this.disableLogDist = disableLogDist;
     166        public void setDisableLogDist(boolean disableLogDist)
     167        {
     168            this.disableLogDist = (byte)(disableLogDist ? 1 : 0);
    169169        }
    170170
     
    172172         * @return Returns the disableLogSpeed.
    173173         */
    174         public byte getDisableLogSpeed()
    175         {
    176                 return disableLogSpeed;
     174        public boolean getDisableLogSpeed()
     175        {
     176                return disableLogSpeed != 0;
    177177        }
    178178
     
    180180         * @param disableLogSpeed The disableLogSpeed to set.
    181181         */
    182         public void setDisableLogSpeed(byte disableLogSpeed)
    183         {
    184                 this.disableLogSpeed = disableLogSpeed;
     182        public void setDisableLogSpeed(boolean disableLogSpeed)
     183        {
     184            this.disableLogSpeed = (byte)(disableLogSpeed ? 1 : 0);
    185185        }
    186186
  • applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatDg100.java

    r11496 r11555  
    1818
    1919import org.kaintoch.gps.globalsat.dg100.Response;
     20import org.kaintoch.gps.globalsat.dg100.Dg100Config;
    2021import org.kaintoch.gps.globalsat.dg100.FileInfoRec;
    2122import org.kaintoch.gps.globalsat.dg100.GpsRec;
     
    124125    public void cancel(){
    125126        cancelled = true;
     127        disconnect();
    126128    }
    127129
     
    258260        int len = sendCmd(src, response, -1);
    259261        return Response.parseResponse(response, len);
     262    }
     263
     264    private Response sendCmdGetConfig() throws IOException, UnsupportedCommOperationException
     265    {
     266        byte[] src = dg100CmdGetConfig;
     267        int len = sendCmd(src, response, -1);
     268        return Response.parseResponse(response, len);
     269    }
     270
     271    public Dg100Config getConfig() throws ConnectionException{
     272        try{
     273            if(port == null){
     274                connect();
     275            }
     276            Response response = sendCmdGetConfig();
     277            return response.getConfig();
     278        }catch(Exception e){
     279            throw new ConnectionException(e);
     280        }
     281    }
     282
     283
     284    private void sendCmdSetConfig(Dg100Config config) throws IOException, UnsupportedCommOperationException
     285    {
     286        byte[] src = dg100CmdSetConfig;
     287        ByteBuffer buf = ByteBuffer.wrap(src);
     288        if (config != null){
     289            config.write(buf);
     290        }
     291        updateCheckSum(buf);
     292        int len = sendCmd(src, response, -1);
     293
     294        Response.parseResponse(response, len);
     295    }
     296
     297    public void setConfig(Dg100Config conf) throws ConnectionException{
     298        try{
     299            sendCmdSetConfig(conf);
     300        }catch(Exception e){
     301            throw new ConnectionException(e);
     302        }
    260303    }
    261304
  • applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatImportDialog.java

    r11496 r11555  
    2222import javax.swing.JComboBox;
    2323import javax.swing.ListCellRenderer;
     24import javax.swing.JDialog;
    2425
    2526import gnu.io.*;
     
    7071                    Object i = portCombo.getSelectedItem();
    7172                    if(i instanceof CommPortIdentifier){
     73                        GlobalsatPlugin.setPortIdent((CommPortIdentifier)i);
    7274                        Main.pref.put("globalsat.portIdentifier", ((CommPortIdentifier)i).getName());
    7375                    }
     
    108110                public void actionPerformed(java.awt.event.ActionEvent e){
    109111                    System.out.println("configureing the device");
     112                    try{
     113                       
     114                        GlobalsatConfigDialog dialog = new GlobalsatConfigDialog(GlobalsatPlugin.dg100().getConfig());
     115                        JOptionPane pane = new JOptionPane(dialog, JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION);
     116                        JDialog dlg = pane.createDialog(Main.parent, tr("Configure Device"));
     117                        dialog.setOptionPane(pane);
     118                        dlg.setVisible(true);
     119                        if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
     120                            GlobalsatPlugin.dg100().setConfig(dialog.getConfig());
     121                        }
     122                        dlg.dispose();
     123
     124                    }catch(GlobalsatDg100.ConnectionException ex){
     125                        JOptionPane.showMessageDialog(Main.parent, tr("Connection Error.") + " " + ex.toString());
     126                    }
     127                    System.out.println("configureing the device finised");
    110128                }
    111129            });
     
    116134        c.gridx = 2;
    117135        c.gridy = 1;
    118         //        add(configBtn, c);
     136        add(configBtn, c);
    119137
    120138       
     
    141159                if(sel != null && port.getName() == sel){
    142160                    portCombo.setSelectedItem(port);
     161                    GlobalsatPlugin.setPortIdent(port);
    143162                }
    144163            }
    145164        }
    146165        portCombo.setVisible(true);
     166        GlobalsatPlugin.setPortIdent(getPort());
     167
    147168    }
    148169       
  • applications/editors/josm/plugins/globalsat/src/org/openstreetmap/josm/plugins/globalsat/GlobalsatPlugin.java

    r11496 r11555  
    2727
    2828public class GlobalsatPlugin extends Plugin {
     29    private static GlobalsatDg100 device = null;
     30    public static GlobalsatDg100 dg100(){
     31        return device;
     32    }
     33
     34    public static void setPortIdent(CommPortIdentifier port){
     35        if(device != null){
     36            device.disconnect();
     37        }
     38        device = new GlobalsatDg100(port);
     39    }
    2940
    3041    private static class ImportTask extends PleaseWaitRunnable {
    3142        public GpxData data;
    32         private GlobalsatDg100 dg100;
    3343        public Exception eee;
    3444        private boolean deleteAfter;
    3545
    36         public ImportTask(GlobalsatDg100 dg100, boolean delete){
     46        public ImportTask(boolean delete){
    3747            super(tr("Importing data from device."));
    38             this.dg100 = dg100;
    3948            deleteAfter = delete;
    4049        }
     
    4453            Main.pleaseWaitDlg.currentAction.setText(tr("Importing data from DG100..."));
    4554            try{
    46                 data = dg100.readData();
     55                data = GlobalsatPlugin.dg100().readData();
    4756            }catch(Exception e){
    4857                eee = e;
     
    5160
    5261        @Override protected void finish() {
    53             if(deleteAfter && dg100.isCancelled() == false){
     62            if(deleteAfter && GlobalsatPlugin.dg100().isCancelled() == false){
    5463                Main.pref.put("globalsat.deleteAfterDownload", true);
    5564                try{
    56                     dg100.deleteData();
     65                    GlobalsatPlugin.dg100().deleteData();
    5766                }catch(Exception ex){
    5867                    JOptionPane.showMessageDialog(Main.parent, tr("Error deleting data.") + " " + ex.toString());
     
    7281                JOptionPane.showMessageDialog(Main.parent, tr("Connection failed.") + " (" + eee.toString() + ")");
    7382            }
    74             dg100.disconnect();
     83            GlobalsatPlugin.dg100().disconnect();
    7584        }
    7685
    7786        @Override protected void cancel() {
    78             dg100.cancel();
    79             dg100.disconnect();
     87            GlobalsatPlugin.dg100().cancel();
     88            GlobalsatPlugin.dg100().disconnect();
    8089        }
    8190    }
     
    108117            dlg.setVisible(true);
    109118            if(((Integer)pane.getValue()) == JOptionPane.OK_OPTION){
    110                 GlobalsatDg100 dg100 = new GlobalsatDg100(dialog.getPort());
    111                 ImportTask task = new ImportTask(dg100, dialog.deleteFilesAfterDownload());
     119                setPortIdent(dialog.getPort());
     120                ImportTask task = new ImportTask(dialog.deleteFilesAfterDownload());
    112121                Main.worker.execute(task);
    113122            }
Note: See TracChangeset for help on using the changeset viewer.