{"id":95,"date":"2021-01-17T16:59:22","date_gmt":"2021-01-17T16:59:22","guid":{"rendered":"http:\/\/lock4.com\/wordpress\/?page_id=95"},"modified":"2026-09-30T10:00:39","modified_gmt":"2026-09-30T14:00:39","slug":"elementor-95","status":"publish","type":"page","link":"https:\/\/moussiaux.com\/?page_id=95","title":{"rendered":"Sample Code"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"95\" class=\"elementor elementor-95\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-b7f161c elementor-section-full_width elementor-section-height-default elementor-section-height-default\" data-id=\"b7f161c\" data-element_type=\"section\" data-e-type=\"section\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-43e7ca4\" data-id=\"43e7ca4\" data-element_type=\"column\" data-e-type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-b12bb01 elementor-tabs-view-vertical elementor-widget elementor-widget-tabs\" data-id=\"b12bb01\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"tabs.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-tabs\">\n\t\t\t<div class=\"elementor-tabs-wrapper\" role=\"tablist\" >\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1851\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"true\" data-tab=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"elementor-tab-content-1851\" aria-expanded=\"false\">ServiceConnection.cs<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1852\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1852\" aria-expanded=\"false\">DrawDownLine.cs<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1853\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1853\" aria-expanded=\"false\">DMSServiceAdmin.cs<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1854\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"4\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1854\" aria-expanded=\"false\">Scroll.cs<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1855\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"5\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1855\" aria-expanded=\"false\">GetBimap.cs<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1856\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"6\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1856\" aria-expanded=\"false\">LoadFile.cs<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1857\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"7\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1857\" aria-expanded=\"false\">Database Insert<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1858\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"8\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1858\" aria-expanded=\"false\">Database Get<\/div>\n\t\t\t\t\t\t\t\t\t<div id=\"elementor-tab-title-1859\" class=\"elementor-tab-title elementor-tab-desktop-title\" aria-selected=\"false\" data-tab=\"9\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1859\" aria-expanded=\"false\">Database Update<\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t\t<div class=\"elementor-tabs-content-wrapper\" role=\"tablist\" aria-orientation=\"vertical\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"true\" data-tab=\"1\" role=\"tab\" tabindex=\"0\" aria-controls=\"elementor-tab-content-1851\" aria-expanded=\"false\">ServiceConnection.cs<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1851\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"1\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1851\" tabindex=\"0\" hidden=\"false\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0ServiceConnection.cs\nDescription\u00a0:\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server\n--------------------------------------------------------------------------------\nFunctions:\nClose()\u00a0-\u00a0clean\u00a0up\u00a0\nclsServiceConnection()\u00a0-\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server\u00a0\nLog()\u00a0-\u00a0Log\u00a0stuff\u00a0\nOpenAdmin()\u00a0-\u00a0\u00a0\nOpenServer()\u00a0-\u00a0Open\u00a0the\u00a0connection\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2012\/08\/17\u00a0TPR\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Diagnostics;\n<span style=\"color: blue;\">using<\/span>\u00a0System.ServiceModel;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsIService\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0clsServiceConnection\nDescription\u00a0\u00a0:\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server\n--------------------------------------------------------------------------------\nHistory:\n2012\/08\/17\u00a0TPR\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">clsServiceConnection<\/span>\n{\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0Connected;\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: #2b91af;\">IServer<\/span>\u00a0ServerInterface;\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: #2b91af;\">IAdmin<\/span>\u00a0AdminInterface;\n \n<span style=\"color: #2b91af;\">ChannelFactory<\/span>&lt;<span style=\"color: #2b91af;\">IServer<\/span>&gt;\u00a0Factory;\n<span style=\"color: #2b91af;\">ChannelFactory<\/span>&lt;<span style=\"color: #2b91af;\">IAdmin<\/span>&gt;\u00a0FactoryAdmin;\n \n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nConstructor\u00a0:\u00a0clsServiceConnection()\nDescription\u00a0:\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server\nParameters\u00a0\u00a0:\u00a0None\n--------------------------------------------------------------------------------\nHistory:\n2012\/08\/17\u00a0TPR\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: #2b91af;\">clsServiceConnection<\/span>()\n{\nConnected\u00a0=\u00a0<span style=\"color: blue;\">false<\/span>;\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0OpenService()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0string\u00a0ipAddress\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0int\u00a0port\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0Exception\u00a0exceptionResult\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2015\/02\/03\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">OpenService<\/span>(<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">ipAddress<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">port<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">exceptionResult<\/span>)\n{\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">Str<\/span>;\n<span style=\"color: #2b91af;\">NetTcpBinding<\/span>\u00a0<span style=\"color: #1f377f;\">Bind<\/span>;\n \n<span style=\"color: #1f377f;\">exceptionResult<\/span>\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">Bind<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">NetTcpBinding<\/span>();\n \n<span style=\"color: #1f377f;\">Bind<\/span>.MaxReceivedMessageSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n<span style=\"color: #1f377f;\">Bind<\/span>.ReaderQuotas.MaxStringContentLength\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n<span style=\"color: #1f377f;\">Bind<\/span>.ReaderQuotas.MaxArrayLength\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n \n<span style=\"color: #1f377f;\">Bind<\/span>.MaxConnections\u00a0=\u00a0100;\n<span style=\"color: #1f377f;\">Bind<\/span>.CloseTimeout\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a030);\n<span style=\"color: #1f377f;\">Bind<\/span>.OpenTimeout\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a030);\n<span style=\"color: #1f377f;\">Bind<\/span>.ReceiveTimeout\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a0600);\n<span style=\"color: #1f377f;\">Bind<\/span>.SendTimeout\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a0300);\n \n<span style=\"color: #1f377f;\">Bind<\/span>.Security.Mode\u00a0=\u00a0<span style=\"color: #2b91af;\">SecurityMode<\/span>.None;\n \n<span style=\"color: #1f377f;\">Bind<\/span>.MaxBufferSize\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n<span style=\"color: #1f377f;\">Bind<\/span>.ListenBacklog\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n \nFactory\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">ChannelFactory<\/span>&lt;<span style=\"color: #2b91af;\">IServer<\/span>&gt;(<span style=\"color: #1f377f;\">Bind<\/span>,\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">EndpointAddress<\/span>(<span style=\"color: #a31515;\">$\"net.tcp:\/\/<\/span>{<span style=\"color: #1f377f;\">ipAddress<\/span>}<span style=\"color: #a31515;\">:<\/span>{<span style=\"color: #1f377f;\">port<\/span>}<span style=\"color: #a31515;\">\/CustomeriZer\"<\/span>));\n \nServerInterface\u00a0=\u00a0Factory.<span style=\"color: #74531f;\">CreateChannel<\/span>();\n \n<span style=\"font-style: italic; color: green;\">\/\/Connected\u00a0=\u00a0ServerInterface.StartSession();<\/span>\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0Connected\u00a0=\u00a0<span style=\"color: blue;\">false<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">exceptionResult<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">ex<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Str<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"OpenService(<\/span>{<span style=\"color: #1f377f;\">ipAddress<\/span>}<span style=\"color: #a31515;\">,\u00a0<\/span>{<span style=\"color: #1f377f;\">port<\/span>}<span style=\"color: #a31515;\">)\"<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #74531f;\">Log<\/span>(<span style=\"color: #1f377f;\">Str<\/span>,\u00a0<span style=\"color: #1f377f;\">ex<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0OpenAdmin()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0string\u00a0ipAddress\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0int\u00a0port\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0Exception\u00a0exceptionResult\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2014\/10\/02\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">OpenAdmin<\/span>(<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">ipAddress<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">port<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">exceptionResult<\/span>)\n{\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">Str<\/span>;\n<span style=\"color: #2b91af;\">NetTcpBinding<\/span>\u00a0<span style=\"color: #1f377f;\">Bind<\/span>;\n \n<span style=\"color: #1f377f;\">exceptionResult<\/span>\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">Bind<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">NetTcpBinding<\/span>();\n \n<span style=\"color: #1f377f;\">Bind<\/span>.MaxReceivedMessageSize\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n<span style=\"color: #1f377f;\">Bind<\/span>.ReaderQuotas.MaxStringContentLength\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n<span style=\"color: #1f377f;\">Bind<\/span>.ReaderQuotas.MaxArrayLength\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n \n<span style=\"color: #1f377f;\">Bind<\/span>.MaxConnections\u00a0=\u00a0100;\n<span style=\"color: #1f377f;\">Bind<\/span>.CloseTimeout\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a030);\n<span style=\"color: #1f377f;\">Bind<\/span>.OpenTimeout\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a030);\n<span style=\"color: #1f377f;\">Bind<\/span>.ReceiveTimeout\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a0600);\n<span style=\"color: #1f377f;\">Bind<\/span>.SendTimeout\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TimeSpan<\/span>(0,\u00a00,\u00a0300);\n \n<span style=\"color: #1f377f;\">Bind<\/span>.Security.Mode\u00a0=\u00a0<span style=\"color: #2b91af;\">SecurityMode<\/span>.None;\n \n<span style=\"color: #1f377f;\">Bind<\/span>.MaxBufferSize\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n<span style=\"color: #1f377f;\">Bind<\/span>.ListenBacklog\u00a0=\u00a0<span style=\"color: blue;\">int<\/span>.MaxValue;\n \n \nFactoryAdmin\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">ChannelFactory<\/span>&lt;<span style=\"color: #2b91af;\">IAdmin<\/span>&gt;(<span style=\"color: #1f377f;\">Bind<\/span>,\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">EndpointAddress<\/span>(<span style=\"color: #a31515;\">$\"net.tcp:\/\/<\/span>{<span style=\"color: #1f377f;\">ipAddress<\/span>}<span style=\"color: #a31515;\">:<\/span>{<span style=\"color: #1f377f;\">port<\/span>}<span style=\"color: #a31515;\">\/CustomeriZerAdmin\"<\/span>));\n \nAdminInterface\u00a0=\u00a0FactoryAdmin.<span style=\"color: #74531f;\">CreateChannel<\/span>();\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0Connected\u00a0=\u00a0<span style=\"color: blue;\">false<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">exceptionResult<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">ex<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Str<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"OpenAdmin(<\/span>{<span style=\"color: #1f377f;\">ipAddress<\/span>}<span style=\"color: #a31515;\">,\u00a0<\/span>{<span style=\"color: #1f377f;\">port<\/span>}<span style=\"color: #a31515;\">)\"<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #74531f;\">Log<\/span>(<span style=\"color: #1f377f;\">Str<\/span>,\u00a0<span style=\"color: #1f377f;\">ex<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Close()\nDescription\u00a0:\u00a0clean\u00a0up\nParameters\u00a0\u00a0:\u00a0None\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0void\n--------------------------------------------------------------------------------\nHistory:\n2012\/08\/17\u00a0TPR\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #74531f;\">Close<\/span>()\n{\nConnected\u00a0=\u00a0<span style=\"color: blue;\">false<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(ServerInterface\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0((<span style=\"color: #2b91af;\">IClientChannel<\/span>)ServerInterface).<span style=\"color: #74531f;\">Close<\/span>();\n\u00a0\u00a0\u00a0((<span style=\"color: #2b91af;\">IClientChannel<\/span>)ServerInterface).<span style=\"color: #74531f;\">Dispose<\/span>();\n\u00a0\u00a0\u00a0((<span style=\"color: #2b91af;\">IDisposable<\/span>)ServerInterface).<span style=\"color: #74531f;\">Dispose<\/span>();\n\u00a0\u00a0\u00a0ServerInterface\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n\u00a0\u00a0\u00a0}\n \n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(Factory\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(Factory.State\u00a0==\u00a0<span style=\"color: #2b91af;\">CommunicationState<\/span>.Opened)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Factory.<span style=\"color: #74531f;\">Close<\/span>();\n \n\u00a0\u00a0\u00a0((<span style=\"color: #2b91af;\">IDisposable<\/span>)Factory).<span style=\"color: #74531f;\">Dispose<\/span>();\n\u00a0\u00a0\u00a0Factory\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n\u00a0\u00a0\u00a0}\n \n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(FactoryAdmin\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(FactoryAdmin.State\u00a0==\u00a0<span style=\"color: #2b91af;\">CommunicationState<\/span>.Opened)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FactoryAdmin.<span style=\"color: #74531f;\">Close<\/span>();\n \n\u00a0\u00a0\u00a0((<span style=\"color: #2b91af;\">IDisposable<\/span>)FactoryAdmin).<span style=\"color: #74531f;\">Dispose<\/span>();\n\u00a0\u00a0\u00a0FactoryAdmin\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n\u00a0\u00a0\u00a0}\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">CommunicationObjectFaultedException<\/span>\u00a0<span style=\"color: #1f377f;\">ec<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #74531f;\">Log<\/span>(<span style=\"color: #a31515;\">\"Close(CommunicationObjectFaultedException)\"<\/span>,\u00a0<span style=\"color: #1f377f;\">ec<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #74531f;\">Log<\/span>(<span style=\"color: #a31515;\">\"Close()\"<\/span>,\u00a0<span style=\"color: #1f377f;\">ex<\/span>);\n\u00a0\u00a0\u00a0}\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Log()\nDescription\u00a0:\u00a0Log\u00a0stuff\nParameters\u00a0\u00a0:\u00a0string\u00a0text\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Exception\u00a0e\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0void\n--------------------------------------------------------------------------------\nHistory:\n2012\/08\/17\u00a0TPR\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">static<\/span>\u00a0<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #74531f;\">Log<\/span>(<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">text<\/span>,\u00a0<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">e<\/span>)\n{\n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">e<\/span>\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">EventLog<\/span>.<span style=\"color: #74531f;\">WriteEntry<\/span>(<span style=\"color: #a31515;\">\"ICustomeriZerService.dll\"<\/span>,\u00a0<span style=\"color: #1f377f;\">text<\/span>\u00a0+\u00a0<span style=\"color: #a31515;\">\":\u00a0\u00a0\"<\/span>\u00a0+\u00a0<span style=\"color: #1f377f;\">e<\/span>.Message,\u00a0<span style=\"color: #2b91af;\">EventLogEntryType<\/span>.Error);\n \n<span style=\"color: #8f08c4;\">else<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">EventLog<\/span>.<span style=\"color: #74531f;\">WriteEntry<\/span>(<span style=\"color: #a31515;\">\"ICustomeriZerService.dll\"<\/span>,\u00a0<span style=\"color: #1f377f;\">text<\/span>,\u00a0<span style=\"color: #2b91af;\">EventLogEntryType<\/span>.Error);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0clsServiceConnection\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsITimeClockServer\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"2\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1852\" aria-expanded=\"false\">DrawDownLine.cs<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1852\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"2\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1852\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0DrawDownLine.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2016\/01\/05\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Threading.Tasks;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4Sonar\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0ctlPanelSonar\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2015\/10\/02\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">ctlPanelSonar<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0DrawDownLine()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0int\u00a0x\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0int\u00a0stride\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0int\u00a0sonIdx\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0eSonarView\u00a0sonarView\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2017\/08\/17\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">unsafe<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">DrawDownLine<\/span>(<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">x<\/span>,\u00a0<span style=\"color: #2b91af;\">clsFastBitmap<\/span>\u00a0<span style=\"color: #1f377f;\">fastBmp<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">sonIdx<\/span>,\u00a0<span style=\"color: #2b91af;\">eSonarView<\/span>\u00a0<span style=\"color: #1f377f;\">sonarView<\/span>)\n{\n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(SonDatas[<span style=\"color: #1f377f;\">sonIdx<\/span>]\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n \n<span style=\"color: #2b91af;\">Parallel<\/span>.<span style=\"color: #74531f;\">For<\/span>(0,\u00a0<span style=\"color: #1f377f;\">fastBmp<\/span>.Stride,\u00a0<span style=\"color: #1f377f;\">Y<\/span>\u00a0=&gt;\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">YIdx<\/span>;\n \n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">YIdx<\/span>\u00a0=\u00a0(<span style=\"color: blue;\">int<\/span>)(<span style=\"color: #1f377f;\">Y<\/span>\u00a0*\u00a0RangeScale);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">YIdx<\/span>\u00a0&gt;=\u00a0SonDatas[<span style=\"color: #1f377f;\">sonIdx<\/span>].Data.Length)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">sonarView<\/span>\u00a0==\u00a0<span style=\"color: #2b91af;\">eSonarView<\/span>.Down)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Merge\u00a0Port\u00a0&amp;\u00a0Starboard\u00a0side\u00a0imaging\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">fastBmp<\/span>.<span style=\"color: #74531f;\">SetPixel<\/span>(<span style=\"color: #1f377f;\">x<\/span>,\u00a0<span style=\"color: #1f377f;\">Y<\/span>,\u00a0\u00a0(<span style=\"color: blue;\">byte<\/span>)((<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataPort[<span style=\"color: #1f377f;\">sonIdx<\/span>].Data[<span style=\"color: #1f377f;\">YIdx<\/span>]\u00a0+\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataStarboard[<span style=\"color: #1f377f;\">sonIdx<\/span>].Data[<span style=\"color: #1f377f;\">YIdx<\/span>])\u00a0\/\u00a02));\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">else<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">fastBmp<\/span>.<span style=\"color: #74531f;\">SetPixel<\/span>(<span style=\"color: #1f377f;\">x<\/span>,\u00a0<span style=\"color: #1f377f;\">Y<\/span>,\u00a0SonDatas[<span style=\"color: #1f377f;\">sonIdx<\/span>].Data[<span style=\"color: #1f377f;\">YIdx<\/span>]);\n\u00a0\u00a0\u00a0});\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">LogError<\/span>(<span style=\"color: #a31515;\">\"DrawDownLine()\"<\/span>,\u00a0<span style=\"color: #1f377f;\">ex<\/span>.Message);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0ctlPanelSonar\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4Sonar\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"3\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1853\" aria-expanded=\"false\">DMSServiceAdmin.cs<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1853\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"3\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1853\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0DMSServiceAdmin.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\nclsDMS_Service_Admin()\u00a0-\u00a0\u00a0\nConnectToDMS()\u00a0-\u00a0connects\u00a0to\u00a0the\u00a0DMS\u00a0admin\u00a0port\u00a0\nctrlA_KeyDown()\u00a0-\u00a0enable\u00a0ctrl-A\u00a0on\u00a0the\u00a0textbox\u00a0\nDisconnectFromDMS()\u00a0-\u00a0disconnect\u00a0from\u00a0the\u00a0DMS\u00a0admin\u00a0port\u00a0\nInit()\u00a0-\u00a0inits\u00a0the\u00a0plugin\u00a0\nIsIpValid()\u00a0-\u00a0determines\u00a0if\u00a0the\u00a0IP\u00a0entered\u00a0is\u00a0in\u00a0a\u00a0Valid\u00a0format.\u00a0\nUpdateLabel()\u00a0-\u00a0\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/01\/18\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Net.Sockets;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Text.RegularExpressions;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Windows.Forms;\n<span style=\"color: blue;\">using<\/span>\u00a0nsUtil;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsDMSServiceAdmin\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0DMSServiceAdmin\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/08\u00a0WLM\u00a0Created\n2018\/04\/01\u00a0WLM\u00a0Changed\u00a0to\u00a0reflect\u00a0removal\u00a0of\u00a0PVSuiteInterface\/nsStruct\u00a0repeated\u00a0enums\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">DMSServiceAdmin<\/span>\u00a0:\u00a0PVSuiteInterface.<span style=\"color: #2b91af;\">SuiteUserControl<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*\u00a0Class\u00a0Globals\u00a0*\/<\/span>\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: #2b91af;\">TcpClient<\/span>\u00a0TCPMonitor,\u00a0TCPCanned,\u00a0TCPControl;\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: #2b91af;\">NetworkStream<\/span>\u00a0NetStreamMonitor,\u00a0NetStreamCanned,\u00a0NetStreamControl;\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0Connected;\n \n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">delegate<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #2b91af;\">UpdateLabelDelegate<\/span>(<span style=\"color: #2b91af;\">Label<\/span>\u00a0<span style=\"color: #1f377f;\">label<\/span>,\u00a0<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">info<\/span>);\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: #2b91af;\">UpdateLabelDelegate<\/span>\u00a0UpdateLabelDel;\n \n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nConstructor\u00a0:\u00a0clsDMS_Service_Admin()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0None\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/08\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: #2b91af;\">clsDMS_Service_Admin<\/span>()\n{\n<span style=\"color: #2b91af;\">stFileDescription<\/span>\u00a0<span style=\"color: #1f377f;\">FileDescription<\/span>;\n \nInitializeComponent();\n \nProgramInfo.MinPVVersion\u00a0=\u00a0<span style=\"color: #a31515;\">\"2.10.05.04\"<\/span>;\n \n<span style=\"color: #1f377f;\">FileDescription<\/span>\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">stFileDescription<\/span>();\n<span style=\"color: #1f377f;\">FileDescription<\/span>.Language\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: #2b91af;\">eLanguages<\/span>.English;\n<span style=\"color: #1f377f;\">FileDescription<\/span>.ShortDescription\u00a0=\u00a0<span style=\"color: #a31515;\">\"DMS\u00a0Service\u00a0Admin\"<\/span>;\n<span style=\"color: #1f377f;\">FileDescription<\/span>.LongDescription\u00a0\u00a0=\u00a0<span style=\"color: #a31515;\">\"Connects\u00a0to\u00a0the\u00a0PVA\u00a0sample\u00a0DMS\u00a0service\u00a0to\u00a0monitor\u00a0and\u00a0control\u00a0it.\"<\/span>;\n \nProgramInfo.FileDescriptions.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: #1f377f;\">FileDescription<\/span>);\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Init()\nDescription\u00a0:\u00a0inits\u00a0the\u00a0plugin\nParameters\u00a0\u00a0:\u00a0None\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0void\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/08\u00a0WLM\u00a0Created\u00a0inits\u00a0the\u00a0plugin\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">override<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #74531f;\">Init<\/span>()\n{\nInitCanned();\nInitMonitor();\nInitControl();\nDoLabelsCanned();\n \nUpdateLabelDel\u00a0=\u00a0<span style=\"color: #74531f;\">UpdateLabel<\/span>;\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0UpdateLabel()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0TextBox\u00a0textBox\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0string\u00a0info\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\u00a0append\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\u00a0scrollToEnd\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0void\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/20\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #74531f;\">UpdateLabel<\/span>(<span style=\"color: #2b91af;\">Label<\/span>\u00a0<span style=\"color: #1f377f;\">label<\/span>,\u00a0<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">info<\/span>)\n{\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">label<\/span>.InvokeRequired)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">label<\/span>.<span style=\"color: #74531f;\">Invoke<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">EventHandler<\/span>(<span style=\"color: blue;\">delegate<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #74531f;\">UpdateLabel<\/span>(<span style=\"color: #1f377f;\">label<\/span>,\u00a0<span style=\"color: #1f377f;\">info<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}));\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #1f377f;\">label<\/span>.Text\u00a0=\u00a0<span style=\"color: #1f377f;\">info<\/span>;\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0ctrlA_KeyDown()\nDescription\u00a0:\u00a0enable\u00a0ctrl-A\u00a0on\u00a0the\u00a0textbox\nParameters\u00a0\u00a0:\u00a0object\u00a0sender\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0KeyEventArgs\u00a0e\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0void\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/12\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #74531f;\">ctrlA_KeyDown<\/span>(<span style=\"color: blue;\">object<\/span>\u00a0<span style=\"color: #1f377f;\">sender<\/span>,\u00a0<span style=\"color: #2b91af;\">KeyEventArgs<\/span>\u00a0<span style=\"color: #1f377f;\">e<\/span>)\n{\n<span style=\"color: #2b91af;\">TextBox<\/span>\u00a0<span style=\"color: #1f377f;\">TxtBox<\/span>;\n \n<span style=\"color: #1f377f;\">TxtBox<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">sender<\/span>\u00a0<span style=\"color: blue;\">as<\/span>\u00a0<span style=\"color: #2b91af;\">TextBox<\/span>;\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">TxtBox<\/span>\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">e<\/span>.Control\u00a0&amp;&amp;\u00a0<span style=\"color: #1f377f;\">e<\/span>.KeyCode\u00a0==\u00a0<span style=\"color: #2b91af;\">Keys<\/span>.A)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">TxtBox<\/span>.SelectionStart\u00a0=\u00a00;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">TxtBox<\/span>.SelectionLength\u00a0=\u00a0<span style=\"color: #1f377f;\">TxtBox<\/span>.Text.Length;\n\u00a0\u00a0\u00a0}\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0DisconnectFromDMS()\nDescription\u00a0:\u00a0disconnect\u00a0from\u00a0the\u00a0DMS\u00a0admin\u00a0port\nParameters\u00a0\u00a0:\u00a0None\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0void\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/12\u00a0WLM\u00a0Created\u00a0disconnect\u00a0from\u00a0the\u00a0DMS\u00a0admin\u00a0port\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: blue;\">void<\/span>\u00a0<span style=\"color: #74531f;\">DisconnectFromDMS<\/span>()\n{\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(TCPMonitor\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0Send(TCPMonitor,\u00a0NetStreamMonitor,\u00a0<span style=\"color: #a31515;\">\"EOS|*\"<\/span>);\n\u00a0\u00a0\u00a0System.Threading.<span style=\"color: #2b91af;\">Thread<\/span>.<span style=\"color: #74531f;\">Sleep<\/span>(2);\n\u00a0\u00a0\u00a0TCPMonitor.<span style=\"color: #74531f;\">Close<\/span>();\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(TCPCanned\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0Send(TCPCanned,\u00a0NetStreamCanned,\u00a0<span style=\"color: #a31515;\">\"EOS|*\"<\/span>);\n\u00a0\u00a0\u00a0System.Threading.<span style=\"color: #2b91af;\">Thread<\/span>.<span style=\"color: #74531f;\">Sleep<\/span>(2);\n\u00a0\u00a0\u00a0TCPCanned.<span style=\"color: #74531f;\">Close<\/span>();\n\u00a0\u00a0\u00a0}\n \nUpdateLabel(labelConnState,\u00a0<span style=\"color: #a31515;\">\"Disconnected\"<\/span>);\nSetControlButtons(<span style=\"color: blue;\">false<\/span>,\u00a0<span style=\"color: blue;\">false<\/span>,\u00a0<span style=\"color: blue;\">false<\/span>);\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0IsIpValid()\nDescription\u00a0:\u00a0determines\u00a0if\u00a0the\u00a0IP\u00a0entered\u00a0is\u00a0in\u00a0a\u00a0Valid\u00a0format.\nParameters\u00a0\u00a0:\u00a0None\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/20\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">IsIpValid<\/span>()\n{\n<span style=\"color: #2b91af;\">Regex<\/span>\u00a0<span style=\"color: #1f377f;\">regex<\/span>;\n<span style=\"color: #2b91af;\">Match<\/span>\u00a0<span style=\"color: #1f377f;\">match<\/span>;\n \n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">pattern<\/span>\u00a0=\u00a0<span style=\"color: maroon;\">@\"^([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(\\.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])){3}$\"<\/span>;\n \n<span style=\"color: #1f377f;\">regex<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">Regex<\/span>(<span style=\"color: #1f377f;\">pattern<\/span>);\n<span style=\"color: #1f377f;\">match<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">regex<\/span>.Match(textBoxDMSIP.Text);\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: #1f377f;\">match<\/span>.Success);\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0ConnectToDMS()\nDescription\u00a0:\u00a0connects\u00a0to\u00a0the\u00a0DMS\u00a0admin\u00a0port\nParameters\u00a0\u00a0:\u00a0None\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2018\/05\/12\u00a0WLM\u00a0Created\u00a0connects\u00a0to\u00a0the\u00a0DMS\u00a0admin\u00a0port\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">private<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">ConnectToDMS<\/span>()\n{\n<span style=\"font-style: italic; color: green;\">\/*\u00a0Make\u00a0sure\u00a0IP\u00a0address\u00a0is\u00a0valid.\u00a0*\/<\/span>\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!<span style=\"color: #74531f;\">IsIpValid<\/span>())\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">clsUtil<\/span>.<span style=\"color: #74531f;\">DisplayMessage<\/span>(<span style=\"color: #a31515;\">\"Please\u00a0enter\u00a0a\u00a0properly\u00a0formatted\u00a0IP\u00a0address.\"<\/span>);\n\u00a0\u00a0\u00a0textBoxDMSIP.Focus();\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n \nTCPMonitor\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TcpClient<\/span>();\nTCPCanned\u00a0\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TcpClient<\/span>();\nTCPControl\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">TcpClient<\/span>();\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(TCPMonitor\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>\u00a0||\u00a0TCPCanned\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*\u00a0Setup\u00a0monitor\u00a0\u00a0*\/<\/span>\nTCPMonitor.Connect(textBoxDMSIP.Text,\u00a0<span style=\"color: #2b91af;\">Convert<\/span>.ToInt32(textBoxDMSPort.Text));\nNetStreamMonitor\u00a0=\u00a0TCPMonitor.<span style=\"color: #74531f;\">GetStream<\/span>();\nNetStreamMonitor.<span style=\"color: #74531f;\">Flush<\/span>();\n \n<span style=\"font-style: italic; color: green;\">\/*\u00a0Setup\u00a0Canned\u00a0*\/<\/span>\nTCPCanned.Connect(textBoxDMSIP.Text,\u00a0<span style=\"color: #2b91af;\">Convert<\/span>.ToInt32(textBoxDMSPort.Text));\nNetStreamCanned\u00a0=\u00a0TCPCanned.<span style=\"color: #74531f;\">GetStream<\/span>();\nNetStreamCanned.<span style=\"color: #74531f;\">Flush<\/span>();\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">clsUtil<\/span>.<span style=\"color: #74531f;\">DisplayMessage<\/span>(<span style=\"color: #a31515;\">$\"Following\u00a0error\u00a0occurred:<\/span><span style=\"color: #b776fb;\">\\n<\/span>{<span style=\"color: #1f377f;\">ex<\/span>.Message}<span style=\"color: #a31515;\">\"<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0DMSServiceAdmin\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Namespace\u00a0nsDMSServiceAdmin\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"4\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1854\" aria-expanded=\"false\">Scroll.cs<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1854\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"4\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1854\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Scroll.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2015\/10\/14\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Collections.Generic;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Drawing;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Threading.Tasks;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Windows.Input;\n<span style=\"color: blue;\">using<\/span>\u00a0nsL4Util;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4Sonar\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0ctlPanelSonar\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2015\/10\/02\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">ctlPanelSonar<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Scroll()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2016\/02\/08\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">unsafe<\/span>\u00a0<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">Scroll<\/span>()\n{\n<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>,\u00a0<span style=\"color: #1f377f;\">StartX<\/span>,\u00a0<span style=\"color: #1f377f;\">StartY<\/span>;\n<span style=\"color: #2b91af;\">Rectangle<\/span>\u00a0<span style=\"color: #1f377f;\">SrcRect<\/span>,\u00a0<span style=\"color: #1f377f;\">DestRect<\/span>;\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">ErrorOccurredMsg<\/span>;\n<span style=\"color: #2b91af;\">Dictionary<\/span>&lt;<span style=\"color: blue;\">int<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>&gt;<span style=\"color: #1f377f;\">WayPoints<\/span>;\n<span style=\"color: #2b91af;\">clsFastBitmap<\/span>\u00a0<span style=\"color: #1f377f;\">FastBitmap<\/span>;\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!<span style=\"color: #2b91af;\">GLOBALS<\/span>.IsFileOpen)\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(SonarView\u00a0==\u00a0<span style=\"color: #2b91af;\">eSonarView<\/span>.None)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Don't\u00a0Display.\u00a0Used\u00a0with\u00a0viewing\u00a0only\u00a0Port\u00a0or\u00a0Starboard\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(BmpSonar\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n \n<span style=\"color: #1f377f;\">FastBitmap<\/span>\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\nDisplayedWaypoints.<span style=\"color: #74531f;\">Clear<\/span>();\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(SonarView\u00a0==\u00a0<span style=\"color: #2b91af;\">eSonarView<\/span>.Aerial)\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: #74531f;\">ScrollAerial<\/span>());\n \n<span style=\"font-style: italic; color: green;\">\/\/Stopwatch\u00a0SW\u00a0=\u00a0new\u00a0Stopwatch();<\/span>\n<span style=\"font-style: italic; color: green;\">\/\/SW.Start();<\/span>\n \n<span style=\"color: #2b91af;\">UTIL<\/span>.CursorWait(<span style=\"color: blue;\">this<\/span>);\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"color: #1f377f;\">WayPoints<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">Dictionary<\/span>&lt;<span style=\"color: blue;\">int<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>&gt;();\n \n<span style=\"color: #1f377f;\">FastBitmap<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">clsFastBitmap<\/span>(BmpSonar);\n<span style=\"color: #1f377f;\">FastBitmap<\/span>.<span style=\"color: #74531f;\">Lock<\/span>();\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!<span style=\"color: #1f377f;\">FastBitmap<\/span>.<span style=\"color: #74531f;\">Clear<\/span>())\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">FastBitmap<\/span>.<span style=\"color: #74531f;\">Unlock<\/span>();\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n \nSonDataIdx\u00a0=\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.MasterSonIdx;\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Update\u00a0SonDataIdx\u00a0*\/<\/span>\n<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0=\u00a0SonDataIdx;\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0&gt;=\u00a0SonDatas.Length)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Ran\u00a0out\u00a0of\u00a0Sonar\u00a0Data\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0=\u00a0SonDatas.Length\u00a0-\u00a01;\n \n<span style=\"font-style: italic; color: green;\">\/******************************************************************************\/<\/span>\n \n<span style=\"color: #1f377f;\">StartX<\/span>\u00a0=\u00a00;\n<span style=\"color: #1f377f;\">StartY<\/span>\u00a0=\u00a00;\n \n<span style=\"color: #1f377f;\">ErrorOccurredMsg<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">\"\"<\/span>;\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">IsSideImaging<\/span>(SonarView))\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Side\u00a0Imaging\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">StartY<\/span>\u00a0=\u00a0(BmpSonar.Height\u00a0\/\u00a02)\u00a0-\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">StartY<\/span>\u00a0&gt;\u00a00)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0=\u00a00;\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">else<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">StartY<\/span>\u00a0=\u00a00;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0-=\u00a0BmpSonar.Height\u00a0\/\u00a02;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">Parallel<\/span>.<span style=\"color: #74531f;\">For<\/span>(<span style=\"color: #1f377f;\">StartY<\/span>,\u00a0BmpSonar.Height,\u00a0<span style=\"color: #1f377f;\">Y<\/span>\u00a0=&gt;\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Side\u00a0Imaging\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">YIdx<\/span>,\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">YIdx<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Y<\/span>\u00a0-\u00a0<span style=\"color: #1f377f;\">StartY<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">YIdx<\/span>\u00a0&lt;\u00a00)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">YIdx<\/span>\u00a0=\u00a00;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">YIdx<\/span>\u00a0+\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">SIdx<\/span>\u00a0&gt;=\u00a0SonDatas.Length)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Ran\u00a0out\u00a0of\u00a0Sonar\u00a0Data\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(SonDatas[<span style=\"color: #1f377f;\">SIdx<\/span>]\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!<span style=\"color: #74531f;\">DrawSideLine<\/span>(<span style=\"color: #1f377f;\">Y<\/span>,\u00a0<span style=\"color: #1f377f;\">FastBitmap<\/span>,\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">ErrorOccurredMsg<\/span>\u00a0=\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.LangLabels.Messages[25];\u00a0<span style=\"font-style: italic; color: green;\">\/\/\u00a0An\u00a0error\u00a0occurred\u00a0drawing\u00a0Sonar\u00a0image<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Check\u00a0for\u00a0WayPoint\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #2b91af;\">SETTINGS<\/span>.DisplayWaypoints\u00a0&amp;&amp;\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>\u00a0&lt;\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar.Length\u00a0&amp;&amp;\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar[<span style=\"color: #1f377f;\">SIdx<\/span>].Header.WayPointID\u00a0!=\u00a0<span style=\"color: #2b91af;\">DEFINE<\/span>.NO_WAYPOINT)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(DisplayedWaypoints.<span style=\"color: #74531f;\">Contains<\/span>(<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar[<span style=\"color: #1f377f;\">SIdx<\/span>].Header.WayPointID))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0DisplayedWaypoints.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar[<span style=\"color: #1f377f;\">SIdx<\/span>].Header.WayPointID);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">WayPoints<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: #1f377f;\">SIdx<\/span>,\u00a0BmpSonar.Height\u00a0-\u00a0<span style=\"color: #1f377f;\">Y<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0}\n \n<span style=\"font-style: italic; color: green;\">\/******************************************************************************\/<\/span>\n \n<span style=\"color: #8f08c4;\">else<\/span>\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Down\u00a0Imaging\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">StartX<\/span>\u00a0=\u00a0(BmpSonar.Width\u00a0\/\u00a02)\u00a0-\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">StartX<\/span>\u00a0&gt;\u00a00)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0=\u00a00;\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">else<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">StartX<\/span>\u00a0=\u00a00;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>\u00a0-=\u00a0BmpSonar.Width\u00a0\/\u00a02;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n \n<span style=\"font-style: italic; color: green;\">\/\/\u00a0\u00a0\u00a0for\u00a0(int\u00a0X\u00a0=\u00a0StartX;\u00a0X\u00a0&lt;\u00a0BmpSonar.Width;\u00a0X\u00a0++)<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">Parallel<\/span>.<span style=\"color: #74531f;\">For<\/span>(<span style=\"color: #1f377f;\">StartX<\/span>,\u00a0BmpSonar.Width,\u00a0<span style=\"color: #1f377f;\">X<\/span>\u00a0=&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">XIdx<\/span>,\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">XIdx<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">X<\/span>\u00a0-\u00a0<span style=\"color: #1f377f;\">StartX<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">XIdx<\/span>\u00a0&lt;\u00a00)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">XIdx<\/span>\u00a0=\u00a00;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">XIdx<\/span>\u00a0+\u00a0<span style=\"color: #1f377f;\">SonIdx<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">SIdx<\/span>\u00a0&gt;=\u00a0SonDatas.Length)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Ran\u00a0out\u00a0of\u00a0Sonar\u00a0Data\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(SonDatas[<span style=\"color: #1f377f;\">SIdx<\/span>]\u00a0==\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!<span style=\"color: #74531f;\">DrawDownLine<\/span>(<span style=\"color: #1f377f;\">X<\/span>,\u00a0<span style=\"color: #1f377f;\">FastBitmap<\/span>,\u00a0<span style=\"color: #1f377f;\">SIdx<\/span>,\u00a0SonarView))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">ErrorOccurredMsg<\/span>\u00a0=\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.LangLabels.Messages[25];\u00a0<span style=\"font-style: italic; color: green;\">\/\/\u00a0An\u00a0error\u00a0occurred\u00a0drawing\u00a0Sonar\u00a0image<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Check\u00a0for\u00a0WayPoint\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">SIdx<\/span>\u00a0&lt;\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar.Length\u00a0&amp;&amp;\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar[<span style=\"color: #1f377f;\">SIdx<\/span>].Header.WayPointID\u00a0!=\u00a0<span style=\"color: #2b91af;\">DEFINE<\/span>.NO_WAYPOINT)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!DisplayedWaypoints.<span style=\"color: #74531f;\">Contains<\/span>(<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar[<span style=\"color: #1f377f;\">SIdx<\/span>].Header.WayPointID))\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0DisplayedWaypoints.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: #2b91af;\">GLOBALS<\/span>.SonDataSonar[<span style=\"color: #1f377f;\">SIdx<\/span>].Header.WayPointID);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">WayPoints<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: #1f377f;\">SIdx<\/span>,\u00a0<span style=\"color: #1f377f;\">X<\/span>\u00a0-\u00a0<span style=\"color: #2b91af;\">DEFINE<\/span>.WAYPOINT_SIZE);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #1f377f;\">FastBitmap<\/span>.<span style=\"color: #74531f;\">Unlock<\/span>();\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"font-style: italic; color: green;\">\/*\u00a0Copy\u00a0from\u00a0main\u00a0sonar\u00a0image\u00a0to\u00a0screen\u00a0*\/<\/span>\n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">IsSideImaging<\/span>(SonarView))\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SrcRect<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">Rectangle<\/span>((<span style=\"color: blue;\">int<\/span>)(BmpSonarWidth\u00a0-\u00a0CropMaxRange),\u00a00,\u00a0(<span style=\"color: blue;\">int<\/span>)(CropMaxRange\u00a0-\u00a0CropMinRange),\u00a0BmpSonarHeight);\n \n<span style=\"color: #8f08c4;\">else<\/span>\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Down\u00a0Imaging\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">SrcRect<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">Rectangle<\/span>(0,\u00a0(<span style=\"color: blue;\">int<\/span>)CropMinRange,\u00a0BmpSonarWidth,\u00a0(<span style=\"color: blue;\">int<\/span>)(CropMaxRange\u00a0-\u00a0CropMinRange));\n \n<span style=\"color: #1f377f;\">DestRect<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">Rectangle<\/span>(0,\u00a00,\u00a0BmpSonarWidth,\u00a0BmpSonarHeight);\n \nGBmpDisplay.<span style=\"color: #74531f;\">DrawImage<\/span>(BmpSonar,\u00a0<span style=\"color: #1f377f;\">DestRect<\/span>,\u00a0<span style=\"color: #1f377f;\">SrcRect<\/span>,\u00a0<span style=\"color: #2b91af;\">GraphicsUnit<\/span>.Pixel);\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #2b91af;\">SETTINGS<\/span>.DisplayWaypoints)\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.Waypoints.<span style=\"color: #74531f;\">DrawSonar<\/span>(<span style=\"color: #1f377f;\">WayPoints<\/span>,\u00a0GBmpDisplay,\u00a0<span style=\"color: blue;\">this<\/span>);\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(SonarView\u00a0==\u00a0<span style=\"color: #2b91af;\">eSonarView<\/span>.Starboard)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Flip\u00a0Starboard\u00a0image\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0BmpDisplay.<span style=\"color: #74531f;\">RotateFlip<\/span>(<span style=\"color: #2b91af;\">RotateFlipType<\/span>.RotateNoneFlipX);\n \nImageSonar.Source\u00a0=\u00a0<span style=\"color: #2b91af;\">L4Imaging<\/span>.<span style=\"color: #74531f;\">BitmapToImageSource<\/span>(BmpDisplay);\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!<span style=\"color: blue;\">string<\/span>.<span style=\"color: #74531f;\">IsNullOrEmpty<\/span>(<span style=\"color: #1f377f;\">ErrorOccurredMsg<\/span>))\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">Message<\/span>(<span style=\"color: #1f377f;\">ErrorOccurredMsg<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">SendSonarFile<\/span>(<span style=\"color: blue;\">true<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.MainWindow.<span style=\"color: #74531f;\">CloseFile<\/span>();\n\u00a0\u00a0\u00a0}\n \n<span style=\"font-style: italic; color: green;\">\/\/SW.Stop();<\/span>\n<span style=\"font-style: italic; color: green;\">\/\/Debug.WriteLine(string.Format(\"{0}\u00a0{1}\u00a0ms\",\u00a0SonarView.ToString(),\u00a0SW.ElapsedMilliseconds));<\/span>\n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">FastBitmap<\/span>.<span style=\"color: #74531f;\">Unlock<\/span>();\n \n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">Message<\/span>(<span style=\"color: blue;\">string<\/span>.<span style=\"color: #74531f;\">Format<\/span>(<span style=\"color: #2b91af;\">GLOBALS<\/span>.LangLabels.Messages[26],\u00a0<span style=\"color: #1f377f;\">ex<\/span>.Message),\u00a0<span style=\"color: blue;\">true<\/span>);\u00a0<span style=\"font-style: italic; color: green;\">\/\/\u00a0Exception\u00a0occurred\u00a0scrolling\u00a0Sonar\u00a0Panel\\n{0}<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">UTIL<\/span>.<span style=\"color: #74531f;\">SendSonarFile<\/span>(<span style=\"color: blue;\">true<\/span>);\u00a0\u00a0\u00a0\n \n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">GLOBALS<\/span>.MainWindow.<span style=\"color: #74531f;\">CloseFile<\/span>();\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">finally<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">UTIL<\/span>.CursorNormal(<span style=\"color: blue;\">this<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0ctlPanelSonar\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4Sonar\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"5\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1855\" aria-expanded=\"false\">GetBimap.cs<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1855\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"5\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1855\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0GetBitmap.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2017\/07\/23\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Linq;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Drawing;\n<span style=\"color: blue;\">using<\/span>\u00a0System.IO;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Net;\n<span style=\"color: blue;\">using<\/span>\u00a0nsL4Util;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4Sonar\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0clsMap\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2017\/07\/23\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">clsMap<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0GetBitmap()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0int\u00a0x\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0int\u00a0y\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0int\u00a0zoom\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0eMapping\u00a0mapping\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Bitmap\n--------------------------------------------------------------------------------\nHistory:\n2017\/07\/23\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: #2b91af;\">Bitmap<\/span>\u00a0<span style=\"color: #74531f;\">GetBitmap<\/span>(<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">longitude<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">latitude<\/span>,\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">zoom<\/span>,\u00a0<span style=\"color: #2b91af;\">eMapping<\/span>\u00a0<span style=\"color: #1f377f;\">mapping<\/span>)\n{\n<span style=\"color: #2b91af;\">WebClient<\/span>\u00a0<span style=\"color: #1f377f;\">WClient<\/span>;\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">URL<\/span>;\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">AppPath<\/span>,\u00a0<span style=\"color: #1f377f;\">ZoomPath<\/span>,\u00a0<span style=\"color: #1f377f;\">XPath<\/span>;\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">FileName<\/span>,\u00a0<span style=\"color: #1f377f;\">BingQuad<\/span>;\n<span style=\"color: #2b91af;\">Bitmap<\/span>\u00a0<span style=\"color: #1f377f;\">Bmp<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">BingQuad<\/span>\u00a0=\u00a0<span style=\"color: #74531f;\">TileXYToQuadKey<\/span>(<span style=\"color: #1f377f;\">longitude<\/span>,\u00a0<span style=\"color: #1f377f;\">latitude<\/span>,\u00a0<span style=\"color: #1f377f;\">zoom<\/span>);\n \n<span style=\"color: #1f377f;\">AppPath<\/span>\u00a0=\u00a0<span style=\"color: blue;\">string<\/span>.<span style=\"color: #74531f;\">Format<\/span>(<span style=\"color: #a31515;\">\"{0}<\/span><span style=\"color: #b776fb;\">\\\\<\/span><span style=\"color: #a31515;\">Lock\u00a04\u00a0Software<\/span><span style=\"color: #b776fb;\">\\\\<\/span><span style=\"color: #a31515;\">L4Sonar\"<\/span>,\u00a0<span style=\"color: #2b91af;\">Environment<\/span>.<span style=\"color: #74531f;\">GetFolderPath<\/span>(<span style=\"color: #2b91af;\">Environment<\/span>.<span style=\"color: #2b91af;\">SpecialFolder<\/span>.ApplicationData));\n<span style=\"color: #2b91af;\">L4IO<\/span>.<span style=\"color: #74531f;\">CreateDirectory<\/span>(<span style=\"color: #1f377f;\">AppPath<\/span>);\n \n<span style=\"color: #1f377f;\">ZoomPath<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"<\/span>{<span style=\"color: #1f377f;\">AppPath<\/span>}<span style=\"color: #b776fb;\">\\\\<\/span>{<span style=\"color: #1f377f;\">zoom<\/span>}<span style=\"color: #b776fb;\">\\\\<\/span><span style=\"color: #a31515;\">\"<\/span>;\n<span style=\"color: #2b91af;\">L4IO<\/span>.<span style=\"color: #74531f;\">CreateDirectory<\/span>(<span style=\"color: #1f377f;\">ZoomPath<\/span>);\n \n<span style=\"color: #1f377f;\">XPath<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"<\/span>{<span style=\"color: #1f377f;\">ZoomPath<\/span>}{<span style=\"color: #1f377f;\">mapping<\/span>.<span style=\"color: #74531f;\">ToString<\/span>()}<span style=\"color: #b776fb;\">\\\\<\/span>{<span style=\"color: #1f377f;\">latitude<\/span>}<span style=\"color: #a31515;\">\"<\/span>;\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">mapping<\/span>\u00a0==\u00a0<span style=\"color: #2b91af;\">eMapping<\/span>.Terrain)\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">FileName<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"<\/span>{<span style=\"color: #1f377f;\">XPath<\/span>}<span style=\"color: #b776fb;\">\\\\<\/span>{<span style=\"color: #1f377f;\">longitude<\/span>}<span style=\"color: #a31515;\">.png\"<\/span>;\n \n<span style=\"color: #8f08c4;\">else<\/span>\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Get\u00a0Bing\u00a0maps\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">FileName<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"<\/span>{<span style=\"color: #1f377f;\">XPath<\/span>}<span style=\"color: #b776fb;\">\\\\<\/span>{<span style=\"color: #1f377f;\">BingQuad<\/span>}<span style=\"color: #a31515;\">.jpeg\"<\/span>;\n \n<span style=\"color: #2b91af;\">L4IO<\/span>.<span style=\"color: #74531f;\">CreateDirectory<\/span>(<span style=\"color: #1f377f;\">XPath<\/span>);\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #2b91af;\">File<\/span>.<span style=\"color: #74531f;\">Exists<\/span>(<span style=\"color: #1f377f;\">FileName<\/span>))\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Bmp<\/span>\u00a0=\u00a0<span style=\"color: #74531f;\">GetBitmapFromFile<\/span>(<span style=\"color: #1f377f;\">FileName<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: #1f377f;\">Bmp<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!InternetConnected)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0No\u00a0Internet\u00a0connection\u00a0so\u00a0don't\u00a0try\u00a0to\u00a0get\u00a0image\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">null<\/span>);\n \n \n<span style=\"color: #1f377f;\">URL<\/span>\u00a0=\u00a0<span style=\"color: #74531f;\">GetURL<\/span>(<span style=\"color: #1f377f;\">longitude<\/span>,\u00a0<span style=\"color: #1f377f;\">latitude<\/span>,\u00a0<span style=\"color: #1f377f;\">zoom<\/span>,\u00a0<span style=\"color: #1f377f;\">BingQuad<\/span>,\u00a0<span style=\"color: #1f377f;\">mapping<\/span>);\n \n<span style=\"color: #1f377f;\">WClient<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">WebClient<\/span>();\n<span style=\"color: #1f377f;\">WClient<\/span>.<span style=\"color: #74531f;\">DownloadFile<\/span>(<span style=\"color: #1f377f;\">URL<\/span>,\u00a0<span style=\"color: #1f377f;\">FileName<\/span>);\n<span style=\"color: #1f377f;\">WClient<\/span>.<span style=\"color: #74531f;\">Dispose<\/span>();\n \n<span style=\"color: #1f377f;\">Bmp<\/span>\u00a0=\u00a0(<span style=\"color: #2b91af;\">Bitmap<\/span>)<span style=\"color: #2b91af;\">Image<\/span>.<span style=\"color: #74531f;\">FromFile<\/span>(<span style=\"color: #1f377f;\">FileName<\/span>);\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: #1f377f;\">Bmp<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span><span style=\"font-style: italic; color: green;\">\/\/(Exception\u00a0ex)<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">null<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">finally<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0}\n}\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0GetBitmapFromFile()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0string\u00a0fileName\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0Bitmap\u00a0bmp\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Bitmap\n--------------------------------------------------------------------------------\nHistory:\n2019\/04\/25\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: #2b91af;\">Bitmap<\/span>\u00a0<span style=\"color: #74531f;\">GetBitmapFromFile<\/span>(<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">fileName<\/span>)\n{\n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #8f08c4;\">return<\/span>((<span style=\"color: #2b91af;\">Bitmap<\/span>)<span style=\"color: #2b91af;\">Bitmap<\/span>.<span style=\"color: #74531f;\">FromFile<\/span>(<span style=\"color: #1f377f;\">fileName<\/span>));\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">null<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0clsMap\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4Sonar\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"6\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1856\" aria-expanded=\"false\">LoadFile.cs<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1856\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"6\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1856\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0LoadFile.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2014\/03\/26\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.IO;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4Util\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0L4IniFile\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2014\/03\/26\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">L4IniFile<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0LoadFile()\nDescription\u00a0:\u00a0Read\u00a0Entire\u00a0.Ini\u00a0File\u00a0Parsing\u00a0Into\u00a0Items\u00a0Collection\nParameters\u00a0\u00a0:\u00a0None\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2008\/09\/15\u00a0WLM\u00a0Fixed\u00a0Comment\u00a0on\u00a0first\u00a0char\u00a0(whole\u00a0line\u00a0commented\u00a0out)\n2010\/08\/31\u00a0WLM\u00a0Fix\u00a0for\u00a0=\u00a0in\u00a0Value\u00a0section\n2010\/11\/23\u00a0WLM\u00a0Added\u00a0Header\u00a0Loading\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">LoadFile<\/span>()\n{\n<span style=\"color: #2b91af;\">TextReader<\/span>\u00a0<span style=\"color: #1f377f;\">Reader<\/span>;\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">Str<\/span>,\u00a0<span style=\"color: #1f377f;\">Section<\/span>,\u00a0<span style=\"color: #1f377f;\">Key<\/span>,\u00a0<span style=\"color: #1f377f;\">Value<\/span>;\n<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">Idx<\/span>,\u00a0<span style=\"color: #1f377f;\">Idx2<\/span>;\n<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #1f377f;\">DoingHeader<\/span>;\n \nItems.<span style=\"color: #74531f;\">Clear<\/span>();\n<span style=\"color: #1f377f;\">Reader<\/span>\u00a0=\u00a0<span style=\"color: blue;\">null<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">Reader<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">StreamReader<\/span>(FileName);\n \n<span style=\"color: #1f377f;\">Section<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">\"\"<\/span>;\n<span style=\"color: #1f377f;\">DoingHeader<\/span>\u00a0=\u00a0<span style=\"color: blue;\">true<\/span>;\n \n<span style=\"color: #8f08c4;\">while<\/span>((<span style=\"color: #1f377f;\">Str<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Reader<\/span>.<span style=\"color: #74531f;\">ReadLine<\/span>())\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Key<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">\"\"<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Value<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">\"\"<\/span>;\n \n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Str<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">Trim<\/span>();\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Idx<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">IndexOf<\/span>(<span style=\"color: #a31515;\">';'<\/span>);\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Drop\u00a0Any\u00a0Comments\u00a0*\/<\/span>\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Idx<\/span>\u00a0==\u00a00)\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Whole\u00a0Line\u00a0Is\u00a0Commented\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">DoingHeader<\/span>)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Header.<span style=\"color: #74531f;\">AppendLine<\/span>(<span style=\"color: #1f377f;\">Str<\/span>);\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">continue<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Idx<\/span>\u00a0!=\u00a0-1)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Str<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">Substring<\/span>(0,\u00a0<span style=\"color: #1f377f;\">Idx<\/span>\u00a0-\u00a01).<span style=\"color: #74531f;\">Trim<\/span>();\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Str<\/span>.Length\u00a0&lt;\u00a01)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">DoingHeader<\/span>)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Header.<span style=\"color: #74531f;\">AppendLine<\/span>(<span style=\"color: #1f377f;\">Str<\/span>);\n \n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">continue<\/span>;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n \n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">DoingHeader<\/span>\u00a0=\u00a0<span style=\"color: blue;\">false<\/span>;\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Str<\/span>[0]\u00a0==\u00a0<span style=\"color: #a31515;\">'['<\/span>)\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0Found\u00a0Section\u00a0*\/<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Section<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">Substring<\/span>(1,\u00a0<span style=\"color: #1f377f;\">Str<\/span>.Length\u00a0-\u00a02);\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">else<\/span>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Idx2<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">IndexOf<\/span>(<span style=\"color: #a31515;\">'='<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Idx2<\/span>\u00a0!=\u00a0-1)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Key<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">Substring<\/span>(0,\u00a0<span style=\"color: #1f377f;\">Idx2<\/span>).<span style=\"color: #74531f;\">Trim<\/span>();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Value<\/span>\u00a0=\u00a0<span style=\"color: #1f377f;\">Str<\/span>.<span style=\"color: #74531f;\">Substring<\/span>(<span style=\"color: #1f377f;\">Idx2<\/span>\u00a0+\u00a01).<span style=\"color: #74531f;\">Trim<\/span>();\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: #1f377f;\">Section<\/span>,\u00a0<span style=\"color: #1f377f;\">Key<\/span>,\u00a0<span style=\"color: #1f377f;\">Value<\/span>);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #1f377f;\">Reader<\/span>.<span style=\"color: #74531f;\">Close<\/span>();\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Reader<\/span>\u00a0!=\u00a0<span style=\"color: blue;\">null<\/span>)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">Reader<\/span>.<span style=\"color: #74531f;\">Close<\/span>();\n \n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">L4Message<\/span>.<span style=\"color: #74531f;\">Show<\/span>(<span style=\"color: #a31515;\">\"ERROR\u00a0-\u00a0Load()<\/span><span style=\"color: #b776fb;\">\\n<\/span><span style=\"color: #a31515;\">\"<\/span>\u00a0+\u00a0<span style=\"color: #1f377f;\">ex<\/span>.Message);\n\u00a0\u00a0\u00a0<span style=\"color: #2b91af;\">L4Logging<\/span>.<span style=\"color: #74531f;\">Log<\/span>(<span style=\"color: #2b91af;\">eLoggingLevel<\/span>.Error,\u00a0<span style=\"color: #a31515;\">\"L4IniFile\"<\/span>,\u00a0<span style=\"color: #a31515;\">\"Load()\"<\/span>,\u00a0<span style=\"color: #1f377f;\">ex<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0L4IniFile\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4Util\u00a0*\/<\/span>\n<\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"7\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1857\" aria-expanded=\"false\">Database Insert<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1857\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"7\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1857\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Insert.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2017\/04\/21\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Collections.Generic;\n<span style=\"color: blue;\">using<\/span>\u00a0MySql.Data.MySqlClient;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4DB\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0clsSonarMasterFile\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2017\/04\/21\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">clsSonarMasterFile<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Insert()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0stSonarFile\u00a0sonarFile\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0int\u00a0newID\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0string\u00a0errMsg\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2017\/04\/21\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">Insert<\/span>(<span style=\"color: #2b91af;\">stSonarMasterFile<\/span>\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">newID<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>)\n{\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">SqlQuery<\/span>;\n<span style=\"color: #2b91af;\">List<\/span>&lt;<span style=\"color: #2b91af;\">MySqlParameter<\/span>&gt;\u00a0<span style=\"color: #1f377f;\">SqlParms<\/span>;\n \n<span style=\"color: #1f377f;\">newID<\/span>\u00a0=\u00a00;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">SqlQuery<\/span>\u00a0=\u00a0\n\u00a0\u00a0\u00a0<span style=\"color: maroon;\">@\"\n\u00a0\u00a0\u00a0INSERT\n \n\u00a0\u00a0\u00a0INTO\u00a0tblSonarMasterFile\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0GUID,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TimeStamp,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Email,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TmpDirectory\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0)\n \n\u00a0\u00a0\u00a0VALUES\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0(\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@GUID,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@TimeStamp,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@Email,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0@TmpDirectory\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0\u00a0\"<\/span>;\n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"color: #1f377f;\">SqlParms<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">List<\/span>&lt;<span style=\"color: #2b91af;\">MySqlParameter<\/span>&gt;();\n \n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"GUID\"<\/span>,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.GUID));\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"TimeStamp\"<\/span>,\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.TimeStamp));\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"Email\"<\/span>,\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.Email));\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"TmpDirectory\"<\/span>,\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.TmpDirectory));\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!L4DB.DBInfo.<span style=\"color: #74531f;\">ExecuteQuery<\/span>(<span style=\"color: #1f377f;\">SqlQuery<\/span>,\u00a0<span style=\"color: #1f377f;\">SqlParms<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #1f377f;\">newID<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>))\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"SonarMasterFile.Insert()\u00a0-\u00a0Exception\u00a0Occurred<\/span><span style=\"color: #b776fb;\">\\n<\/span>{<span style=\"color: #1f377f;\">ex<\/span>.Message}<span style=\"color: #a31515;\">\"<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0clsSonarMasterFile\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4DB\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"8\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1858\" aria-expanded=\"false\">Database Get<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1858\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"8\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1858\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Get.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2017\/04\/21\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4DB\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0clsSonarMasterFile\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2017\/04\/21\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">clsSonarMasterFile<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Get()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0int\u00a0id\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0stSonarMasterFile\u00a0sonarMasterFile\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0string\u00a0errMsg\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2017\/04\/21\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">Get<\/span>(<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">id<\/span>,\u00a0<span style=\"color: #2b91af;\">stSonarMasterFile<\/span>\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>)\n{\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">SqlQuery<\/span>;\n \n<span style=\"color: #1f377f;\">errMsg<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">\"\"<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">SqlQuery<\/span>\u00a0=\u00a0<span style=\"color: blue;\">string<\/span>.<span style=\"color: #74531f;\">Format<\/span>(\n\u00a0\u00a0\u00a0<span style=\"color: maroon;\">@\"\n\u00a0\u00a0\u00a0SELECT\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0GUID,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TimeStamp,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Email,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0TmpDirectory\n \n\u00a0\u00a0\u00a0FROM\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tblSonarMasterFile\n \n\u00a0\u00a0\u00a0WHERE\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0ID\u00a0=\u00a0{0}\n \n\u00a0\u00a0\u00a0\"<\/span>,\u00a0<span style=\"color: #1f377f;\">id<\/span>);\n \n \n<span style=\"font-style: italic; color: green;\">\/*----------------------------------------------------------------------------*\/<\/span>\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!L4DB.DBInfo.<span style=\"color: #74531f;\">OpenReader<\/span>(<span style=\"color: #1f377f;\">SqlQuery<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>))\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(L4DB.DBInfo.<span style=\"color: #74531f;\">Read<\/span>())\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.ID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0<span style=\"color: #1f377f;\">id<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.GUID\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0L4DB.DBInfo.<span style=\"color: #74531f;\">GetString<\/span>(<span style=\"color: #a31515;\">\"GUID\"<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.TimeStamp\u00a0\u00a0\u00a0\u00a0=\u00a0(<span style=\"color: #2b91af;\">DateTime<\/span>)L4DB.DBInfo.<span style=\"color: #74531f;\">GetDateTime<\/span>(<span style=\"color: #a31515;\">\"TimeStamp\"<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.Email\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0L4DB.DBInfo.<span style=\"color: #74531f;\">GetString<\/span>(<span style=\"color: #a31515;\">\"Email\"<\/span>);\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">sonarMasterFile<\/span>.TmpDirectory\u00a0=\u00a0L4DB.DBInfo.<span style=\"color: #74531f;\">GetString<\/span>(<span style=\"color: #a31515;\">\"TmpDirectory\"<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>\u00a0=\u00a0<span style=\"color: blue;\">string<\/span>.<span style=\"color: #74531f;\">Format<\/span>(<span style=\"color: #a31515;\">\"SonarMasterFile.Get()\u00a0-\u00a0Exception\u00a0Occurred<\/span><span style=\"color: #b776fb;\">\\n<\/span><span style=\"color: #a31515;\">{0}\"<\/span>,\u00a0<span style=\"color: #1f377f;\">ex<\/span>.Message);\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0clsSonarMasterFile\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4DB\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-tab-title elementor-tab-mobile-title\" aria-selected=\"false\" data-tab=\"9\" role=\"tab\" tabindex=\"-1\" aria-controls=\"elementor-tab-content-1859\" aria-expanded=\"false\">Database Update<\/div>\n\t\t\t\t\t<div id=\"elementor-tab-content-1859\" class=\"elementor-tab-content elementor-clearfix\" data-tab=\"9\" role=\"tabpanel\" aria-labelledby=\"elementor-tab-title-1859\" tabindex=\"0\" hidden=\"hidden\"><pre style=\"font-family: Courier New; font-size: 16px; color: black; background: white;\"><span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFile\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0Update.cs\nDescription\u00a0:\u00a0\n--------------------------------------------------------------------------------\nFunctions:\n--------------------------------------------------------------------------------\nHistory:\n2017\/06\/22\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">using<\/span>\u00a0System;\n<span style=\"color: blue;\">using<\/span>\u00a0System.Collections.Generic;\n<span style=\"color: blue;\">using<\/span>\u00a0MySql.Data.MySqlClient;\n \n<span style=\"color: blue;\">namespace<\/span>\u00a0nsL4DB\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nClass\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0clsLicense\nDescription\u00a0\u00a0:\u00a0\n--------------------------------------------------------------------------------\nHistory:\n2017\/06\/22\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">partial<\/span>\u00a0<span style=\"color: blue;\">class<\/span>\u00a0<span style=\"color: #2b91af;\">clsLicense<\/span>\n{\n<span style=\"font-style: italic; color: green;\">\/*******************************************************************************\nFunction\u00a0\u00a0\u00a0\u00a0:\u00a0Update()\nDescription\u00a0:\u00a0\nParameters\u00a0\u00a0:\u00a0stLicense\u00a0license\u00a0-\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0out\u00a0string\u00a0errMsg\u00a0-\u00a0\nReturns\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0bool\n--------------------------------------------------------------------------------\nHistory:\n2017\/06\/22\u00a0WLM\u00a0Created\n*******************************************************************************\/<\/span>\n<span style=\"color: blue;\">public<\/span>\u00a0<span style=\"color: blue;\">bool<\/span>\u00a0<span style=\"color: #74531f;\">Update<\/span>(<span style=\"color: #2b91af;\">stLicense<\/span>\u00a0<span style=\"color: #1f377f;\">license<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>)\n{\n<span style=\"color: blue;\">string<\/span>\u00a0<span style=\"color: #1f377f;\">SqlQuery<\/span>;\n<span style=\"color: #2b91af;\">List<\/span>&lt;<span style=\"color: #2b91af;\">MySqlParameter<\/span>&gt;\u00a0<span style=\"color: #1f377f;\">SqlParms<\/span>;\n<span style=\"color: blue;\">int<\/span>\u00a0<span style=\"color: #1f377f;\">Cnt<\/span>;\n \n<span style=\"color: #8f08c4;\">try<\/span>\n{\n<span style=\"color: #1f377f;\">SqlQuery<\/span>\u00a0=\u00a0<span style=\"color: blue;\">string<\/span>.<span style=\"color: #74531f;\">Format<\/span>(\n\u00a0\u00a0\u00a0<span style=\"color: maroon;\">@\"\n\u00a0\u00a0\u00a0UPDATE\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0tblLicense\n \n\u00a0\u00a0\u00a0SET\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0FirstName\u00a0=\u00a0@FirstName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0LastName\u00a0\u00a0=\u00a0@LastName,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Email\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0@Email,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Date\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0=\u00a0@Date\n \n\u00a0\u00a0\u00a0WHERE\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0GUID\u00a0=\u00a0'{0}'\n \n\u00a0\u00a0\u00a0\"<\/span>,\u00a0<span style=\"color: #1f377f;\">license<\/span>.GUID);\n \n<span style=\"color: #1f377f;\">SqlParms<\/span>\u00a0=\u00a0<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">List<\/span>&lt;<span style=\"color: #2b91af;\">MySqlParameter<\/span>&gt;();\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"FirstName\"<\/span>,\u00a0<span style=\"color: #1f377f;\">license<\/span>.FirstName));\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"LastName\"<\/span>,\u00a0<span style=\"color: #1f377f;\">license<\/span>.LastName));\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"Email\"<\/span>,\u00a0<span style=\"color: #1f377f;\">license<\/span>.Email));\n<span style=\"color: #1f377f;\">SqlParms<\/span>.<span style=\"color: #74531f;\">Add<\/span>(<span style=\"color: blue;\">new<\/span>\u00a0<span style=\"color: #2b91af;\">MySqlParameter<\/span>(<span style=\"color: #a31515;\">\"Date\"<\/span>,\u00a0<span style=\"color: #1f377f;\">license<\/span>.Date));\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(!L4DB.DBInfo.<span style=\"color: #74531f;\">ExecuteNonQuery<\/span>(<span style=\"color: #1f377f;\">SqlQuery<\/span>,\u00a0<span style=\"color: #1f377f;\">SqlParms<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #1f377f;\">Cnt<\/span>,\u00a0<span style=\"color: blue;\">out<\/span>\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>))\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n \n<span style=\"color: #8f08c4;\">if<\/span>\u00a0(<span style=\"color: #1f377f;\">Cnt<\/span>\u00a0!=\u00a01)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"License.Update()\u00a0-\u00a0Error\u00a0updating\u00a0Instance.ID\u00a0<\/span>{<span style=\"color: #1f377f;\">license<\/span>.GUID}<span style=\"color: #a31515;\">\"<\/span>;\n \n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n \n<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">true<\/span>);\n}\n \n<span style=\"color: #8f08c4;\">catch<\/span>\u00a0(<span style=\"color: #2b91af;\">Exception<\/span>\u00a0<span style=\"color: #1f377f;\">ex<\/span>)\n\u00a0\u00a0\u00a0{\n\u00a0\u00a0\u00a0<span style=\"color: #1f377f;\">errMsg<\/span>\u00a0=\u00a0<span style=\"color: #a31515;\">$\"License.Update()\u00a0-\u00a0Exception\u00a0Occurred<\/span><span style=\"color: #b776fb;\">\\n<\/span>{<span style=\"color: #1f377f;\">ex<\/span>.Message}<span style=\"color: #a31515;\">\"<\/span>;\n\u00a0\u00a0\u00a0<span style=\"color: #8f08c4;\">return<\/span>(<span style=\"color: blue;\">false<\/span>);\n\u00a0\u00a0\u00a0}\n}\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0Class\u00a0clsLicense\u00a0*\/<\/span>\n}\u00a0<span style=\"font-style: italic; color: green;\">\/*\u00a0End\u00a0Of\u00a0NameSpace\u00a0nsL4DB\u00a0*\/<\/span><\/pre><\/div>\n\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ServiceConnection.cs DrawDownLine.cs DMSServiceAdmin.cs Scroll.cs GetBimap.cs LoadFile.cs Database Insert Database Get Database Update ServiceConnection.cs \/******************************************************************************* File\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0ServiceConnection.cs Description\u00a0:\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Functions: Close()\u00a0&#8211;\u00a0clean\u00a0up\u00a0 clsServiceConnection()\u00a0&#8211;\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server\u00a0 Log()\u00a0&#8211;\u00a0Log\u00a0stuff\u00a0 OpenAdmin()\u00a0&#8211;\u00a0\u00a0 OpenServer()\u00a0&#8211;\u00a0Open\u00a0the\u00a0connection\u00a0 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; History: 2012\/08\/17\u00a0TPR\u00a0Created *******************************************************************************\/ using\u00a0System; using\u00a0System.Diagnostics; using\u00a0System.ServiceModel; namespace\u00a0nsIService { \/******************************************************************************* Class\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0:\u00a0clsServiceConnection Description\u00a0\u00a0:\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; History: 2012\/08\/17\u00a0TPR\u00a0Created *******************************************************************************\/ public\u00a0class\u00a0clsServiceConnection { public\u00a0bool\u00a0Connected; public\u00a0IServer\u00a0ServerInterface; public\u00a0IAdmin\u00a0AdminInterface; ChannelFactory&lt;IServer&gt;\u00a0Factory; ChannelFactory&lt;IAdmin&gt;\u00a0FactoryAdmin; \/******************************************************************************* Constructor\u00a0:\u00a0clsServiceConnection() Description\u00a0:\u00a0Connection\u00a0to\u00a0the\u00a0WCF\u00a0service\u00a0that\u00a0is\u00a0the\u00a0Time\u00a0Clock\u00a0Server Parameters\u00a0\u00a0:\u00a0None &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; History: 2012\/08\/17\u00a0TPR\u00a0Created *******************************************************************************\/ public\u00a0clsServiceConnection()<\/p>\n<div class=\"more-link\">\n             <a href=\"https:\/\/moussiaux.com\/?page_id=95\" class=\"read-more\">Read More<i class=\"fa fa-caret-right\"><\/i><\/a>\n        <\/div>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-95","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/moussiaux.com\/index.php?rest_route=\/wp\/v2\/pages\/95","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moussiaux.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/moussiaux.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/moussiaux.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moussiaux.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=95"}],"version-history":[{"count":56,"href":"https:\/\/moussiaux.com\/index.php?rest_route=\/wp\/v2\/pages\/95\/revisions"}],"predecessor-version":[{"id":335,"href":"https:\/\/moussiaux.com\/index.php?rest_route=\/wp\/v2\/pages\/95\/revisions\/335"}],"wp:attachment":[{"href":"https:\/\/moussiaux.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=95"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}