Exemple #1
0
        private void Cb4_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            var    temp = (string)((ComboBoxItem)Cbpar.SelectedItem).Content;
            Parity par;

            Parity.TryParse(temp, true, out par);

            Settings.Default.ScannerSettings.Par = par;
            Settings.Default.Save();
            SerialPortErrorHandler();
        }
Exemple #2
0
        public Configuration()
        {
            InitializeComponent();
            var com = MainSettings.Default.COM;

            if (string.IsNullOrWhiteSpace(com))
            {
                foreach (string s in System.IO.Ports.SerialPort.GetPortNames())
                {
                    cComPortList.Items.Add(s);
                }
            }
            else
            {
                cComPortList.Items.Add(com);
                cComPortList.SelectedItem = cComPortList.Items[0]; //  cComPortList.FindString(com);// FindStringExact(com);
            }

            if (!string.IsNullOrWhiteSpace(MainSettings.Default.AreaHeight.ToString()))
            {
                tHeight.Text = MainSettings.Default.AreaHeight.ToString();
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.AreaWidth.ToString()))
            {
                tWidth.Text = MainSettings.Default.AreaWidth.ToString();
            }

            tPatientPath.ScrollBars = System.Windows.Forms.ScrollBars.Horizontal;
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.PatientFolderPath.ToString()))
            {
                tPatientPath.Text = MainSettings.Default.PatientFolderPath;
                path = MainSettings.Default.PatientFolderPath;
            }

            if (!string.IsNullOrWhiteSpace(MainSettings.Default.BaudRate.ToString()))
            {
                tBaudRate.Text = MainSettings.Default.BaudRate.ToString();
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.DataBits.ToString()))
            {
                tDataBits.Text = MainSettings.Default.DataBits.ToString();
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.Handshake))
            {
                cHandshake.DataSource = Enum.GetValues(typeof(Handshake));
                Handshake hand;
                var       tmp = Handshake.TryParse(MainSettings.Default.Handshake, out hand);
                if (tmp)
                {
                    cHandshake.SelectedItem = hand;
                }
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.Parity))
            {
                cParity.DataSource = Enum.GetValues(typeof(Parity));
                Parity parity;
                var    tmp = Parity.TryParse(MainSettings.Default.Parity, out parity);
                if (tmp)
                {
                    cParity.SelectedItem = parity;
                }
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.StopBits))
            {
                cStopBits.DataSource = Enum.GetValues(typeof(StopBits));
                StopBits stopBits;
                var      tmp = StopBits.TryParse(MainSettings.Default.StopBits, out stopBits);
                if (tmp)
                {
                    cStopBits.SelectedItem = stopBits;
                }
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.TimeOut.ToString()))
            {
                tTimeOut.Text = MainSettings.Default.TimeOut.ToString();
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.STX))
            {
                tSTX.Text = MainSettings.Default.STX;
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.ETX))
            {
                tETX.Text = MainSettings.Default.ETX;
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.DLE))
            {
                tDLE.Text = MainSettings.Default.DLE;
            }
            if (!string.IsNullOrWhiteSpace(MainSettings.Default.StartBitmapSign))
            {
                tSBitmap.Text = MainSettings.Default.StartBitmapSign;
            }

            tConnected.Text = "Niepołączony z matą.";
        }
