Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Jak správně převést syntaxi proměnných z VB do C#

Aktivity
Avatar
Daniel Semerák:28.5.2019 14:19

Zdravím.
Chci se vás zeptat, jakým způsobem si definuji správně proměnné v C#, když je mám ve VB.Net definované takto

Dim MSerialPort As Array
Dim MNeniText As DialogResult
Dim MString As String = ""
Dim MCestaPrikazu As String = "\Files\Prikazy.csv"
Dim MCestaRegistru As String = "\Files\Registry.csv"
Dim MDavka As New IO.StreamReader("\Files\Davka.txt", System.Text.Encoding.GetEncoding("windows-1250"))
Dim MHistoriePrikazu As New IO.StreamReader("\Files\HistoriePrikazu.txt", System.Text.Encoding.GetEncoding("windows-1250"))
Dim MLog As New IO.StreamReader("\Files\Log.txt", System.Text.Encoding.GetEncoding("windows-1250"))

Převádím zdrojový kod z VB do C#, abych se naučil C-éčko, se kterým se lépe uplatním v životě.
Jsem jen mírně pokročilý programátor, který se to teprve učí, tak hodně věcí je mi neznámých, ale právě proto se to chci naučit. :-)
Díky za vaše rady a tipy ...

 
Odpovědět
28.5.2019 14:19
Avatar
Odpovídá na Daniel Semerák
Michal Štěpánek:29.5.2019 15:18
datovy_typ Nazev;
//příklad
string Jmeno;
Nahoru Odpovědět
29.5.2019 15:18
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Nahoru Odpovědět
29.5.2019 15:22
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:30.5.2019 10:19

Jak již psali kluci výše :)

Array MSerialPort;   //Pozor na obecná pole, např. pole intů se deklaruje jako int[] MIntArray
DialogResult MNeniText;   //Bacha na středníky na koncích řádků (resp. příkazů)
string MString = "";    //string (malé s) je klíčové slovo zastupující "String
string MCestaPrikazu = "\Files\Prikazy.csv"
string MCestaRegistru = "\Files\Registry.csv"
IO.SystemReader MDavka = new IO.StreamReader("\Files\Davka.txt", System.Text.Encoding.GetEncoding("windows-1250"));    //konstruktor se volá až v rámci přiřazovacího operátoru
IO.SystemReader MHistoriePrikazu = new IO.StreamReader("\Files\HistoriePrikazu.txt", System.Text.Encoding.GetEncoding("windows-1250"));
IO.StreamReader MLog = new IO.StreamReader("\Files\Log.txt", System.Text.Encoding.GetEncoding("windows-1250"));
Editováno 30.5.2019 10:20
Nahoru Odpovědět
30.5.2019 10:19
Programátor je stroj k převodu kávy na kód.
Avatar
Daniel Semerák:30.5.2019 15:43

Díky za vaše rady a tipy.
Problém ale je, že ten MSerialPort ve VB jsem definoval jako Array, jenže tady v C# mi to prostě tak nebere. :-(
Týká se to detekování a získání celkového počtu dostupných COM portů.

MSerialPort = System.IO.Ports.SerialPort.GetPortNames();
                        TmrCasovac.Interval = 100;
                        CmbCisloPortu.Items.AddRange(MSerialPort);
                        ComSerialPort.Parity = System.IO.Ports.Parity.None;
                        ComSerialPort.DataBits = 7;
                        ComSerialPort.StopBits = System.IO.Ports.StopBits.One;
                        ComSerialPort.Handshake = System.IO.Ports.Handshake.None;
                        ComSerialPort.RtsEnable = true;

V tomhle vlákně mi název té proměnné Visual Studio hlásí jako chybu, že v aktuálním kontextu neexistuje a nevím jak to převést z VB do C#.

 
Nahoru Odpovědět
30.5.2019 15:43
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Daniel Semerák
vajkuba1234:30.5.2019 16:18

Zkousel jsi

string[] MSerialPorts = System.IO.Ports.SerialPort.GetPortNames();

?

Editováno 30.5.2019 16:19
Nahoru Odpovědět
30.5.2019 16:18
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
Daniel Semerák:30.5.2019 17:00

Díky za tip; tohle mě nenapadlo. :-)

Jenže ten kod to opravil jen na tomhle jediném řádku, ale ty ostatní nebere pořád v potaz, hlavně ne ten řádek:

CmbCisloPortu.Items.AddRange(MemSerialPort);

                        MemString = "<<< " + "/?!" + '\r' + '\n';
                        ComSerialPort.Write(MemString);
                        RtbLog.AppendText("*****" + " ");
                        RtbLog.AppendText(DateTime.Now.ToString("dddd, d. MMMM yyyy H:mm:ss"));
                        RtbLog.AppendText(" " + "*****");
                        RtbOdecetElektroMeru.AppendText(MemString);  //(ComSerialPort.ReadLine & vbCrLf);

Skoro si říkám, jestli vůbec má smysl to převádět do C# a učit se ho, když jsem už odkojený VB a tak nějak znám v něm syntaxi ... :-(

 
Nahoru Odpovědět
30.5.2019 17:00
Avatar
Odpovídá na Daniel Semerák
Michal Štěpánek:30.5.2019 21:14

Určitě se ti to vyplatí, protože na C# je na internetu mnohem více návodů a dokumentace než na VB, jednodušeji najdeš řešení problému v C# než ve VB, existuje taky mnohem větší komunita lidí, kteří tvoří v C# oproti VB, takže je větší šance na získání rady... Pokud už znáš VB, tak přechod ti zabere jen pár dní. Taky jsem to tak měl, začal jsem v "čtivějším" VB, ale pak jsem přešel na C# a nelituji...

Nahoru Odpovědět
30.5.2019 21:14
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Daniel Semerák:30.5.2019 21:29

