public MQTT_Handling(ConsoleOutputLogger Logger) { // create client instance client = new MqttClient(IPAddress.Parse(MQTTBindingConfiguration.MQTTBindingConfigFile.mqtt_broker_host), MQTTBindingConfiguration.MQTTBindingConfigFile.mqtt_broker_port, false, null, null, MqttSslProtocols.None); clientId = Guid.NewGuid().ToString(); ConsoleOutputLogger = Logger; // connect try { client.Connect(clientId); if (client.IsConnected) { ConsoleOutputLogger.WriteLine("MQTT Binding: Successfully connected!"); } else { ConsoleOutputLogger.WriteLine("MQTT Binding: Connection Problem - could not connect!"); } } catch (Exception e) { ConsoleOutputLogger.WriteLine("MQTT Binding Exception - " + e.Message); } }
public void process() { // we can't use a StreamReader for input, because it buffers up extra data on us inside it's // "processed" view of the world, and we want the data raw after the headers inputStream = new BufferedStream(socket.GetStream()); // we probably shouldn't be using a streamwriter for all output from handlers either outputStream = new StreamWriter(new BufferedStream(socket.GetStream())); try { parseRequest(); readHeaders(); if (http_method.Equals("GET")) { handleGETRequest(); } else if (http_method.Equals("POST")) { handlePOSTRequest(); } } catch (Exception e) { ConsoleOutputLogger.WriteLine("Exception: " + e.ToString()); writeFailure(); } outputStream.Flush(); // bs.Flush(); // flush any remaining output inputStream = null; outputStream = null; // bs = null; socket.Close(); }
public HttpServer(Int32 HTTP_Port, String HTTP_ListeningIP, String HTTP_DocumentRoot, ConsoleOutputLogger Logger) { HTTPServer_Port = HTTP_Port; HTTPServer_ListeningIP = HTTP_ListeningIP; HTTPServer_DocumentRoot = HTTP_DocumentRoot; ConsoleOutputLogger = Logger; ThumbCache = new ThumbnailCache(GalleryServer.Properties.Settings.Default.CacheImages); }
/// <summary> /// Each HTTP processor object handles one client. If Keep-Alive is enabled then this /// object will be reused for subsequent requests until the client breaks keep-alive. /// This usually happens when it times out. Because this could easily lead to a DoS /// attack, we keep track of the number of open processors and only allow 100 to be /// persistent active at any one time. Additionally, we do not allow more than 500 /// outstanding requests. /// </summary> /// <param name="docRoot">Root-Directory of the HTTP Server</param> /// <param name="s">the Socket to work with</param> /// <param name="webserver">the "master" HttpServer Object of this Client</param> public HttpProcessor(Socket s, String HTTP_DocumentRoot, ConsoleOutputLogger Logger, ThumbnailCache Thumb_Cache) { this.s = s; HTTPServer_DocumentRoot = HTTP_DocumentRoot; docRootFile = new FileInfo(HTTPServer_DocumentRoot); headers = new Hashtable(); ConsoleOutputLogger = Logger; FileManager = new FileManagement(); ThumbCache = Thumb_Cache; }
public HttpServer(Int32 HTTP_Port, String HTTP_ListeningIP, String HTTP_DocumentRoot, TinyOnDiskStorage _Storage, TinyOnDiskStorage _LatitudeStorage, XS1Configuration _XS1_Configuration, ConsoleOutputLogger Logger, MAXMonitoringThread _ELVMAXMonitoringThread, bool AuthEnabled, String Uname, String Pword, String StartAdrFilter) { HTTPServer_Port = HTTP_Port; HTTPServer_ListeningIP = HTTP_ListeningIP; HTTPServer_DocumentRoot = HTTP_DocumentRoot; Storage = _Storage; XS1_Configuration = _XS1_Configuration; ConsoleOutputLogger = Logger; ELVMAXMonitoringThread = _ELVMAXMonitoringThread; LatitudeStorage = _LatitudeStorage; AuthorizationEnabled = AuthEnabled; Username = Uname; Password = Pword; AuthDisabledForAdressesThatStartWith = StartAdrFilter; }
public void ExecuteAllScriptsForDatabaseSmokeTest() { // Setup string pathName = "ExecuteAllScriptsForDatabaseSmokeTest"; DirectoryInfo directoryInfo = DirectoryStructureHelper.CreateValidDatabaseDirStructure(pathName); DirectoryStructureHelper.CreateEmptyFile(Path.Combine(directoryInfo.GetDirectories()[1].FullName, "1.0_TestScript.sql")); IFileStructurePolicy fileStucturePolicyComposite = new FileStructurePolicyComposite(); IDatabaseConnectionFactory connectionFactory = CreateMockDatabaseConnectionFactory(); IOutputLogger outputLogger = new ConsoleOutputLogger(); DatabaseReleaseTool dbreleaseTool = new DatabaseReleaseTool( directoryInfo.FullName, null, fileStucturePolicyComposite, outputLogger, _connectionStringFactory, connectionFactory); string fromVersion = "1.0.0.0"; string toVersion = "2.0"; DatabaseConnectionParameters parameters = new DatabaseConnectionParameters { DatabaseType = DatabaseType.MsSql }; parameters.CreationType = ConnectionStringCreationType.FromArguments; parameters.Arguments.Hostname = "."; parameters.Arguments.Username = "******"; parameters.Arguments.Password = "******"; parameters.Arguments.Database = "testdatabase"; // Act ExcecutionResult result = dbreleaseTool.ExecuteAllScriptsForDatabase(fromVersion, toVersion, parameters, null); Assert.IsTrue(result.Success, string.Join("|", result.Errors.ToArray())); Assert.IsEmpty(result.Errors); }
public MQTT_Handling(ConsoleOutputLogger Logger) { // create client instance client = new MqttClient(IPAddress.Parse(MQTTBindingConfiguration.MQTTBindingConfigFile.mqtt_broker_host),MQTTBindingConfiguration.MQTTBindingConfigFile.mqtt_broker_port,false,null,null,MqttSslProtocols.None); clientId = Guid.NewGuid().ToString(); ConsoleOutputLogger = Logger; // connect try { client.Connect(clientId); if (client.IsConnected) ConsoleOutputLogger.WriteLine("MQTT Binding: Successfully connected!"); else ConsoleOutputLogger.WriteLine("MQTT Binding: Connection Problem - could not connect!"); } catch(Exception e) { ConsoleOutputLogger.WriteLine("MQTT Binding Exception - " + e.Message); } }
public JSONData(TinyOnDiskStorage sensor_data_storage, ConsoleOutputLogger Logger) { sensor_data = sensor_data_storage; ConsoleOutputLogger_ = Logger; }
public Dictionary <string, List <Simulation> > Open(ConsoleOutputLogger consoleoutput, string filename) { try { ConsoleOutput = consoleoutput; FileName = filename; var path = Path.GetDirectoryName(filename); OutputsDirectory = Path.Combine(path, "Outputs"); if (RemapDictionary != null) { AddConsoleOutput($"Opening {filename}..."); if (File.Exists(filename)) { var type = Path.GetExtension(filename.ToLower()); if (type == ".hlk") { var datasets = new Dictionary <string, ParameterDataSet>(); var datafiles = new Dictionary <string, P51DataFile>(); var alldatasets = new List <ParameterDataSet>(); XmlDocument Doc = new XmlDocument(); Doc.Load(filename); var parameterdatasets = ExtractParameterDataSetFileNames(Doc); foreach (var item in parameterdatasets) { if (IsValidateType(item)) { var itemfilename = Path.GetFileName(item); string updateditem = item; if (!File.Exists(item)) { var oldpathname1 = Path.GetDirectoryName(item); var oldpathname = Path.GetDirectoryName(oldpathname1); updateditem = item.Replace(oldpathname, path).ToLower(); } if (updateditem.Contains("p51")) { var datafile = new P51DataFile(updateditem); datafiles.Add(itemfilename, datafile); } else { var dataset = ExtractParameterDataSet(updateditem); if (dataset != null) { datasets.Add(itemfilename, dataset); alldatasets.Add(dataset); } else { AddErrorOutput($"CORRUPTED PARAMETERSET -Couldn't read {item}"); } } } } DataFiles = datafiles.Select(x => x.Value).ToList(); Datasets = alldatasets; Simulations = ExtractSimulations(Doc, datasets, datafiles); GroupedSimulations = GroupSimulations(); GenerateInitialConsoleOutput(filename, alldatasets, datafiles); return(GroupedSimulations); } } else { AddErrorOutput($"File note found ({filename})"); } } else { AddErrorOutput($"Remap dictionary could not be found"); throw new Exception("Fatal Error - Remap dictionary not found"); } } catch (Exception ex) { AddErrorOutput($"Exception Caught: {ex}"); } return(null); }
static void Main(string[] args) { try { if (args != null && args.Length > 0 && args[0].Contains(".hlk")) { var consoleoutput = new ConsoleOutputLogger(true); var argstrings = string.Join(",", args); var inputspath = args[0]; var deleteExisting = argstrings.Contains("-x"); var outputdaily = argstrings.Contains("-d"); var outputmonthly = argstrings.Contains("-m"); var outputyear = argstrings.Contains("-y"); var type = outputyear ? HowLeakyOutputType.YearlyCsv:(outputmonthly?HowLeakyOutputType.MonthlyCsv: HowLeakyOutputType.DailyCsv); var outputscsv = GetOutputsCSV(args); var cores = GetCores(args); var controller = new SimulationController(); var project = new ProjectHLK(); project.Open(consoleoutput, inputspath); try { project.AddConsoleOutput("Preparing to rerun all simulations..."); project.AddConsoleOutput($"Outputs will be saved in {project.OutputsDirectory}..."); if (deleteExisting) { if (Directory.Exists(project.OutputsDirectory)) { var files = Directory.GetFiles(project.OutputsDirectory, "*.hlkbinout", SearchOption.AllDirectories).ToList(); if (files.Count > 0) { project.AddConsoleOutput($"Please wait... deleting {files.Count} existing binary output files"); foreach (var file in files) { File.Delete(file); } } var files2 = Directory.GetFiles(project.OutputsDirectory, "*.csv", SearchOption.AllDirectories).ToList(); if (files2.Count > 0) { project.AddConsoleOutput($"Please wait... deleting {files2.Count} existing csv output files"); foreach (var file in files2) { File.Delete(file); } } } } SimulationEngineExecute(project, outputscsv, cores, type, null); } catch (Exception ex) { project.AddErrorOutput(ex.ToString()); } } else { Console.WriteLine("Input parameters not configured correctly. Use:"); Console.WriteLine(" howleakyconsole \"<projectname.hlk>\" -<optional parameters>"); Console.WriteLine("Optional parameters include:"); Console.WriteLine(" -x : delete existing outputs"); Console.WriteLine(" -d : include daily outputs"); Console.WriteLine(" -m : include monthly outputs"); Console.WriteLine(" -y : include yearly outputs"); Console.WriteLine(" -c : number of processing cores"); Console.WriteLine(" -o : outputs list in csv format"); Console.WriteLine("Examples:"); Console.WriteLine(" howleakyconsole \"D:\\HLProjects\\project.hlk\" -m -c1 -o\"Rain,SoilEvap\""); Console.WriteLine(" howleakyconsole \"..\\myvalidation.hlk\" -m -o\"Rain,Runoff,DeepDrainage\""); Console.WriteLine(" "); Console.WriteLine("Outputs include:"); Console.WriteLine(" Climate'"); Console.WriteLine(" Rainfall mm - use 'Rain'"); Console.WriteLine(" Maximum temperature oC - use 'MaxTemp'"); Console.WriteLine(" Minimum temperatures oC - use 'MinTemp'"); Console.WriteLine(" Pan evaporation mm - use 'PanEvap'"); Console.WriteLine(" Solar radiation MJ/m2/day - use 'SolarRadiation'"); Console.WriteLine(" Water-balance'"); Console.WriteLine(" Runoff mm - use 'Runoff'"); Console.WriteLine(" Soil evaporation mm - use 'SoilEvap'"); Console.WriteLine(" Transpiration mm - use 'Transpiration'"); Console.WriteLine(" Evapotranspiration mm - use 'EvapoTransp'"); Console.WriteLine(" Deep drainage mm - use 'DeepDrainage'"); Console.WriteLine(" Overflow mm - use 'Overflow'"); Console.WriteLine(" Potential soil evaporation mm - use 'PotSoilEvap'"); Console.WriteLine(" Irrigation mm - use 'Irrigation'"); Console.WriteLine(" Runoff from Irrigation mm - use 'RunoffFromIrrigation'"); Console.WriteLine(" Runoff from rainfall mm - use 'RunoffFromRainfall'"); Console.WriteLine(" Lateral flow mm - use 'LateralFlow'"); Console.WriteLine(" Volume balance error % - use 'VBE'"); Console.WriteLine(" Runoff Curve No - use 'RunoffCurveNo'"); Console.WriteLine(" Runoff Rention No - use 'RunoffRetentionNumber'"); Console.WriteLine(" Layer 1 Sat Index - use 'Layer1SatIndex'"); Console.WriteLine(" Soil'"); Console.WriteLine(" Hillslope erosion t/ha - use 'HillSlopeErosion'"); Console.WriteLine(" Off-site sediment delivery t/ha - use 'OffSiteSedDelivery'"); Console.WriteLine(" Total available soil water mm - use 'TotalSoilWater'"); Console.WriteLine(" Soil water deficit mm - use 'SoilWaterDeficit'"); Console.WriteLine(" Total crop residue kg/ha - use 'TotalCropResidue'"); Console.WriteLine(" Total Residue Cover % - use 'TotalResidueCover'"); Console.WriteLine(" Total Cover % - use 'TotalCoverAllCrops'"); Console.WriteLine(" Layer Outputs: Available soil water mm - use 'SoilWater'"); Console.WriteLine(" Layer Outputs: Drainage mm - use 'Drainage'"); Console.WriteLine(" Crops'"); Console.WriteLine(" Days since planting days - use 'DaysSincePlanting'"); Console.WriteLine(" Leaf Area Index (if applicable) - use 'LAI'"); Console.WriteLine(" Crop cover % - use 'GreenCover'"); Console.WriteLine(" Residue cover % - use 'ResidueCover'"); Console.WriteLine(" Total cover % - use 'TotalCover'"); Console.WriteLine(" Crop residue kg/ha - use 'ResidueAmount'"); Console.WriteLine(" Dry matter kg/ha - use 'DryMatter'"); Console.WriteLine(" Root depth mm - use 'RootDepth'"); Console.WriteLine(" Yield t/ha - use 'Yield'"); Console.WriteLine(" Potential transpiration mm - use 'PotTranspiration'"); Console.WriteLine(" Growth regulator - use 'GrowthRegulator'"); Console.WriteLine(" Water Stress Index - use 'WaterStressIndex'"); Console.WriteLine(" Temperature Stress Index - use 'TempStressIndex'"); Console.WriteLine(" In-crop rainfall mm - use 'CropRainfall'"); Console.WriteLine(" In-crop irrigation mm - use 'CropIrrigation'"); Console.WriteLine(" In-crop runoff mm - use 'CropRunoff'"); Console.WriteLine(" In-crop soil evaporation mm - use 'SoilEvaporation'"); Console.WriteLine(" In-crop Transpiration mm - use 'CropTranspiration'"); Console.WriteLine(" In-crop evapotranspiration mm - use 'CropEvapoTranspiration'"); Console.WriteLine(" In-crop Drainage - use 'Crop - use 'mm - use 'CropDrainage'"); Console.WriteLine(" In-crop LateralFlow - use 'Crop - use 'mm - use 'CropLateralFlow'"); Console.WriteLine(" In-crop Overflow - use 'Crop - use 'mm - use 'CropOverflow'"); Console.WriteLine(" In-crop SoilErosion - use 'Crop - use 'mm - use 'CropSoilErosion'"); Console.WriteLine(" In-crop SedimentDelivery - use 'Crop - use 'mm - use 'CropSedimentDelivery'"); Console.WriteLine(" PlantingCount - use 'Crop - use 'mm - use 'PlantingCount'"); Console.WriteLine(" HarvestCount - use 'Crop - use 'mm - use 'HarvestCount'"); Console.WriteLine(" CropDeathCount - use 'Crop - use 'mm - use 'CropDeathCount'"); Console.WriteLine(" FallowCount - use 'Crop - use 'mm - use 'FallowCount'"); Console.WriteLine(" Irrigation'"); Console.WriteLine(" IrrigationRunoff mm - use 'IrrigationRunoff'"); Console.WriteLine(" IrrigationApplied mm - use 'IrrigationApplied'"); Console.WriteLine(" IrrigationInfiltration mm - use 'IrrigationInfiltration'"); Console.WriteLine(" Evaporation losses ML - use 'RingTankEvaporationLosses'"); Console.WriteLine(" Seepage losses ML - use 'RingTankSeepageLosses'"); Console.WriteLine(" Overtopping losses ML - use 'RingTankOvertoppingLosses'"); Console.WriteLine(" Irrigation losses ML - use 'RingTankIrrigationLosses'"); Console.WriteLine(" Total losses ML - use 'RingTankTotalLosses'"); Console.WriteLine(" Captured runoff inflow ML - use 'RingTankRunoffCaptureInflow'"); Console.WriteLine(" Rainfall inflow ML - use 'RingTankRainfalInflow'"); Console.WriteLine(" Effective additional inflow ML - use 'RingTankEffectiveAdditionalInflow'"); Console.WriteLine(" Total additional inflow ML - use 'RingTankTotalAdditionalInflow'"); Console.WriteLine(" Total inflow ML - use 'RingTankTotalInflow'"); Console.WriteLine(" Ineffective additional inflow ML - use 'RingTankIneffectiveAdditionalInflow'"); Console.WriteLine(" Storage volume ML - use 'RingTankStorageVolume'"); Console.WriteLine(" Irrigation storage level % - use 'RingTankStorageLevel'"); Console.WriteLine(" Phosphorus'"); Console.WriteLine(" Particulate concentration mg/L - use 'ParticulateConc'"); Console.WriteLine(" Dissolved concentration mg/L - use 'DissolvedConc'"); Console.WriteLine(" Bioavailable particulate P concentration mg/L - use 'BioAvailParticPConc'"); Console.WriteLine(" Bioavailable P concentration mg/L - use 'BioAvailPConc'"); Console.WriteLine(" Total P concentration mg/L - use 'TotalPConc'"); Console.WriteLine(" Particulate P export kg/ha - use 'ParticPExport'"); Console.WriteLine(" Dissolved export kg/ha - use 'PhosExportDissolve'"); Console.WriteLine(" Bioavailable particulate P export kg/ha - use 'BioAvailParticPExport'"); Console.WriteLine(" Total bioavailable export kg/ha - use 'TotalBioAvailExport'"); Console.WriteLine(" Total phosphorus export kg/ha - use 'TotalP'"); Console.WriteLine(" PPHLC kg/ha - use 'PPHLC'"); Console.WriteLine(" Pesticides'"); Console.WriteLine(" Applied pest on veg g/ha - use 'AppliedPestOnVeg'"); Console.WriteLine(" Applied pest on stubble g/ha - use 'AppliedPestOnStubble'"); Console.WriteLine(" Applied pest on soil g/ha - use 'AppliedPestOnSoil'"); Console.WriteLine(" Pest on veg g/ha - use 'PestOnVeg'"); Console.WriteLine(" Pest on stubble g/ha - use 'PestOnStubble'"); Console.WriteLine(" Pest in soil g/ha - use 'PestInSoil'"); Console.WriteLine(" Pest soil conc. mg/kg - use 'PestSoilConc'"); Console.WriteLine(" Pest sediment phase conc. mg/kg - use 'PestSedPhaseConc'"); Console.WriteLine(" Pest water phase conc. ug/L - use 'PestWaterPhaseConc'"); Console.WriteLine(" Pest runoff conc. ug/L - use 'PestRunoffConc'"); Console.WriteLine(" Pest lost in runoff water g/ha - use 'PestLostInRunoffWater'"); Console.WriteLine(" Pest lost in runoff sediment g/ha - use 'PestLostInRunoffSediment'"); Console.WriteLine(" Total pest lost in runoff g/ha - use 'TotalPestLostInRunoff'"); Console.WriteLine(" Pest lost in leaching g/ha - use 'PestLostInLeaching'"); Console.WriteLine(" Pest losses as percent of last input % - use 'PestLossesPercentOfInput'"); Console.WriteLine(" Nitrates'"); Console.WriteLine(" Dissolved NO3 N in Runoff mg/L - use 'NO3NDissolvedInRunoff'"); Console.WriteLine(" NO3 Runoff Load kg/ha - use 'NO3NRunoffLoad'"); Console.WriteLine(" Dissolved NO3 N in Leaching mg/L - use 'NO3NDissolvedLeaching'"); Console.WriteLine(" NO3 N Leaching Load kg/ha - use 'NO3NLeachingLoad'"); Console.WriteLine(" Particulate N in Runoff kg/ha - use 'ParticNInRunoff'"); Console.WriteLine(" PNHLC kg/ha - use 'PNHLCa'"); Console.WriteLine(" NO3 N Store (top layer) kg/ha - use 'NO3NStoreTopLayer'"); Console.WriteLine(" NO3 N Store (bot layer) kg/ha - use 'NO3NStoreBotLayer'"); Console.WriteLine(" Total N Store (top layer) kg/ha - use 'TotalNStoreTopLayer'"); Console.WriteLine(" Drainage in NO3 period mm - use 'DrainageInNO3Period'"); Console.WriteLine(" Runoff in NO3 period mm - use 'RunoffInNO3Period'"); Console.WriteLine(" Solutes'"); Console.WriteLine(" Total Soil Solute kg/ha - use 'TotalSoilSolute'"); Console.WriteLine(" Total Soil Water Solute (Concentration) mg/L_soil-water - use '??'"); Console.WriteLine(" Layer Solute (Load) kg/ha - use 'LayerSoluteLoad'"); Console.WriteLine(" Layer Solute (Concentration) mg/L_soil-water - use 'LayerSoluteConcmgPerL'"); Console.WriteLine(" Layer Solute (Concentration) mg/kg soil - use 'LayerSoluteConcmgPerkg'"); Console.WriteLine(" Leachate Solute Concentration mg/L soil-water - use 'LeachateSoluteConcmgPerL'"); Console.WriteLine(" Leachate Solute Load kg/ha - use 'LeachateSoluteLoadkgPerha'"); } } catch (Exception ex) { Console.Write($"{ex}"); } }