Exemple #3
0
        public enum Mode : short { GPIB = 1, SERIAL, USBRAW, USBTMC, TCPIP } //https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/enum
        public static void ParseArgs(string[] args) //https://mail.gnome.org/archives/commits-list/2012-December/msg00139.html
        {
            bool showHelp = false;
            var  p        = new OptionSet()
            {
                //

                //GPIB related
                { "G|useGPIB", "GPIB mode", v => GlobalVars.VISA_CLI_Option_CurrentMode = (short)Mode.GPIB },
                { "gpib|gpibBoardIndex=", "GPIB board index(Default 0)", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_GPIB_BoardIndex) },  //https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number
                { "pad|PrimaryAddress=", "primary address", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_GPIB_PrimaryAddress) },
                { "sad|SecondaryAddress=", "secondary address", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_GPIB_SecondaryAddress) },

                //COM related
                { "S|useSERIAL", "SERIAL mode", v => GlobalVars.VISA_CLI_Option_CurrentMode = (short)Mode.SERIAL },
                { "port|SerialPortNumber=", "Serial Port Number", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_Serial_PortNumber) },
                { "baud|BaudRate=", "Baud of Serial Port(Default 19200)", v => int.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialBaudRate) },
                { "data|DataBits=", "Data bits (Default 8)", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialDataBits) },
                { "stop|StopBits=", "Stop bits (Default 10)", v => StopBitType.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialStopBits) },
                { "parity|SerialParity=", "Serial Parity: NONE 0  Odd 1  Even 2 Mark 3 Space 4 (Default NONE)", v => Parity.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialParity) },
                { "flow|FlowControlTypes=", "Flow Control Types: NONE 0  XON/XOFF 1 (Default NONE)", v => FlowControlTypes.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialFlowControl) },
                { "stmR|SerialTerminationMethodWhenRead=", "Serial Termination Method When Read  : None 0   LastBit 1   TerminationCharacter 2   Break 3 (Default TerminationCharacter)", v => SerialTerminationMethod.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialTerminationMethodWhenRead) },
                { "stmW|SerialTerminationMethodWhenWrite=", "Serial Termination Method When Write : None 0   LastBit 1   TerminationCharacter 2   Break 3 (Default NONE)", v => SerialTerminationMethod.TryParse(v, out GlobalVars.VISA_CLI_Option_SerialTerminationMethodWhenWrite) },
                //{ "terminateW|TerminationCharactersOfWrite=", "Termination Characters of Serial  When Write (Default 0x0A(\"\\n\"))", v =>  GlobalVars.theWriteTerminationCharactersOfRS232 = Convert.ToByte(v,16) }, // --terminateW "" 时会产生异常,用 Byte.TryParse()
                //{ "terminateR|TerminationCharactersOfRead=",  "Termination Characters of Serial  When Read  (Default 0x0A(\"\\n\"))", v =>   GlobalVars.theReadTerminationCharactersOfRS232 = Convert.ToByte(v,16) },
                { "terminateW|TerminationCharactersOfWrite=", "Termination Characters of Serial  When Write (Default 0x0A(\"\\n\"))", v => Byte.TryParse(Regex.Replace(v, @"0[x,X]", ""), NumberStyles.HexNumber, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.theWriteTerminationCharactersOfRS232) }, //https://stackoverflow.com/questions/2801509/uint32-tryparse-hex-number-not-working/3570612#3570612     https://stackoverflow.com/questions/16117043/regular-expression-replace-in-c-sharp/16117150#16117150
                { "terminateR|TerminationCharactersOfRead=", "Termination Characters of Serial  When Read  (Default 0x0A(\"\\n\"))", v => Byte.TryParse(Regex.Replace(v, @"0[x,X]", ""), NumberStyles.HexNumber, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.theReadTerminationCharactersOfRS232) },


                //USBTMC  USB0::0x0699::0x0415::C022855::INSTR  少了等号=导致出现 解析为 USB0::0xvid::0xpid::sn::INSTR
                { "U|useUSBTMC", "USBTMC mode", v => GlobalVars.VISA_CLI_Option_CurrentMode = (short)Mode.USBTMC },
                { "usb|usbBoardIndex=", "USB board index(Default 0)", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_USB_BoardIndex) },
                { "vid|usbVID=", "USB Vendor ID", v => GlobalVars.VISA_CLI_Option_USB_VID = v },
                { "pid|usbPID=", "USB Model ID", v => GlobalVars.VISA_CLI_Option_USB_PID = v },
                { "sn|usbSerialNumber=", "USB Serial Number", v => GlobalVars.VISA_CLI_Option_USB_SerialNumber = v },
                { "raw|USBRAW", "USB Raw Mode", v => GlobalVars.VISA_CLI_Option_USB_Raw = v != null },

                //TCPIP  TCPIP0::192.168.1.2::inst0::INSTR
                { "T|useTCPIP", "TCPIP mode", v => GlobalVars.VISA_CLI_Option_CurrentMode = (short)Mode.TCPIP },
                { "tcpip|tcpipAdapterBoardIndex=", "TCPIP Adapter board index(Default 0)", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_TCPIP_BoardIndex) },
                { "ip|ipAddress=", "IP Address  or hostname of the device", v => GlobalVars.VISA_CLI_Option_TCPIP_IPAddressOrHostName = v },
                { "inst|instNumber=", "LAN Device Name :inst number ,(Default 0)", v => short.TryParse(v, out GlobalVars.VISA_CLI_Option_TCPIP_instNumber) },


                //Common
                { "C|cmdstr|CommandString=", "command(s) to send to the device", v => GlobalVars.VISA_CLI_Option_CommandString = v },
                { "W|write|JustWriteCommand", "just write (default)", v => GlobalVars.VISA_CLI_Option_JustWriteCommand = v != null },
                { "R|read|JustReadBack", "just read back", v => GlobalVars.VISA_CLI_Option_JustReadBack = v != null },
                { "Q|query|QueryCommand", "the command is a query command", v => GlobalVars.VISA_CLI_Option_isQueryCommand = v != null },
                { "D|debug|PrintDebugMessage", "prints debug messages", v => GlobalVars.VISA_CLI_Option_PrintDebugMessage = v != null },
                { "F|save2file|FileName=", "save the response binary data to specify file", v => GlobalVars.VISA_CLI_Option_FileNameOriginal = v },
                { "O|overwrite|OverwriteFile", "if file exist ,overwrite it", v => GlobalVars.VISA_CLI_Option_OverwriteFile = v != null },
                { "N|rBytes|ReadBackNbytes=", "how many bytes should be read back", v => Decimal.TryParse(v, NumberStyles.Any, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.VISA_CLI_Option_ReadBackNbytes) },
                { "E|skip|SkipFirstNbytes=", "skip first n bytes of received data", v => Decimal.TryParse(v, NumberStyles.Any, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.VISA_CLI_Option_SkipFirstNbytes) },
                { "L|ls|ListAllInstruments", "List All Instruments on interface", v => GlobalVars.VISA_CLI_Option_ListInstruments = v != null },
                { "X|dcl|DeviceClear", "Send Device Clear before commands send ", v => GlobalVars.VISA_CLI_Option_isDeviceClearSend = v != null },
                { "I|InteractiveMode", "Interactive Mode ", v => GlobalVars.VISA_CLI_Option_isInteractiveMode = v != null },
                { "t|timeout=", "Timeout milliseconds (Default 10000ms) ", v => Decimal.TryParse(v, NumberStyles.Any, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.VISASessionTimeout) },
                { "v|visa|VisaResourceName=", "VISA Resource Name, if this filed specified, Mode and model related parameters should be omitted", v => GlobalVars.VISAResourceName = v },
                { "m|mix|MixMode", "Support Mix string input, For example  string  '0x39\\37\\x398' will be prase as string '9798'.\\r \\n \\t... also will be treat as  Carriage Return / Line Feed / Tab ... \nThe priority of this switch is the highest, if both --MixMode  and --HexInputMode specified, string  '0x39\\37\\x398' will be prase as string '9798' at first ,then it will be treat as hex string and prase as string 'ùÿ'(ASCII table 0x97 0x98) finally", v => GlobalVars.VISA_CLI_Option_isMixMode = v != null },
                { "i|hi|Hi|HexInputMode", "Treat argument of --CommandString as hexadecimal, please  see option --MixMode for detail", v => GlobalVars.VISA_CLI_Option_isInputModeHex = v != null },
                { "o|ho|Ho|HexOutputMode", "Format output as hexadecimal string,this function ONLY applied on the standard output, when save to file,data will always be saved as raw binary", v => GlobalVars.VISA_CLI_Option_isOutputModeHex = v != null },
                { "c|clear|ClearConsole", "clear the console before each operation", v => GlobalVars.VISA_CLI_Option_isClearConsole = v != null },
                { "l|cycle|LoopCycle=", "The cycle of  loop mode (Default : 1 cycle ,operate once)", v => Decimal.TryParse(v, NumberStyles.Any, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.VISA_CLI_Option_CycleOfLoopMode) },
                { "delay|DelayTime=", "The delay time(milliseconds) in loop mode(Default 0 ms)", v => Decimal.TryParse(v, NumberStyles.Any, /*CultureInfo.CurrentCulture*/ null, out GlobalVars.VISA_CLI_Option_DelayTimeOfLoopMode_ms) },
                { "h|?|help", "show this message and exit.", v => showHelp = v != null },
            };

            try
            {
                p.Parse(args);
            }
            catch (OptionException e)
            {
                WriteExceptionMessageToConsole(System.Diagnostics.Process.GetCurrentProcess().ProcessName + e.Message + "\n" + "Try '" + System.AppDomain.CurrentDomain.FriendlyName + "--help' for more information.");
            }

            if (showHelp)
            {
                Console.WriteLine("Usage: {0} -G|-S  [MODE related options] -C \"command string\"", System.AppDomain.CurrentDomain.FriendlyName);// System.Diagnostics.Process.GetCurrentProcess().ProcessName); //https://stackoverflow.com/questions/37459509/how-to-get-the-exe-name-while-the-program-is-running/37459553#37459553
                Console.WriteLine();
                Console.WriteLine("Options:");
                p.WriteOptionDescriptions(Console.Out);
                System.Environment.Exit(-1);            //https://stackoverflow.com/questions/12977924/how-to-properly-exit-a-c-sharp-application
            }
        }