:-)
Já vytvářím do práce program na čtení elektroměrů přes opto rozhraní.
Ve VB jsem dosáhl toho, že už mi funguje načtení při základní rychlosti 300Bd, jenže se mi nedaří docílit toho, abych už otevřenému portu poslal nový příkaz, že s ním chci komunikovat na vyšší mnou zadané rychlosti a také se mi nedaří ukončit správně vyčtení registrů. :-(
Vždy mi spadne celý program, když dojede nakonec.
Také musím pak dořešit posílání příkazů do elektroměru včetně zadaného hesla atd.
Tohle je právě ten důvod, proč jsem tady položil spoustu otázek k vyřešení, jelikož to dělám za pochodu, když se zároven učím celý jazyk, jelikož jsem se kdysi učil VB6.0, ale to je už hodně dávno. :-(
VB je sice hezký a jak sám říkáš čtivý jazyk, ale pro zlepšení do budoucna a při získávání nové práce je nedostačující a hodí se max. tak v Excelu.

 
Nahoru Odpovědět
30.5.2019 21:29
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Daniel Semerák
vajkuba1234:31.5.2019 15:37

Musis tam holt doplnit chybejici datove typy.

Nahoru Odpovědět
31.5.2019 15:37
No hope, no future, JUST WAR!
Avatar
HONZ4
Člen
Avatar
Odpovídá na Daniel Semerák
HONZ4:31.5.2019 20:11

Je zbytečné psát:
MemString = "<<< " + "/?!" + '\r' + '\n';
stačí:
MemString = "<<< /?!\r\n";

RtbLog.AppendTex­t("*****" + " ");
stačí:
RtbLog.AppendTex­t("***** ");
...

MCestaPrikazu = "\Files\Prika­zy.csv";

nahraď:
MCestaPrikazu = "\\Files\\Pri­kazy.csv";

nebo @"\Files\Prika­zy.csv";

Pokud nevíš jaký typ, lze použít i var ten se pak určí automaticky. (Já var nemám rád, protože většinou znepřehledňuje kód)

Pokud označíš název (metody, proměnné apd.) a stiskneš F12 přejdeš k definici.
Pokud označíš název a stiskneš F1 přejdeš k webové nápovědě.
Jinak pokud najedeš myší nad název, tak vyskočí info. (viz přiložený obrázek.)
Pro víc pomoci sem dávej víc kódu alespon celou metodu včetně závorek.

Editováno 31.5.2019 20:14
 
Nahoru Odpovědět
31.5.2019 20:11
Avatar
Daniel Semerák:1.6.2019 5:33

Také mi dělá problém tenhle řádek a další řádky ostatních ComboBoxů (podtrženo poslední ITEM). :-(

CmbCisloPortu.Text = Convert.ToString(CmbCisloPortu.Items.Item(0));

Ve VB jsem to měl takto:

CmbCisloPortu.Text = CStr(CmbCisloPortu.Items.Item(0));

... a jsou i další řádky, hlavně proměnné, které mám červeně podtržené, u kterých mi to hlásí, že v daném kontextu nejsou definované, přitom mám nastavené, že jsem definoval typ proměnné. :-(
Potřeboval bych celý kod a z toho pak už pochopím návaznosti.
Jednou jsem zkusil program Converter VBtoC nebo tak nějak se nazýval a část kodu mi stejně rozhodil, sic ve VB mi to bez problémů chodilo. :-(

 
Nahoru Odpovědět
1.6.2019 5:33
Avatar
HONZ4
Člen
Avatar
Odpovídá na Daniel Semerák
HONZ4:1.6.2019 19:26

Kdybys tu dal celý kód...
K položce pole se přistupuje přes hranaté závorky:

CmbCisloPortu.Text = CmbCisloPortu.Items[0].ToString(); //předpokládám, že CmbCisloPortu je combobox

Mimochodem u comboboxu stačí pro zobrazení textu položky:

CmbCisloPortu.SelectedIndex = 0;

Předtím než začneš cokoliv dělat v C# doporučuji projít nějakým tutoriálem. např

Editováno 1.6.2019 19:27
 
Nahoru Odpovědět
1.6.2019 19:26
Avatar
Daniel Semerák:1.6.2019 21:43

Zde je celý kod.
Snad se v tom někdo vyzná a možná mi ještě poradí, jak při komunikaci se zařízení z výchozí rychlosti CmbStartovaci­Rychlost se přepne na vyšší rychlost, kterou nastavím vybráním hodnoty z CmbRychlostKo­munikace. ;-)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO.Ports;
using System.Management;
using System.Resources;
using System.Configuration;
using System.Globalization;
using System.IO;

namespace Správce_ElektroMěrů
        {
        /// <summary>
        /// Represents a code behind for <see cref="FormEditor"/>.
        /// </summary>
                public partial class FrmSpravaElektroMeru : Form
                {
                /// <summary>
                /// Stores the original loaded content from a text file.
                /// </summary>
                Array MemSerialPort;
                private string content = string.Empty;
                string MemString = "";    //string (malé s) je klíčové slovo zastupující "String
                string MemCestaPrikazu = "\\Files\\Prikazy.csv";
                string MemCestaRegistru = "\\Files\\Registry.csv";
                System.IO.StreamReader MemDavka = new System.IO.StreamReader("\\Files\\Davka.txt", System.Text.Encoding.GetEncoding("windows-1250"));
                System.IO.StreamReader MemHistoriePrikazu = new System.IO.StreamReader("\\Files\\HistoriePrikazu.txt", System.Text.Encoding.GetEncoding("windows-1250"));
                System.IO.StreamReader MemLog = new System.IO.StreamReader("\\Files\\Log.txt", System.Text.Encoding.GetEncoding("windows-1250"));

                /// <summary>
                /// Constructs a new instance of <see cref="FormEditor"/>.
                /// </summary>

                public FrmSpravaElektroMeru()
                        {
                        InitializeComponent();
                        //Array MemSerialPort;
                        if (defaultInstance == null)
                                defaultInstance = this;
                        // Add any initialization after the InitializeComponent() call.
                        DataTable MPT = TextToTableP(MemCestaPrikazu, ';', true);
                        var with_1 = CmbSeznamPrikazu;
                                with_1.DisplayMember = "Příkaz";
                                with_1.ValueMember = "Číslo";
                                with_1.DataSource = new DataView(MPT);
                        var with_2 = TxtPopisPrikazu;
                                with_2.DataBindings.Add("text", CmbSeznamPrikazu.DataSource, "Popis");
                        DataTable MRT = TextToTableR(MemCestaRegistru, ';', true);
                        var with_3 = CmbSeznamRegistru;
                                with_3.DisplayMember = "Registr";
                                with_3.ValueMember = "Číslo";
                                with_3.DataSource = new DataView(MRT);
                        var with_4 = TxtPopisRegistru;
                                with_4.DataBindings.Add("text", CmbSeznamRegistru.DataSource, "Popis");
                        }

                private DataTable TextToTableP(string path, char delimitter, bool header)
                        {
                        string MemZdrojPrikazu = string.Empty;
                        DataTable MPT = new DataTable();
                        if (System.IO.File.Exists(path))
                                {
                                MemZdrojPrikazu = System.IO.File.ReadAllText(path, System.Text.Encoding.GetEncoding("windows-1250"));
                                }
                        else
                                {
                                throw (new System.IO.FileNotFoundException("Nenalezen soubor ..." + path, path));
                                }
                        string[] MemRadkyP = MemZdrojPrikazu.Split(System.Convert.ToString((new[] { Environment.NewLine })).ToCharArray(), StringSplitOptions.None);
                        for (int i = 0; i <= MemRadkyP[0].Split(delimitter).Length - 1; i++)
                                {
                                string MemSloupec = System.Convert.ToString(MemRadkyP[0].Split(delimitter)[i]);
                                MPT.Columns.Add(header ? MemSloupec : "column" + System.Convert.ToString(i + 1));
                                }
                        for (int i = (header ? 1 : 0); i <= MemRadkyP.Length - 1; i++)
                                {
                                DataRow MDR = MPT.NewRow();
                                for (int x = 0; x <= MemRadkyP[i].Split(delimitter).Length - 1; x++)
                                        {
                                        if (x <= MPT.Columns.Count - 1)
                                                {
                                                MDR[x] = MemRadkyP[i].Split(delimitter)[x];
                                                }
                                        else
                                                {
                                                throw (new Exception("Počet sloupců na řádek" + (i + (header ? 0 : 1)) + " je větší než množství sloupců v " + (header ? "hlavičce." : "první řádek.")));
                                                }
                                        }
                                MPT.Rows.Add(MDR);
                                }
                        return MPT;
                        }

                private DataTable TextToTableR(string path, char delimitter, bool header)
                        {
                        string MemZdrojRegistru = string.Empty;
                        DataTable MRT = new DataTable();
                        if (System.IO.File.Exists(path))
                                {
                                MemZdrojRegistru = System.IO.File.ReadAllText(path, System.Text.Encoding.GetEncoding("windows-1250"));
                                }
                        else
                                {
                                throw (new System.IO.FileNotFoundException("Nenalezen soubor ..." + path, path));
                                }
                        string[] MemRadkyR = MemZdrojRegistru.Split(System.Convert.ToString((new[] { Environment.NewLine })).ToCharArray(), StringSplitOptions.None);
                        for (int i = 0; i <= MemRadkyR[0].Split(delimitter).Length - 1; i++)
                                {
                                string MemSloupec = System.Convert.ToString(MemRadkyR[0].Split(delimitter)[i]);
                                MRT.Columns.Add(header ? MemSloupec : "column" + System.Convert.ToString(i + 1));
                                }
                        for (int i = (header ? 1 : 0); i <= MemRadkyR.Length - 1; i++)
                                {
                                DataRow mRR = MRT.NewRow();
                                for (int x = 0; x <= MemRadkyR[i].Split(delimitter).Length - 1; x++)
                                        {
                                        if (x <= MRT.Columns.Count - 1)
                                                {
                                                mRR[x] = MemRadkyR[i].Split(delimitter)[x];
                                                }
                                        else
                                                {
                                                throw (new Exception("Počet sloupců na řádek" + (i + (header ? 0 : 1)) + " je větší než množství sloupců v " + (header ? "hlavičce." : "první řádek.")));
                                                }
                                        }
                                MRT.Rows.Add(mRR);
                                }
                        return MRT;
                        }

                private void FormEditor_Load(object sender, EventArgs e)
                        {
                        //ActiveControl = groupBoxContent;
                        string[] MemSerialPorts = System.IO.Ports.SerialPort.GetPortNames();
                        TmrCasovac.Interval = 100;
                        CmbCisloPortu.Items.AddRange(MemSerialPort);
                        ComSerialPort.Parity = System.IO.Ports.Parity.None;
                        ComSerialPort.DataBits = 7;
                        ComSerialPort.StopBits = System.IO.Ports.StopBits.One;
                        ComSerialPort.Handshake = System.IO.Ports.Handshake.None;
                        ComSerialPort.RtsEnable = true;
                        RdbViditelneHeslo.Select();
                        RdbObeCisla.Select();
                        RdbCesky.Select();
                        CmbHeslo.Select();
                        CmbCisloPrikazu.Items.Add("1");
                        CmbCisloPrikazu.Items.Add("2");
                        CmbCisloPrikazu.Items.Add("3");
                        CmbCisloPrikazu.Items.Add("4");
                        CmbCisloPrikazu.Items.Add("5");
                        CmbCisloPrikazu.SelectedIndex = 0;
                        CmbRychlostStartovaci.Items.Add("    300");
                        CmbRychlostStartovaci.Items.Add("    600");
                        CmbRychlostStartovaci.Items.Add("  1200");
                        CmbRychlostStartovaci.Items.Add("  2400");
                        CmbRychlostStartovaci.Items.Add("  4800");
                        CmbRychlostStartovaci.Items.Add("  9600");
                        CmbRychlostStartovaci.Items.Add("19200");
                        CmbRychlostStartovaci.Text = CmbRychlostStartovaci.Items[0].ToString();
                        CmbRychlostStartovaci.SelectedIndex = 0;
                        CmbRychlostKomunikace.Items.Add("    300");
                        CmbRychlostKomunikace.Items.Add("    600");
                        CmbRychlostKomunikace.Items.Add("  1200");
                        CmbRychlostKomunikace.Items.Add("  2400");
                        CmbRychlostKomunikace.Items.Add("  4800");
                        CmbRychlostKomunikace.Items.Add("  9600");
                        CmbRychlostKomunikace.Items.Add("19200");
                        CmbRychlostKomunikace.Text = CmbRychlostKomunikace.Items[0].ToString();
                        CmbRychlostKomunikace.SelectedIndex = 4;
                        CmbCisloPortu.Text = CmbCisloPortu.Items[0].ToString();
                        CmbCisloPortu.SelectedIndex = 0;
                        CmbZpusobPrikazu.Items.Add("číst");
                        CmbZpusobPrikazu.Items.Add("spustit");
                        CmbZpusobPrikazu.Items.Add("zapsat");
                        CmbZpusobPrikazu.SelectedIndex = 0;
                        CmbHeslo.Items.Add("EEUPW1");
                        CmbHeslo.Items.Add("EONHU5");
                        CmbHeslo.Items.Add("MANSP5");
                        CmbHeslo.Items.Add("MINOS1");
                        CmbHeslo.Items.Add("MINOS5");
                        CmbHeslo.Items.Add("MKDEVN");
                        CmbHeslo.Items.Add("MONGOD");
                        CmbHeslo.Items.Add("SEEPW1");
                        CmbCisloPortu.Text = CmbCisloPortu.Items[0].ToString();
                        CmbHeslo.SelectedIndex = 1;
                        RtbDavka.Text = MemDavka.ReadToEnd;
                        MemDavka.Close();
                        RtbHistoriePrikazu.Text = MemHistoriePrikazu.ReadToEnd;
                        MemHistoriePrikazu.Close();
                        RtbLog.Text = MemLog.ReadToEnd;
                        MemLog.Close();
                        //načíst do ComboBoxu řádek (seznam posledních 10 řádků) z výše uvedeného souboru
                        CmbPosledniPrikazy.DataSource = System.IO.File.ReadAllLines("\\Files\\HistoriePrikazu.txt");
                        CmbPosledniPrikazy.AutoCompleteMode = AutoCompleteMode.Suggest;
                        CmbPosledniPrikazy.AutoCompleteSource = AutoCompleteSource.ListItems;
                        TslZprava.Text = "Program načten.";
                        // Try...
                        try
                                {
                                // to read all the text from the given text file with a given encoding.
                                // Default path: {Project}/bin/{Configuration}/lorem.txt
                                content = File.ReadAllText(path: "lorem.txt", encoding: Encoding.UTF8);

                                // Populate text box with loaded content.
                                textBoxContent.Text = content;
                                }

                        // If any I/O exception occurs...
                        catch (IOException exception)
                                {
                                // display friendly error message.
                                MessageBox.Show(
                                        text: exception.Message,
                                        caption: Text,
                                        buttons: MessageBoxButtons.OK,
                                        icon: MessageBoxIcon.Error);

                                // Stop the execution.
                                return;
                                }
                        }

                /// <summary>
                /// Handles closing event of the <see cref="FormEditor"/>.
                /// </summary>
                /// <param name="sender">The sender of the event, which is <see cref="FormEditor"/>.</param>
                /// <param name="e">Additional event arguments.</param>
                private void FormEditor_FormClosing(object sender, FormClosingEventArgs e)
                        {
                        // Stores any changes to the original content.
                        var modifiedContent = textBoxContent.Text;

                        // If there are no changes to the original content...
                        if (modifiedContent == content)
                                // stop the execution.
                                return;

                        // Otherwise, overwrite the existing file.
                        content = content.Replace(content, modifiedContent);

                        // "Save" a file.
                        File.WriteAllText("lorem.txt", content);
                        }

                private void CmbCisloPortu_SelectedIndexChanged(object sender, EventArgs e)
                        {
                        CmbCisloPortu.Sorted = true;
                        }

                private void ChkZabezpecenyOdecet_CheckedChanged(object sender, EventArgs e)
                        {
                        if (ChkZabezpecenyOdecet.Checked == true)
                                {
                                CmbRychlostStartovaci.SelectedIndex = 0;
                                }
                        else
                                CmbRychlostStartovaci.SelectedIndex = 4;
                        }

                private void BtnOdecetElektroMeru_Click(object sender, EventArgs e)
                        {
                        BtnOdecetElektroMeru.Enabled = false;
                        RtbOdecetElektroMeru.Clear();
                        TslZprava.Text = "Probíhá komunikace s ElektroMěrem ...";
                        TbcVystupDat.SelectedTab = TbpOdecetElektroMeru;
                        BtnKonecProgramu.Enabled = false;
                        BtnDoKlientModu.Enabled = false;
                        BtnPoslatCislo.Enabled = false;
                        BtnPoslatPrikaz.Enabled = false;
                        BtnPridatViditelneHeslo.Enabled = false;
                        BtnPridatSifrovaneHeslo.Enabled = false;
                        BtnObnovitSeznamPortu.Enabled = false;
                        BtnVymazatNapadeni.Enabled = false;
                        BtnZrusitSvorkovnici.Enabled = false;
                        BtnZrusitKryt.Enabled = false;
                        BtnDoTestModu.Enabled = false;
                        BtnZpracovatDavku.Enabled = false;
                        BtnNastaveniRTC.Enabled = false;
                        BtnKontrolaRTC.Enabled = false;
                        BtnKontrolaFW.Enabled = false;
                        BtnKontrolaRTC.Enabled = false;
                        BtnKontrolaCRC.Enabled = false;
                        //Zde bude kod, kde se vyčtou data z ElMěru a zobrazí se vpravo v okně "Odečet".
                        ComSerialPort.PortName = CmbCisloPortu.Text;
                        ComSerialPort.BaudRate = System.Convert.ToInt32(CmbRychlostStartovaci.Text);
                        ComSerialPort.Parity = Parity.Even;
                        ComSerialPort.StopBits = StopBits.One;
                        ComSerialPort.DataBits = 7;
                        ComSerialPort.Handshake = Handshake.None;
                        ComSerialPort.RtsEnable = true;
                        ComSerialPort.ReadTimeout = 3000;
                        ComSerialPort.Open();
                        MemString = "<<< /?!\r\n";
                        ComSerialPort.Write(MemString);
                        RtbLog.AppendText("***** ");
                        RtbLog.AppendText(DateTime.Now.ToString("dddd, d. MMMM yyyy H:mm:ss"));
                        RtbLog.AppendText(" *****");
                        RtbOdecetElektroMeru.AppendText(MemString);  //(ComSerialPort.ReadLine & vbCrLf);
                        RtbLog.Text = RtbLog.Text + Environment.NewLine + RtbOdecetElektroMeru.Text;
                        RtbLog.AppendText(Environment.NewLine);
                        BtnKonecProgramu.Enabled = true;
                        BtnDoKlientModu.Enabled = true;
                        BtnPoslatCislo.Enabled = true;
                        BtnPoslatPrikaz.Enabled = true;
                        BtnPridatViditelneHeslo.Enabled = true;
                        BtnPridatSifrovaneHeslo.Enabled = true;
                        BtnObnovitSeznamPortu.Enabled = true;
                        BtnVymazatNapadeni.Enabled = true;
                        BtnZrusitSvorkovnici.Enabled = true;
                        BtnZrusitKryt.Enabled = true;
                        BtnDoTestModu.Enabled = true;
                        BtnZpracovatDavku.Enabled = true;
                        BtnNastaveniRTC.Enabled = true;
                        BtnKontrolaRTC.Enabled = true;
                        BtnKontrolaFW.Enabled = true;
                        BtnKontrolaRTC.Enabled = true;
                        BtnKontrolaCRC.Enabled = true;
                        BtnOdecetElektroMeru.Enabled = true;
                        }

                public void CoMSerialPort_DataReceived(System.Object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
                        {
                        MemString = ComSerialPort.ReadLine();
                        //MString = CoMSerialPort.ReadExisting 'or SerialPort1.ReadLine
                        //RtbOdecetElektromeru.Text = MString
                        //this.Invoke(new (DoUpdate());
                        }

                public void DoUpdate()
                        {
                        RtbOdecetElektroMeru.Text = RtbOdecetElektroMeru.Text + ">>> " + MemString;
                        //CoMSerialPort.Close()
                        //CoMSerialPort.PortName = CmbCisloPortu.Text
                        ComSerialPort.BaudRate = 4800; //Int(CmbRychlostKomunikace.Text)

                        //CoMSerialPort.Open()
                        MemString = (char)6 + "<<< " + ("040" + '\r' + '\n');

                        ComSerialPort.Write(MemString);
                        //CoMSerialPort.Close()
                        TslZprava.Text = "Odečet dokončen.";
                        }

                private void BtnObnovitSeznamPortu_Click(object sender, EventArgs e)
                        {
                        CmbCisloPortu.Items.Clear();
                        string[] MemSerialPort = System.IO.Ports.SerialPort.GetPortNames();
                        CmbCisloPortu.Items.AddRange(MemSerialPort);
                        CmbCisloPortu.Text = Convert.ToString(CmbCisloPortu.Items.Item(0));
                        CmbCisloPortu.SelectedIndex = 0;
                        ComSerialPort.Parity = System.IO.Ports.Parity.None;
                        ComSerialPort.DataBits = 7;
                        ComSerialPort.StopBits = System.IO.Ports.StopBits.One;
                        ComSerialPort.Handshake = System.IO.Ports.Handshake.None;
                        ComSerialPort.RtsEnable = true;
                        }

                private void RdbViditelneHeslo_CheckedChanged(object sender, EventArgs e)
                        {
                        CmbHeslo.Enabled = true;
                        BtnPridatViditelneHeslo.Enabled = true;
                        BtnPridatSifrovaneHeslo.Enabled = false;
                        TxtViditelneHeslo.Enabled = true;
                        TxtSifrovaneHeslo.Enabled = false;
                        ChkZabezpecenyOdecet.Enabled = true;
                        }

                private void RdbSifrovaneHeslo_CheckedChanged(object sender, EventArgs e)
                        {
                        CmbHeslo.Enabled = true;
                        BtnPridatViditelneHeslo.Enabled = false;
                        BtnPridatSifrovaneHeslo.Enabled = true;
                        TxtViditelneHeslo.Enabled = false;
                        TxtSifrovaneHeslo.Enabled = true;
                        ChkZabezpecenyOdecet.Enabled = true;
                        }

                private void RdbBezHesla_CheckedChanged(object sender, EventArgs e)
                        {
                        CmbHeslo.Enabled = false;
                        BtnPridatViditelneHeslo.Enabled = false;
                        BtnPridatSifrovaneHeslo.Enabled = false;
                        TxtViditelneHeslo.Enabled = false;
                        TxtSifrovaneHeslo.Enabled = false;
                        ChkZabezpecenyOdecet.Enabled = false;
                        }

                private void BtnPridatViditelneHeslo_Click(object sender, EventArgs e)
                        {
                        if (TxtViditelneHeslo.Text == "")
                                MessageBox.Show(
                                        text: "Není vložené žádné heslo!",
                                        caption: "Nevyplněný text ...",
                                        buttons: MessageBoxButtons.OK,
                                        icon: MessageBoxIcon.Error);
                        else
                                CmbHeslo.Items.Add(TxtViditelneHeslo.Text);
                                TxtViditelneHeslo.Clear();
                        }

                private void BtnPridatSifrovaneHeslo_Click(object sender, EventArgs e)
                        {
                        if (TxtSifrovaneHeslo.Text == "")
                                MessageBox.Show(
                                        text: "Není vložené žádné heslo!",
                                        caption: "Nevyplněný text ...",
                                        buttons: MessageBoxButtons.OK,
                                        icon: MessageBoxIcon.Error);
                        else
                                CmbHeslo.Items.Add(TxtSifrovaneHeslo.Text);
                                TxtSifrovaneHeslo.Clear();
                        }

                private void CmbHeslo_SelectedIndexChanged(object sender, EventArgs e)
                        {
                        CmbHeslo.Sorted = true;
                        }

                private void RdbSerioveCislo_CheckedChanged(object sender, EventArgs e)
                        {
                        TxtSerioveCislo.Enabled = true;
                        TxtZakaznickeCislo.Enabled = false;
                        }

                private void RdbZakaznickeCislo_CheckedChanged(object sender, EventArgs e)
                        {
                        TxtZakaznickeCislo.Enabled = true;
                        TxtSerioveCislo.Enabled = false;
                        }

                private void RdbObeCisla_CheckedChanged(object sender, EventArgs e)
                        {
                        TxtSerioveCislo.Enabled = true;
                        TxtZakaznickeCislo.Enabled = true;
                        }

                private void BtnKonecProgramu_Click(object sender, EventArgs e)
                        {
                        if (true)
                                MessageBox.Show(
                                        text: "Opravdu chceš skončit?",
                                        caption: "Konec programu ...",
                                        buttons: MessageBoxButtons.OK,
                                        icon: MessageBoxIcon.Question);
                                {
                                Application.ExitThread();
                                }
                        }

                public void FrmSpravaElektroMeru_FormClosing(System.Object sender, System.Windows.Forms.FormClosingEventArgs e)
                        {
                        DialogResult MKonecProgramu;
                        MKonecProgramu = MessageBox.Show(
                                text: "Opravdu chceš skončit?",
                                caption: "Konec programu ...",
                                buttons: MessageBoxButtons.YesNo,
                                icon: MessageBoxIcon.Question);
                        if (MKonecProgramu == System.Windows.Forms.DialogResult.No)
                                {
                                e.Cancel = true;
                                }
                        else
                                {
                                Application.ExitThread();
                                }

                        RtbLog.Text = RtbLog.Text + Environment.NewLine + RtbOdecetElektroMeru.Text;
                        RtbLog.AppendText(Environment.NewLine);
                        System.IO.StreamWriter MCteniDavky = new System.IO.StreamWriter("\\Files\\Davka.txt", false, System.Text.Encoding.GetEncoding("windows-1250"));
                        MCteniDavky.Write(RtbDavka.Text);
                        MCteniDavky.Close();
                        System.IO.StreamWriter MCteniHistoriePrikazu = new System.IO.StreamWriter("\\Files\\HistoriePrikazu.txt", false, System.Text.Encoding.GetEncoding("windows-1250"));
                        MCteniHistoriePrikazu.Write(RtbHistoriePrikazu.Text);
                        MCteniHistoriePrikazu.Close();
                        System.IO.StreamWriter MCteniLogu = new System.IO.StreamWriter("\\Files\\Log.txt", false, System.Text.Encoding.GetEncoding("windows-1250"));
                        MCteniLogu.Write(RtbLog.Text);
                        MCteniLogu.Close();
                        }
                public void TxtSerioveCislo_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
                        {
                        if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
                                {
                                e.Handled = true;
                                }
                        }

                public void TxtZakaznickeCislo_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
                        {
                        if (!char.IsDigit(e.KeyChar) && !char.IsControl(e.KeyChar))
                                {
                                e.Handled = true;
                                }
                        }

                private void RdbCesky_CheckedChanged(object sender, EventArgs e)
                        {
                        this.Text = "Správa elektroměru - Danny (v1.0)";
                        BtnKonecProgramu.Text = "Konec programu";
                        BtnDoKlientModu.Text = "Do klient módu";
                        BtnKontrolaCRC.Text = "Kontrola CRC";
                        BtnKontrolaFW.Text = "Kontrola FW";
                        BtnKontrolaRTC.Text = "Kontrola RTC";
                        BtnNastaveniRTC.Text = "Nastavení RTC";
                        BtnVymazatNapadeni.Text = "Vymazat napadení";
                        BtnZrusitSvorkovnici.Text = "Zrušit svorkovnici";
                        BtnZrusitKryt.Text = "Zrušit kryt";
                        BtnDoTestModu.Text = "Do test módu";
                        BtnOdecetElektroMeru.Text = "Odečet ElektroMěru";
                        BtnPoslatCislo.Text = "Poslat číslo";
                        BtnPoslatPrikaz.Text = "Poslat příkaz";
                        BtnPridatSifrovaneHeslo.Text = "Přidat šifrované heslo";
                        BtnPridatViditelneHeslo.Text = "Přidat viditelné heslo";
                        BtnObnovitSeznamPortu.Text = "Obnovit seznam portů";
                        BtnZpracovatDavku.Text = "Zpracovat dávku";
                        GrpCOMx.Text = "COMx porty";
                        GrpHeslo.Text = "Heslo";
                        GrpParametrizace.Text = "Parametrizace";
                        GrpCislo.Text = "Sériové a Zákaznické číslo";
                        GrpLokalizace.Text = "Localizace";
                        ChkZabezpecenyOdecet.Text = "Zabezpečený odečet (přes 485)";
                        //LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenského 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Česká republika";
                        LblCisloPrikazu.Text = "Číslo příkazu:";
                        LblKulikSoft.Text = "Vyrobeno na základě KulíkoSoftu pro:";
                        LblZakaznickeCislo.Text = "Zákaznické číslo (max. 16 číslic):";
                        LblSerioveCislo.Text = "Sériové číslo (max. 10 číslic):";
                        LblPopisPrikazu.Text = "Popis příkazu:";
                        LblPopisRegistru.Text = "Popis registru:";
                        LblPosledniPrikazy.Text = "Poslední příkazy:";
                        LblRychlostKomunikace.Text = "Rychlost komunikace (Bd):";
                        LblRychlostStartovaci.Text = "Rychlost startovací (Bd):";
                        LblSeznamPrikazu.Text = "Seznam příkazů:";
                        LblSeznamRegistru.Text = "Seznam registrů:";
                        LblZpusobPrikazu.Text = "Způsob příkazu:";
                        RdbObeCisla.Text = "Obě čísla";
                        RdbSerioveCislo.Text = "Jen sériové číslo";
                        RdbSifrovaneHeslo.Text = "Šifrované heslo";
                        RdbViditelneHeslo.Text = "Viditelné heslo";
                        RdbBezHesla.Text = "Bez hesla";
                        RdbZakaznickeCislo.Text = "Jen zákaznické číslo";
                        TbpDavka.Text = "Dávka";
                        TbpHistoriePrikazu.Text = "Historie příkazů";
                        TbpLog.Text = "Log";
                        TbpOdecetElektroMeru.Text = "Odečet ElektroMěru";
                        //TslCredit.Text = "Vytvořil: Daniel Semerák (s pomocí: Josef Valkoun && Ing. Jan Holý)";
                        CmbZpusobPrikazu.Items.Clear();
                        if (RdbCesky.Checked == true)
                                {
                                CmbZpusobPrikazu.Items.Add("číst");
                                CmbZpusobPrikazu.Items.Add("spustit");
                                CmbZpusobPrikazu.Items.Add("zapsat");
                                CmbZpusobPrikazu.SelectedIndex = 0;
                                }

                        }
                }
        }
 
Nahoru Odpovědět
1.6.2019 21:43
Avatar
Daniel Semerák:1.6.2019 22:16

Zde je ještě celý dosavadní kod ve VB. ;-)
Také se mi nedaří ošetřit, když nemám dostupné žádný SerialPort, aby mi to nevyhodilo žádnou chybovou hlášku. :-(

Imports System
Imports System.Threading
Imports System.Threading.Thread
Imports System.Threading.Timer
Imports System.IO.Ports
Imports System.ComponentModel
Imports System.Management
Imports System.Text
Imports System.Collections.Generic
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Globalization
Imports System.Resources
Imports System.Configuration
Imports System.Xml

Public Class FrmSpravaElektroMeru
        Dim MSerialPort As Array
        Dim MNeniText As DialogResult
        Dim MString As String = ""
        Dim MCestaPrikazu As String = "\Files\Prikazy.csv"
        Dim MCestaRegistru As String = "\Files\Registry.csv"
        Dim MDavka As New IO.StreamReader("\Files\Davka.txt", System.Text.Encoding.GetEncoding("windows-1250"))
        Dim MHistoriePrikazu As New IO.StreamReader("\Files\HistoriePrikazu.txt", System.Text.Encoding.GetEncoding("windows-1250"))
        Dim MLog As New IO.StreamReader("\Files\Log.txt", System.Text.Encoding.GetEncoding("windows-1250"))

        Public Sub New()
                InitializeComponent()
                Dim MPT As DataTable = TextToTableP(MCestaPrikazu, ";", True)
                With CmbSeznamPrikazu
                        .DisplayMember = "Příkaz"
                        .ValueMember = "Číslo"
                        .DataSource = New DataView(MPT)
                End With
                With TxtPopisPrikazu
                        .DataBindings.Add("text", CmbSeznamPrikazu.DataSource, "Popis")
                End With
                Dim MRT As DataTable = TextToTableR(MCestaRegistru, ";", True)
                With CmbSeznamRegistru
                        .DisplayMember = "Registr"
                        .ValueMember = "Číslo"
                        .DataSource = New DataView(MRT)
                End With
                With TxtPopisRegistru
                        .DataBindings.Add("text", CmbSeznamRegistru.DataSource, "Popis")
                End With
        End Sub

        Private Function TextToTableP(ByVal path As String, ByVal delimitter As Char, ByVal header As Boolean) As DataTable
                Dim MZdrojPrikazu As String = String.Empty
                Dim MPT As DataTable = New DataTable
                If IO.File.Exists(path) Then
                        MemZdrojPrikazu = IO.File.ReadAllText(path, System.Text.Encoding.GetEncoding("windows-1250"))
                Else
                        Throw New IO.FileNotFoundException("Nenalezen soubor ..." & path, path)
                End If
                Dim MRadkyP() As String = MZdrojPrikazu.Split({Environment.NewLine}, StringSplitOptions.None)
                For i As Integer = 0 To MRadkyP(0).Split(delimitter).Length - 1
                        Dim MSloupec As String = MRadkyP(0).Split(delimitter)(i)
                        MPT.Columns.Add(If(header, MSloupec, "column" & i + 1))
                Next
                For i As Integer = If(header, 1, 0) To MRadkyP.Length - 1
                        Dim MDR As DataRow = MPT.NewRow
                        For x As Integer = 0 To MRadkyP(i).Split(delimitter).Length - 1
                                If x <= MPT.Columns.Count - 1 Then
                                        MDR(x) = MRadkyP(i).Split(delimitter)(x)
                                Else
                                        Throw New Exception("Počet sloupců na řádek" & i + If(header, 0, 1) & " je větší než množství sloupců v " & If(header, "hlavičce.", "první řádek."))
                                End If
                        Next
                        MPT.Rows.Add(MDR)
                Next
                Return MPT
        End Function

        Private Function TextToTableR(ByVal path As String, ByVal delimitter As Char, ByVal header As Boolean) As DataTable
                Dim MZdrojRegistru As String = String.Empty
                Dim MRT As DataTable = New DataTable
                If IO.File.Exists(path) Then
                        MZdrojRegistru = IO.File.ReadAllText(path, System.Text.Encoding.GetEncoding("windows-1250"))
                Else
                        Throw New IO.FileNotFoundException("Nenalezen soubor ..." & path, path)
                End If
                Dim MRadkyR() As String = MZdrojRegistru.Split({Environment.NewLine}, StringSplitOptions.None)
                For i As Integer = 0 To MRadkyR(0).Split(delimitter).Length - 1
                        Dim MSloupec As String = MRadkyR(0).Split(delimitter)(i)
                        MRT.Columns.Add(If(header, MSloupec, "column" & i + 1))
                Next
                For i As Integer = If(header, 1, 0) To MRadkyR.Length - 1
                        Dim mRR As DataRow = MRT.NewRow
                        For x As Integer = 0 To MRadkyR(i).Split(delimitter).Length - 1
                                If x <= MRT.Columns.Count - 1 Then
                                        mRR(x) = MRadkyR(i).Split(delimitter)(x)
                                Else
                                        Throw New Exception("Počet sloupců na řádek" & i + If(header, 0, 1) & " je větší než množství sloupců v " & If(header, "hlavičce.", "první řádek."))
                                End If
                        Next
                        MRT.Rows.Add(mRR)
                Next
                Return MRT
        End Function

        Private Sub FrmSpravaElektroMeru_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
                MSerialPort = IO.Ports.SerialPort.GetPortNames()
                TmrCasovac.Interval = 100
                CmbCisloPortu.Items.AddRange(MSerialPort)
                ComSerialPort.Parity = IO.Ports.Parity.None
                ComSerialPort.DataBits = 7
                ComSerialPort.StopBits = IO.Ports.StopBits.One
                ComSerialPort.Handshake = IO.Ports.Handshake.None
                ComSerialPort.RtsEnable = True
                RdbViditelneHeslo.Select()
                RdbObeCisla.Select()
                RdbCesky.Select()
                CmbHeslo.Select()
                CmbCisloPrikazu.Items.Add("1")
                CmbCisloPrikazu.Items.Add("2")
                CmbCisloPrikazu.Items.Add("3")
                CmbCisloPrikazu.Items.Add("4")
                CmbCisloPrikazu.Items.Add("5")
                CmbCisloPrikazu.SelectedIndex = 0
                CmbRychlostStartovaci.Items.Add("    300")
                CmbRychlostStartovaci.Items.Add("    600")
                CmbRychlostStartovaci.Items.Add("  1200")
                CmbRychlostStartovaci.Items.Add("  2400")
                CmbRychlostStartovaci.Items.Add("  4800")
                CmbRychlostStartovaci.Items.Add("  9600")
                CmbRychlostStartovaci.Items.Add("19200")
                CmbRychlostStartovaci.Text = CStr(CmbRychlostStartovaci.Items.Item(0))
                CmbRychlostStartovaci.SelectedIndex = 0
                CmbRychlostKomunikace.Items.Add("    300")
                CmbRychlostKomunikace.Items.Add("    600")
                CmbRychlostKomunikace.Items.Add("  1200")
                CmbRychlostKomunikace.Items.Add("  2400")
                CmbRychlostKomunikace.Items.Add("  4800")
                CmbRychlostKomunikace.Items.Add("  9600")
                CmbRychlostKomunikace.Items.Add("19200")
                CmbRychlostKomunikace.Text = CStr(CmbRychlostKomunikace.Items.Item(0))
                CmbRychlostKomunikace.SelectedIndex = 4
                CmbCisloPortu.Text = CStr(CmbCisloPortu.Items.Item(0))
                CmbCisloPortu.SelectedIndex = 0
                CmbZpusobPrikazu.Items.Add("číst")
                CmbZpusobPrikazu.Items.Add("spustit")
                CmbZpusobPrikazu.Items.Add("zapsat")
                CmbZpusobPrikazu.SelectedIndex = 0
                CmbHeslo.Items.Add("EEUPW1")
                CmbHeslo.Items.Add("EONHU5")
                CmbHeslo.Items.Add("MANSP5")
                CmbHeslo.Items.Add("MINOS1")
                CmbHeslo.Items.Add("MINOS5")
                CmbHeslo.Items.Add("MKDEVN")
                CmbHeslo.Items.Add("MONGOD")
                CmbHeslo.Items.Add("SEEPW1")
                'CmbCisloPortu.Text = CStr(CmbCisloPortu.Items.Item(0))
                CmbHeslo.SelectedIndex = 1
                RtbDavka.Text = MDavka.ReadToEnd
                MDavka.Close()
                RtbHistoriePrikazu.Text = MHistoriePrikazu.ReadToEnd
                MHistoriePrikazu.Close()
                RtbLog.Text = MLog.ReadToEnd
                MLog.Close()
                'načíst do ComboBoxu řádek (seznam posledních 10 řádků) z výše uvedeného souboru
                CmbPosledniPrikazy.DataSource = IO.File.ReadAllLines("\Files\HistoriePrikazu.txt")
                CmbPosledniPrikazy.AutoCompleteMode = AutoCompleteMode.Suggest
                CmbPosledniPrikazy.AutoCompleteSource = AutoCompleteSource.ListItems
                TslZprava.Text = "Program načten."
        End Sub

        Private Sub BtnOdecetElektroMeru_Click(sender As System.Object, e As System.EventArgs) Handles BtnOdecetElektroMeru.Click
                BtnOdecetElektroMeru.Enabled = False
                RtbOdecetElektromeru.Clear()
                TslZprava.Text = "Probíhá komunikace s ElektroMěrem ..."
                TbcVystupDat.SelectedTab = TbpOdecetElektromeru
                BtnKonecProgramu.Enabled = False
                BtnKonecVyrobnihoModu.Enabled = False
                BtnPoslatCislo.Enabled = False
                BtnPoslatPrikaz.Enabled = False
                BtnPridatViditelneHeslo.Enabled = False
                BtnPridatSifrovaneHeslo.Enabled = False
                BtnReFresh.Enabled = False
                BtnVymazatNapadeni.Enabled = False
                BtnZrusitSvorkovnici.Enabled = False
                BtnZrusitKryt.Enabled = False
                BtnDoTestModu.Enabled = False
                BtnZpracovatDavku.Enabled = False
                BtnNastavRTC.Enabled = False
                BtnKontrolaRTC.Enabled = False
                BtnKontrolaFW.Enabled = False
                BtnKontrolaRTC.Enabled = False
                BtnKontrolaCRC.Enabled = False
                'Zde bude kod, kde se vyčtou data z ElMěru a zobrazí se vpravo v okně "Odečet".
                ComSerialPort.PortName = CmbCisloPortu.Text
                ComSerialPort.BaudRate = Int(CmbRychlostStartovaci.Text)
                ComSerialPort.Parity = Parity.Even
                ComSerialPort.StopBits = StopBits.One
                ComSerialPort.DataBits = 7
                ComSerialPort.Handshake = Handshake.None
                ComSerialPort.RtsEnable = True
                ComSerialPort.ReadTimeout = 3000
                ComSerialPort.Open()
                MString = "<<< " & "/?!" + Chr(13) + Chr(10)
                ComSerialPort.Write(MString)
                RtbLog.AppendText("*****" & " ")
                RtbLog.AppendText(DateTime.Now.ToString("dddd, d. MMMM yyyy H:mm:ss"))
                RtbLog.AppendText(" " & "*****")
                RtbOdecetElektromeru.AppendText(MString)  '(ComSerialPort.ReadLine & vbCrLf)
                RtbLog.Text = RtbLog.Text & Environment.NewLine & RtbOdecetElektromeru.Text
                RtbLog.AppendText(Environment.NewLine)
                BtnKonecProgramu.Enabled = True
                BtnKonecVyrobnihoModu.Enabled = True
                BtnPoslatCislo.Enabled = True
                BtnPoslatPrikaz.Enabled = True
                BtnPridatViditelneHeslo.Enabled = True
                BtnPridatSifrovaneHeslo.Enabled = True
                BtnReFresh.Enabled = True
                BtnVymazatNapadeni.Enabled = True
                BtnZrusitSvorkovnici.Enabled = True
                BtnZrusitKryt.Enabled = True
                BtnDoTestModu.Enabled = True
                BtnZpracovatDavku.Enabled = True
                BtnNastavRTC.Enabled = True
                BtnKontrolaRTC.Enabled = True
                BtnKontrolaFW.Enabled = True
                BtnKontrolaRTC.Enabled = True
                BtnKontrolaCRC.Enabled = True
                BtnOdecetElektroMeru.Enabled = True
        End Sub

        Private Sub CoMSerialPort_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles ComSerialPort.DataReceived
                MString = ComSerialPort.ReadLine
                Me.Invoke(New EventHandler(AddressOf DoUpdate))
        End Sub

        Public Sub DoUpdate()
                RtbOdecetElektromeru.Text = RtbOdecetElektromeru.Text & ">>> " & MString
                'CoMSerialPort.Close()
                'TslZprava.Text = "Odečet dokončen."
        End Sub

        Private Sub Form1_FormClosed(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
                ComSerialPort.Close()
        End Sub

        Private Sub BtnPoslatPrikaz_Click(sender As Object, e As EventArgs) Handles BtnPoslatPrikaz.Click
                RtbOdecetElektromeru.Clear()
                TslZprava.Text = "Probíhá komunikace s ElektroMěrem ..."

                TslZprava.Text = "Příkaz poslán do ElektroMěru."
        End Sub

        Private Sub BtnKonecProgramu_Click(sender As System.Object, e As System.EventArgs) Handles BtnKonecProgramu.Click
                If MessageBox.Show("Opravdu chceš skončit?", "Konec programu ...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.Yes Then
                        Application.ExitThread()
                End If
        End Sub

        Private Sub FrmSpravaElektroMeru_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
                Dim MKonecProgramu As DialogResult
                MKonecProgramu = MessageBox.Show("Opravdu chceš skončit?", "Konec programu ...", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                If MKonecProgramu = Windows.Forms.DialogResult.No Then
                        e.Cancel = True
                Else
                        Application.ExitThread()
                End If
                RtbLog.Text = RtbLog.Text & Environment.NewLine & RtbOdecetElektromeru.Text
                RtbLog.AppendText(Environment.NewLine)
                Dim MCteniDavky As New IO.StreamWriter("\Files\Davka.txt", False, System.Text.Encoding.GetEncoding("windows-1250"))
                MCteniDavky.Write(RtbDavka.Text)
                MCteniDavky.Close()
                Dim MCteniHistoriePrikazu As New IO.StreamWriter("\Files\HistoriePrikazu.txt", False, System.Text.Encoding.GetEncoding("windows-1250"))
                MCteniHistoriePrikazu.Write(RtbHistoriePrikazu.Text)
                MCteniHistoriePrikazu.Close()
                Dim MCteniLogu As New IO.StreamWriter("\Files\Log.txt", False, System.Text.Encoding.GetEncoding("windows-1250"))
                MCteniLogu.Write(RtbLog.Text)
                MCteniLogu.Close()
        End Sub

        Private Sub BtnReFresh_Click(sender As System.Object, e As System.EventArgs) Handles BtnReFresh.Click
                CmbCisloPortu.Items.Clear()
                MSerialPort = IO.Ports.SerialPort.GetPortNames()
                CmbCisloPortu.Items.AddRange(MSerialPort)
                CmbCisloPortu.Text = CStr(CmbCisloPortu.Items.Item(0))
                CmbCisloPortu.SelectedIndex = 0
                ComSerialPort.Parity = IO.Ports.Parity.None
                ComSerialPort.DataBits = 7
                ComSerialPort.StopBits = IO.Ports.StopBits.One
                ComSerialPort.Handshake = IO.Ports.Handshake.None
                ComSerialPort.RtsEnable = True
        End Sub

        Private Sub Form_Unload(Cancel As Integer)
                ComSerialPort.Close()
        End Sub

        Private Sub BtnPridatViditelneHeslo_Click(sender As System.Object, e As System.EventArgs) Handles BtnPridatViditelneHeslo.Click
                If TxtViditelneHeslo.Text = "" Then
                        MNeniText = MessageBox.Show("Není vložené žádné heslo!", "Nevyplněný text ...", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Else
                        CmbHeslo.Items.Add(TxtViditelneHeslo.Text)
                        TxtViditelneHeslo.Clear()
                End If
        End Sub

        Private Sub BtnPridatSifraHeslo_Click(sender As System.Object, e As System.EventArgs) Handles BtnPridatSifrovaneHeslo.Click
                If TxtSifrovaneHeslo.Text = "" Then
                        MNeniText = MessageBox.Show("Není vložené žádné heslo!", "Nevyplněný text ...", MessageBoxButtons.OK, MessageBoxIcon.Error)
                Else
                        CmbHeslo.Items.Add(TxtSifrovaneHeslo.Text & "***")
                        '+ přidat do tohoto řádku a do závorek také příznak, aby text byl tučně
                        TxtSifrovaneHeslo.Clear()
                End If
        End Sub

        Private Sub RdbZadneHeslo_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdbZadneHeslo.CheckedChanged
                CmbHeslo.Enabled = False
                TxtSifrovaneHeslo.Enabled = False
                TxtViditelneHeslo.Enabled = False
                BtnPridatViditelneHeslo.Enabled = False
                BtnPridatSifrovaneHeslo.Enabled = False
                ChbZabezpecenyOdecet.Enabled = False
        End Sub

        Private Sub RdbViditelneHeslo_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdbViditelneHeslo.CheckedChanged
                CmbHeslo.Enabled = True
                BtnPridatViditelneHeslo.Enabled = True
                BtnPridatSifrovaneHeslo.Enabled = False
                TxtViditelneHeslo.Enabled = True
                TxtSifrovaneHeslo.Enabled = False
                ChbZabezpecenyOdecet.Enabled = True
        End Sub

        Private Sub RdbSifrovaneHeslo_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdbSifrovaneHeslo.CheckedChanged
                CmbHeslo.Enabled = True
                TxtViditelneHeslo.Enabled = False
                TxtSifrovaneHeslo.Enabled = True
                BtnPridatSifrovaneHeslo.Enabled = True
                BtnPridatViditelneHeslo.Enabled = False
                ChbZabezpecenyOdecet.Enabled = True
        End Sub

        Private Sub BtnVytvoritDavku_Click(sender As Object, e As EventArgs) Handles BtnZrusitSvorkovnici.Click
                TbcVystupDat.SelectedTab = TbpDavka
        End Sub

        Private Sub CmbCisloPortu_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CmbCisloPortu.SelectedIndexChanged
                CmbCisloPortu.Sorted = True
        End Sub

        Private Sub BtnZpracovatDavku_Click(sender As Object, e As EventArgs) Handles BtnZpracovatDavku.Click
                TbcVystupDat.SelectedTab = TbpDavka
        End Sub

        Private Sub RdbSerioveCislo_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdbSerioveCislo.CheckedChanged
                TxtZakaznickeCislo.Enabled = False
                TxtSerioveCislo.Enabled = True
        End Sub

        Private Sub RdbZakaznickeCislo_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdbZakaznickeCislo.CheckedChanged
                TxtSerioveCislo.Enabled = False
                TxtZakaznickeCislo.Enabled = True
        End Sub

        Private Sub RdbObeCisla_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RdbObeCisla.CheckedChanged
                TxtSerioveCislo.Enabled = True
                TxtZakaznickeCislo.Enabled = True
        End Sub

        Private Sub CmbHeslo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CmbHeslo.SelectedIndexChanged
                CmbHeslo.Sorted = True
        End Sub

        Private Sub CmbRychlostStartovaci_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles CmbRychlostStartovaci.SelectedIndexChanged
                CmbRychlostStartovaci.Sorted = True
        End Sub

        Private Sub CmbRychlostKomunikace_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CmbRychlostKomunikace.SelectedIndexChanged
                CmbRychlostKomunikace.Sorted = True
        End Sub

        Private Sub ChbZabezpecenyOdecet_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles ChbZabezpecenyOdecet.CheckedChanged
                If ChbZabezpecenyOdecet.Checked = True Then
                        CmbRychlostStartovaci.SelectedIndex = 4
                Else
                        CmbRychlostStartovaci.SelectedIndex = 0
                End If
        End Sub

        Private Sub TxtSerioveCislo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtSerioveCislo.KeyPress
                If Not Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
                        e.Handled = True
                End If
        End Sub

        Private Sub TxtZakaznickeCislo_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TxtZakaznickeCislo.KeyPress
                If Not Char.IsDigit(e.KeyChar) And Not Char.IsControl(e.KeyChar) Then
                        e.Handled = True
                End If
        End Sub

        Private Sub TmrCasovac_Tick(sender As Object, e As EventArgs) Handles TmrCasovac.Tick
                MString = Chr(6) + "040" + Chr(13) + Chr(10)
                ComSerialPort.ReadLine()
                'ComSerialPort.Close()
        End Sub

        Private Sub RdbEnglish_CheckedChanged(sender As Object, e As EventArgs) Handles RdbEnglish.CheckedChanged
                Me.Text = "Electricity meter management - Danny (v1.0)"
                BtnKonecProgramu.Text = "End of program"
                BtnKonecVyrobnihoModu.Text = "To client mode"
                BtnKontrolaCRC.Text = "CRC check"
                BtnKontrolaFW.Text = "FW check"
                BtnKontrolaRTC.Text = "RTC check"
                BtnNastavRTC.Text = "RTC Settings"
                BtnVymazatNapadeni.Text = ""
                BtnZrusitSvorkovnici.Text = ""
                BtnZrusitKryt.Text = ""
                BtnDoTestModu.Text = ""
                BtnOdecetElektroMeru.Text = "Electrometer reading"
                BtnPoslatCislo.Text = "Send number"
                BtnPoslatPrikaz.Text = "Send command"
                BtnPridatSifrovaneHeslo.Text = "Add an encrypted password"
                BtnPridatViditelneHeslo.Text = "Add a visible password"
                BtnReFresh.Text = "ReFresh port list"
                BtnZpracovatDavku.Text = "Process batch"
                GrpSerialPort.Text = "COMx ports"
                GrpHeslo.Text = "PassWord"
                GrpPrikazy.Text = "Commands"
                GrpCislo.Text = "Serial and Customer Number"
                GrpLokalizace.Text = "Localization"
                ChbZabezpecenyOdecet.Text = "Secure reading (over 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenskeho 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Czech republic"
                LblCisloPrikazu.Text = "Command number:"
                LblKulikSoft.Text = "Manufactured under KulikoSoft for:"
                LblMaxCN.Text = "Customer number (max. 16 digits):"
                LblMaxSN.Text = "Serial number (max. 10 digits):"
                LblPopisPrikazu.Text = "Command Description:"
                LblPopisRegistru.Text = "Description of the registry:"
                LblPosledniPrikazy.Text = "Last commands:"
                LblRychlostKomunikace.Text = "Communication Speed (Bd):"
                LblRychlostStartovaci.Text = "Starter Speed (Bd):"
                LblSeznamPrikazu.Text = "List of commands:"
                LblSeznamRegistru.Text = "List of registers:"
                LblZpusobPrikazu.Text = "Command type:"
                RdbObeCisla.Text = "Both numbers"
                RdbSerioveCislo.Text = "Only the serial number"
                RdbSifrovaneHeslo.Text = "Encrypted password"
                RdbViditelneHeslo.Text = "Visible password"
                RdbZadneHeslo.Text = "No password"
                RdbZakaznickeCislo.Text = "Customer number only"
                TbpDavka.Text = "Batch"
                TbpHistoriePrikazu.Text = "Command history"
                TbpLog.Text = "Log"
                TbpOdecetElektromeru.Text = "Electrometer reading"
                TslCredit.Text = "Created by: Daniel Semerák (with the help of: Josef Valkoun && Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbEnglish.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("read")
                        CmbZpusobPrikazu.Items.Add("execute")
                        CmbZpusobPrikazu.Items.Add("write")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbCesky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbCesky.CheckedChanged
                Me.Text = "Správa elektroměru - Danny (v1.0)"
                BtnKonecProgramu.Text = "Konec programu"
                BtnKonecVyrobnihoModu.Text = "Do klient módu"
                BtnKontrolaCRC.Text = "Kontrola CRC"
                BtnKontrolaFW.Text = "Kontrola FW"
                BtnKontrolaRTC.Text = "Kontrola RTC"
                BtnNastavRTC.Text = "Nastavení RTC"
                BtnVymazatNapadeni.Text = "Vymazat napadení"
                BtnZrusitSvorkovnici.Text = "Zrušit svorkovnici"
                BtnZrusitKryt.Text = "Zrušit kryt"
                BtnDoTestModu.Text = "Do test módu"
                BtnOdecetElektroMeru.Text = "Odečet ElektroMěru"
                BtnPoslatCislo.Text = "Poslat číslo"
                BtnPoslatPrikaz.Text = "Poslat příkaz"
                BtnPridatSifrovaneHeslo.Text = "Přidat šifrované heslo"
                BtnPridatViditelneHeslo.Text = "Přidat viditelné heslo"
                BtnReFresh.Text = "Obnovit seznam portů"
                BtnZpracovatDavku.Text = "Zpracovat dávku"
                GrpSerialPort.Text = "COMx porty"
                GrpHeslo.Text = "Heslo"
                GrpPrikazy.Text = "Parametrizace"
                GrpCislo.Text = "Sériové a Zákaznické číslo"
                GrpLokalizace.Text = "Localizace"
                ChbZabezpecenyOdecet.Text = "Zabezpečený odečet (přes 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenského 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Česká republika"
                LblCisloPrikazu.Text = "Číslo příkazu:"
                LblKulikSoft.Text = "Vyrobeno na základě KulíkoSoftu pro:"
                LblMaxCN.Text = "Zákaznické číslo (max. 16 číslic):"
                LblMaxSN.Text = "Sériové číslo (max. 10 číslic):"
                LblPopisPrikazu.Text = "Popis příkazu:"
                LblPopisRegistru.Text = "Popis registru:"
                LblPosledniPrikazy.Text = "Poslední příkazy:"
                LblRychlostKomunikace.Text = "Rychlost komunikace (Bd):"
                LblRychlostStartovaci.Text = "Rychlost startovací (Bd):"
                LblSeznamPrikazu.Text = "Seznam příkazů:"
                LblSeznamRegistru.Text = "Seznam registrů:"
                LblZpusobPrikazu.Text = "Způsob příkazu:"
                RdbObeCisla.Text = "Obě čísla"
                RdbSerioveCislo.Text = "Jen sériové číslo"
                RdbSifrovaneHeslo.Text = "Šifrované heslo"
                RdbViditelneHeslo.Text = "Viditelné heslo"
                RdbZadneHeslo.Text = "Bez hesla"
                RdbZakaznickeCislo.Text = "Jen zákaznické číslo"
                TbpDavka.Text = "Dávka"
                TbpHistoriePrikazu.Text = "Historie příkazů"
                TbpLog.Text = "Log"
                TbpOdecetElektromeru.Text = "Odečet ElektroMěru"
                TslCredit.Text = "Vytvořil: Daniel Semerák (s pomocí: Josef Valkoun && Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbCesky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("číst")
                        CmbZpusobPrikazu.Items.Add("spustit")
                        CmbZpusobPrikazu.Items.Add("zapsat")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbMadarsky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbMadarsky.CheckedChanged
                Me.Text = "Villamosenergia-mérők kezelése - Danny (v1.0)"
                BtnKonecProgramu.Text = "A program vége"
                BtnKonecVyrobnihoModu.Text = "Az ügyfélmódhoz"
                BtnKontrolaCRC.Text = "CRC ellenőrzés"
                BtnKontrolaFW.Text = "FW ellenőrzés"
                BtnKontrolaRTC.Text = "RTC ellenőrzés"
                BtnNastavRTC.Text = "RTC beállítás"
                BtnVymazatNapadeni.Text = ""
                BtnZrusitSvorkovnici.Text = ""
                BtnZrusitKryt.Text = ""
                BtnDoTestModu.Text = ""
                BtnOdecetElektroMeru.Text = "Mérőóra levonása"
                BtnPoslatCislo.Text = "Szám küldése"
                BtnPoslatPrikaz.Text = "Parancs küldése"
                BtnPridatSifrovaneHeslo.Text = "Titkosított jelszó hozzáadása"
                BtnPridatViditelneHeslo.Text = "Látható jelszó hozzáadása"
                BtnReFresh.Text = "Portlista megnyitása"
                BtnZpracovatDavku.Text = "Az adag feldogozása"
                GrpSerialPort.Text = "COMx portok"
                GrpHeslo.Text = "Jelszó"
                GrpPrikazy.Text = "Paraméterezés"
                GrpCislo.Text = "Soros és Ügyfélazonosító"
                GrpLokalizace.Text = "Lokalizáció"
                ChbZabezpecenyOdecet.Text = "Biztonságos olvasás (több mint 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenskeho 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Czech republic"
                LblCisloPrikazu.Text = "Rendelési szám:"
                LblKulikSoft.Text = "KulíkoSoft alatt gyártva:"
                LblMaxCN.Text = "Ügyfél száma (max. 16 szám):"
                LblMaxSN.Text = "Sorszám (max. 10 szám):"
                LblPopisPrikazu.Text = "Parancsleírás:"
                LblPopisRegistru.Text = "A rendszerleíró adatbázis leírása:"
                LblPosledniPrikazy.Text = "Utolsó parancsok:"
                LblRychlostKomunikace.Text = "Kommunikációs sebesség (Bd):"
                LblRychlostStartovaci.Text = "Indítási sebesség (Bd):"
                LblSeznamPrikazu.Text = "A parancsok listája:"
                LblSeznamRegistru.Text = "Az adatdatabázis listája:"
                LblZpusobPrikazu.Text = "Parancs típusa:"
                RdbObeCisla.Text = "Mindkét szám"
                RdbSerioveCislo.Text = "Csak sorozatszám"
                RdbSifrovaneHeslo.Text = "Titkosított jelszó"
                RdbViditelneHeslo.Text = "Látható jelszó"
                RdbZadneHeslo.Text = "Nincs jelszó"
                RdbZakaznickeCislo.Text = "Csak ügyfélszám"
                TbpDavka.Text = "Tétel"
                TbpHistoriePrikazu.Text = "Parancstörténet"
                TbpLog.Text = "Fakitermelés"
                TbpOdecetElektromeru.Text = "Mérőóra levonása"
                TslCredit.Text = "Készítette: Daniel Semerák (a következők segítségével: Josef Valkoun & Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbMadarsky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("olvasni")
                        CmbZpusobPrikazu.Items.Add("elindítani")
                        CmbZpusobPrikazu.Items.Add("beírni")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbLitevsky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbLitevsky.CheckedChanged
                Me.Text = "Elektros skaitiklių valdymas - Danny (v1.0)"
                BtnKonecProgramu.Text = "Programos pabaiga"
                BtnKonecVyrobnihoModu.Text = "Į kliento režimą"
                BtnKontrolaCRC.Text = "CRC patikrinimas"
                BtnKontrolaFW.Text = "FW patikrinimas"
                BtnKontrolaRTC.Text = "RTC patikrinimas"
                BtnNastavRTC.Text = "RTC nustatymai"
                BtnVymazatNapadeni.Text = "Vymazat napadení"
                BtnZrusitSvorkovnici.Text = "Zrušit svorkovnici"
                BtnZrusitKryt.Text = "Zrušit kryt"
                BtnDoTestModu.Text = "Do test módu"
                BtnOdecetElektroMeru.Text = "Elektrometro rodmenys"
                BtnPoslatCislo.Text = "Siųsti numerį"
                BtnPoslatPrikaz.Text = "Siųsti komandą"
                BtnPridatSifrovaneHeslo.Text = "Pridėkite šifruotą slaptažodį"
                BtnPridatViditelneHeslo.Text = "Pridėti matomą slaptažodį"
                BtnReFresh.Text = "Atstatyti uosto sąrašą"
                BtnZpracovatDavku.Text = "Proceso partija"
                GrpSerialPort.Text = "COMx prievadai"
                GrpHeslo.Text = "Heslo"
                GrpPrikazy.Text = "Parametrizavimas"
                GrpCislo.Text = "Serijos ir Kliento ID"
                GrpLokalizace.Text = "Lokalizavimas"
                ChbZabezpecenyOdecet.Text = "Saugus skaitymas (virš 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenskeho 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Czech republic"
                LblCisloPrikazu.Text = "Užsakymo numeris:"
                LblKulikSoft.Text = "Pagaminta pagal KulikoSoft:"
                LblMaxCN.Text = "Kliento numeris (maks. 16 skaitmenų):"
                LblMaxSN.Text = "Serijos numeris (maks. 10 skaitmenų):"
                LblPopisPrikazu.Text = "Komandų aprašymas:"
                LblPopisRegistru.Text = "Registro aprašymas:"
                LblPosledniPrikazy.Text = "Paskutinės komandos:"
                LblRychlostKomunikace.Text = "Ryšio greitis (Bd):"
                LblRychlostStartovaci.Text = "Starterio greitis (Bd):"
                LblSeznamPrikazu.Text = "Komandų sąrašas:"
                LblSeznamRegistru.Text = "Registrų sąrašas:"
                LblZpusobPrikazu.Text = "Komandos tipas:"
                RdbObeCisla.Text = "Abu numeriai"
                RdbSerioveCislo.Text = "Tiesiog serijos numeris"
                RdbSifrovaneHeslo.Text = "Šifruotas slaptažodis"
                RdbViditelneHeslo.Text = "Matomas slaptažodis"
                RdbZadneHeslo.Text = "Nėra slaptažodžio"
                RdbZakaznickeCislo.Text = "Tik kliento numeris"
                TbpDavka.Text = "Dozė"
                TbpHistoriePrikazu.Text = "Komandų istorija"
                TbpLog.Text = "Registravimas"
                TbpOdecetElektromeru.Text = "Elektrometro rodmenys"
                TslCredit.Text = "Sukūrė: Daniel Semerák (padedant: Josef Valkoun && Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbLitevsky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("lasīt")
                        CmbZpusobPrikazu.Items.Add("palaist")
                        CmbZpusobPrikazu.Items.Add("reģistrēties")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbPolsky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbPolsky.CheckedChanged
                Me.Text = "Zarządzanie licznikiem energii elektrycznej - Danny (v1.0)"
                BtnKonecProgramu.Text = "Koniec programu"
                BtnKonecVyrobnihoModu.Text = "Do trybu klienta"
                BtnKontrolaCRC.Text = "Kontrola CRC"
                BtnKontrolaFW.Text = "Kontrola FW"
                BtnKontrolaRTC.Text = "Kontrola RTC"
                BtnNastavRTC.Text = "Ustawienia RTC"
                BtnVymazatNapadeni.Text = ""
                BtnZrusitSvorkovnici.Text = ""
                BtnZrusitKryt.Text = ""
                BtnDoTestModu.Text = ""
                BtnOdecetElektroMeru.Text = "Odczyt elektrometru"
                BtnPoslatCislo.Text = "Wyślij numer"
                BtnPoslatPrikaz.Text = "Wyślij polecenie"
                BtnPridatSifrovaneHeslo.Text = "Dodaj zaszyfrowane hasło"
                BtnPridatViditelneHeslo.Text = "Dodaj widoczne hasło"
                BtnReFresh.Text = "Zresetuj listę portów"
                BtnZpracovatDavku.Text = "Przetwarzaj partię"
                GrpSerialPort.Text = "Porty COMx"
                GrpHeslo.Text = "Hasło"
                GrpPrikazy.Text = "Parametryzacja"
                GrpCislo.Text = "Numer seryjny i Identyfikator klienta"
                GrpLokalizace.Text = "Lokalizacja"
                ChbZabezpecenyOdecet.Text = "Bezpieczny odczyt (ponad 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenskeho 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Czech republic"
                LblCisloPrikazu.Text = "Numer zamówienia:"
                LblKulikSoft.Text = "Wyprodukowano pod KulikoSoft dla:"
                LblMaxCN.Text = "Numer klienta (maks. 16 cyfr):"
                LblMaxSN.Text = "Numer seryjny (maks. 10 cyfr):"
                LblPopisPrikazu.Text = "Opis polecenia:"
                LblPopisRegistru.Text = "Opis rejestru:"
                LblPosledniPrikazy.Text = "Ostatnie polecenia:"
                LblRychlostKomunikace.Text = "Szybkość komunikacji (Bd):"
                LblRychlostStartovaci.Text = "Prędkość startowa (Bd):"
                LblSeznamPrikazu.Text = "Lista poleceń:"
                LblSeznamRegistru.Text = "Lista rejestrów:"
                LblZpusobPrikazu.Text = "Typ polecenia:"
                RdbObeCisla.Text = "Obie liczby"
                RdbSerioveCislo.Text = "Tylko numer seryjny"
                RdbSifrovaneHeslo.Text = "Zaszyfrowane hasło"
                RdbViditelneHeslo.Text = "Widoczne hasło"
                RdbZadneHeslo.Text = "Brak hasła"
                RdbZakaznickeCislo.Text = "Tylko numer klienta"
                TbpDavka.Text = "Dawka"
                TbpHistoriePrikazu.Text = "Historia dowodzenia"
                TbpLog.Text = "Logowanie"
                TbpOdecetElektromeru.Text = "Odczyt elektrometru"
                TslCredit.Text = "Stworzone przez: Daniel Semerák (z pomocą: Josef Valkoun && Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbPolsky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("czytać")
                        CmbZpusobPrikazu.Items.Add("biegać")
                        CmbZpusobPrikazu.Items.Add("zapisz się")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbMakedonsky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbMakedonsky.CheckedChanged
                Me.Text = "Извештај за електрометрија - Данни (v1.0)"
                BtnKonecProgramu.Text = "Крај на програмата"
                BtnKonecVyrobnihoModu.Text = "На клиентски режим"
                BtnKontrolaCRC.Text = "Проверка на CRC"
                BtnKontrolaFW.Text = "Проверка на FW"
                BtnKontrolaRTC.Text = "Проверка на RTC"
                BtnNastavRTC.Text = "Подесувања RTC"
                BtnVymazatNapadeni.Text = ""
                BtnZrusitSvorkovnici.Text = ""
                BtnZrusitKryt.Text = ""
                BtnDoTestModu.Text = ""
                BtnOdecetElektroMeru.Text = "Ел-метриско читање"
                BtnPoslatCislo.Text = "Испрати број"
                BtnPoslatPrikaz.Text = "Испрати команда"
                BtnPridatSifrovaneHeslo.Text = "Додајте шифрирана лозинка"
                BtnPridatViditelneHeslo.Text = "Додајте видлива лозинка"
                BtnReFresh.Text = "Ресетирај листа на порта"
                BtnZpracovatDavku.Text = "Процесна серија"
                GrpSerialPort.Text = "COMx пристаништа"
                GrpHeslo.Text = "Лозинка"
                GrpPrikazy.Text = "Параметризација"
                GrpCislo.Text = "Сериски и Kориснички проект"
                GrpLokalizace.Text = "Локализација"
                ChbZabezpecenyOdecet.Text = "Безбедно читање (над 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenskeho 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Czech republic"
                LblCisloPrikazu.Text = "Број за нарачка:"
                LblKulikSoft.Text = "Произведени под KulíkoSoft за:"
                LblMaxCN.Text = "Број на купувач (максимум 16 цифри):"
                LblMaxSN.Text = "Сериски број (максимум 10 цифри):"
                LblPopisPrikazu.Text = "Опис на команда:"
                LblPopisRegistru.Text = "Опис на регистарот:"
                LblPosledniPrikazy.Text = "Последни команди:"
                LblRychlostKomunikace.Text = "Брзина на комуникација (Bd):"
                LblRychlostStartovaci.Text = "Брзина на ѕвезда (Bd):"
                LblSeznamPrikazu.Text = "Листа на команди:"
                LblSeznamRegistru.Text = "Листа на регистри:"
                LblZpusobPrikazu.Text = "Вид на команда:"
                RdbObeCisla.Text = "Двата броја"
                RdbSerioveCislo.Text = "Само сериски број"
                RdbSifrovaneHeslo.Text = "Шифрирана лозинка"
                RdbViditelneHeslo.Text = "Видлива лозинка"
                RdbZadneHeslo.Text = "Нема лозинка"
                RdbZakaznickeCislo.Text = "Само бројот на купувачи"
                TbpDavka.Text = "Серија"
                TbpHistoriePrikazu.Text = "Историја на команда"
                TbpLog.Text = "Пријавување"
                TbpOdecetElektromeru.Text = "Ел-метриско читање"
                TslCredit.Text = "Создаден од: Даниел Семерак (со помош на: Јозеф Валкоун и Ing. Јан Холи)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbMakedonsky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("прочитај")
                        CmbZpusobPrikazu.Items.Add("кандидира")
                        CmbZpusobPrikazu.Items.Add("запиши")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbBulharsky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbBulharsky.CheckedChanged
                Me.Text = "Správa elektroměru - Danny (v1.0)"
                BtnKonecProgramu.Text = "Konec programu"
                BtnKonecVyrobnihoModu.Text = "Do klient módu"
                BtnKontrolaCRC.Text = "Kontrola CRC"
                BtnKontrolaFW.Text = "Kontrola FW"
                BtnKontrolaRTC.Text = "Kontrola RTC"
                BtnNastavRTC.Text = "Nastavení RTC"
                BtnVymazatNapadeni.Text = "Vymazat napadení"
                BtnZrusitSvorkovnici.Text = "Zrušit svorkovnici"
                BtnZrusitKryt.Text = "Zrušit kryt"
                BtnDoTestModu.Text = "Do test módu"
                BtnOdecetElektroMeru.Text = "Odečet ElektroMěru"
                BtnPoslatCislo.Text = "Poslat číslo"
                BtnPoslatPrikaz.Text = "Poslat příkaz"
                BtnPridatSifrovaneHeslo.Text = "Přidat šifrované heslo"
                BtnPridatViditelneHeslo.Text = "Přidat viditelné heslo"
                BtnReFresh.Text = "Obnovit seznam portů"
                BtnZpracovatDavku.Text = "Zpracovat dávku"
                GrpSerialPort.Text = "COMx porty"
                GrpHeslo.Text = "Heslo"
                GrpPrikazy.Text = "Parametrizace"
                GrpCislo.Text = "Sériové a Zákaznické číslo"
                GrpLokalizace.Text = "Localizace"
                ChbZabezpecenyOdecet.Text = "Zabezpečený odečet (přes 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenského 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Česká republika"
                LblCisloPrikazu.Text = "Číslo příkazu:"
                LblKulikSoft.Text = "Vyrobeno na základě KulíkoSoftu pro:"
                LblMaxCN.Text = "Zákaznické číslo (max. 16 číslic):"
                LblMaxSN.Text = "Sériové číslo (max. 10 číslic):"
                LblPopisPrikazu.Text = "Popis příkazu:"
                LblPopisRegistru.Text = "Popis registru:"
                LblPosledniPrikazy.Text = "Poslední příkazy:"
                LblRychlostKomunikace.Text = "Rychlost komunikace (Bd):"
                LblRychlostStartovaci.Text = "Rychlost startovací (Bd):"
                LblSeznamPrikazu.Text = "Seznam příkazů:"
                LblSeznamRegistru.Text = "Seznam registrů:"
                LblZpusobPrikazu.Text = "Způsob příkazu:"
                RdbObeCisla.Text = "Obě čísla"
                RdbSerioveCislo.Text = "Jen sériové číslo"
                RdbSifrovaneHeslo.Text = "Šifrované heslo"
                RdbViditelneHeslo.Text = "Viditelné heslo"
                RdbZadneHeslo.Text = "Bez hesla"
                RdbZakaznickeCislo.Text = "Jen zákaznické číslo"
                TbpDavka.Text = "Dávka"
                TbpHistoriePrikazu.Text = "Historie příkazů"
                TbpLog.Text = "Log"
                TbpOdecetElektromeru.Text = "Odečet ElektroMěru"
                TslCredit.Text = "Vytvořil: Daniel Semerák (s pomocí: Josef Valkoun && Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbCesky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("číst")
                        CmbZpusobPrikazu.Items.Add("spustit")
                        CmbZpusobPrikazu.Items.Add("zapsat")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub

        Private Sub RdbNemecky_CheckedChanged(sender As Object, e As EventArgs) Handles RdbNemecky.CheckedChanged
                Me.Text = "Správa elektroměru - Danny (v1.0)"
                BtnKonecProgramu.Text = "Konec programu"
                BtnKonecVyrobnihoModu.Text = "Do klient módu"
                BtnKontrolaCRC.Text = "Kontrola CRC"
                BtnKontrolaFW.Text = "Kontrola FW"
                BtnKontrolaRTC.Text = "Kontrola RTC"
                BtnNastavRTC.Text = "Nastavení RTC"
                BtnVymazatNapadeni.Text = "Vymazat napadení"
                BtnZrusitSvorkovnici.Text = "Zrušit svorkovnici"
                BtnZrusitKryt.Text = "Zrušit kryt"
                BtnDoTestModu.Text = "Do test módu"
                BtnOdecetElektroMeru.Text = "Odečet ElektroMěru"
                BtnPoslatCislo.Text = "Poslat číslo"
                BtnPoslatPrikaz.Text = "Poslat příkaz"
                BtnPridatSifrovaneHeslo.Text = "Přidat šifrované heslo"
                BtnPridatViditelneHeslo.Text = "Přidat viditelné heslo"
                BtnReFresh.Text = "Obnovit seznam portů"
                BtnZpracovatDavku.Text = "Zpracovat dávku"
                GrpSerialPort.Text = "COMx porty"
                GrpHeslo.Text = "Heslo"
                GrpPrikazy.Text = "Parametrizace"
                GrpCislo.Text = "Sériové a Zákaznické číslo"
                GrpLokalizace.Text = "Localizace"
                ChbZabezpecenyOdecet.Text = "Zabezpečený odečet (přes 485)"
                LblAdresa.Text = "ZPA Smart Energy" + ControlChars.NewLine + "Komenského 821" + ControlChars.NewLine + "Trutnov" + ControlChars.NewLine + "541 01" + ControlChars.NewLine + "Česká republika"
                LblCisloPrikazu.Text = "Číslo příkazu:"
                LblKulikSoft.Text = "Vyrobeno na základě KulíkoSoftu pro:"
                LblMaxCN.Text = "Zákaznické číslo (max. 16 číslic):"
                LblMaxSN.Text = "Sériové číslo (max. 10 číslic):"
                LblPopisPrikazu.Text = "Popis příkazu:"
                LblPopisRegistru.Text = "Popis registru:"
                LblPosledniPrikazy.Text = "Poslední příkazy:"
                LblRychlostKomunikace.Text = "Rychlost komunikace (Bd):"
                LblRychlostStartovaci.Text = "Rychlost startovací (Bd):"
                LblSeznamPrikazu.Text = "Seznam příkazů:"
                LblSeznamRegistru.Text = "Seznam registrů:"
                LblZpusobPrikazu.Text = "Způsob příkazu:"
                RdbObeCisla.Text = "Obě čísla"
                RdbSerioveCislo.Text = "Jen sériové číslo"
                RdbSifrovaneHeslo.Text = "Šifrované heslo"
                RdbViditelneHeslo.Text = "Viditelné heslo"
                RdbZadneHeslo.Text = "Bez hesla"
                RdbZakaznickeCislo.Text = "Jen zákaznické číslo"
                TbpDavka.Text = "Dávka"
                TbpHistoriePrikazu.Text = "Historie příkazů"
                TbpLog.Text = "Log"
                TbpOdecetElektromeru.Text = "Odečet ElektroMěru"
                TslCredit.Text = "Vytvořil: Daniel Semerák (s pomocí: Josef Valkoun && Ing. Jan Holý)"
                CmbZpusobPrikazu.Items.Clear()
                If RdbCesky.Checked = True Then
                        CmbZpusobPrikazu.Items.Add("číst")
                        CmbZpusobPrikazu.Items.Add("spustit")
                        CmbZpusobPrikazu.Items.Add("zapsat")
                        CmbZpusobPrikazu.SelectedIndex = 0
                End If
        End Sub
End Class
 
Nahoru Odpovědět
1.6.2019 22:16
Avatar
Daniel Semerák:7.6.2019 20:09

To se tu nenajde někdo, kdo by s tím mohl pomoci?
Dost nutně to potřebuji převést z VB do C# a pořád tam mám pár chyb a navíc potřebuji vyřešit jednu klíčovou věc, bez které se nehnu dál a jež je naprosto nejdůležitější z celého programu. :-(
Kdyby se tu někdo objevil a pomohl mi s tím kódem, budu mu velice vděčný a moc a moc rád. :-)
Děkuji ...

 
Nahoru Odpovědět
7.6.2019 20:09
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na Daniel Semerák
vajkuba1234:8.6.2019 5:25

Chces se prece neco naucit, tak si projdi zdejsi tutorialy a verim, ze to rozchodis. Pripadne se ptej na konkretni veci.

Nahoru Odpovědět
8.6.2019 5:25
No hope, no future, JUST WAR!
Avatar
Odpovídá na vajkuba1234
Daniel Semerák:8.6.2019 5:54

To se chci naučit, jenže bych potřeboval poradit, kdy by se mohl někdo podívat na převedený kod do C# a poradil mi, kde přesně mám chyby.
Když dám kompilaci, ta se provede, jenže pak mi to napíše, že na řádku je o 1 sloupec více a přitom ten samý zdrojový soubor mi v kompilaci ve VB naprosto v pořádku funguje, tak nevím, kde dělám chybu. :-(
Také bych potřeboval poradit, že když dám číst ze zařízení, to mi odpoví - potud to je vše v pohodě -, jenže jak mi odešle svou hlavičku, tak mu potřebuji říci, že s ním nechci už komunikovat na základní rychlosti 300Bd, ale že s ním chci mluvit na vyšší mnou stanované rychlosti - v CmbRychlostKo­munikace - a to je hlavní zádrhel, se kterým si vůbec nevím rady. :-(
Také nevím, jak ošetřit to, že když vyčtení dojede až na konec, aby mi to dal vědět a já mohl např. zobrazit Odečet dokončen. atd.
Když se mi Odečet provede celý, ale na základní rychlosti, tak v 99% případech mi spadne celý program a vyčtená data se mi neuloží do Log.txt.

 
Nahoru Odpovědět
8.6.2019 5:54
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 18 zpráv z 18.