Problem wurde behoben, es sollte nicht in der selben Funktion wieder gestoppt werden
#closed
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
Problem wurde behoben, es sollte nicht in der selben Funktion wieder gestoppt werden
#closed
Moin NN,
ich möchte über einen Btn eine Webseit erstellen lassen wo 0 und 1 des Scanners der Empfangenen Werte als Text ausgeben wird.
Der Scanner funktioniert bereits, die 0 und 1 habe ich noch nicht entwickelt.
Doch wisst ihr wieso keine Webseite erstellt wird?
Hier der Code:
Main.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WIATest;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.Threading;
namespace Scannerapplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//button click event
private void btn_scan_Click(object sender, EventArgs e)
{
MessageBox.Show("Die Verbindung muss bei jedem neustart erfolgen!");
try
{
//get list of devices available
List<string> devices = WIAScanner.GetDevices();
foreach (string device in devices)
{
lbDevices.Items.Add(device);
}
//check if device is not available
if (lbDevices.Items.Count == 0)
{
MessageBox.Show("Es wurden keine WIA Scanner gefunden");
}
else
{
lbDevices.SelectedIndex = 0;
}
//get images from scanner
List<Image> images = WIAScanner.Scan((string)lbDevices.SelectedItem);
foreach (Image image in images)
{
pic_scan.Image = image;
pic_scan.Show();
pic_scan.SizeMode = PictureBoxSizeMode.StretchImage;
//save scanned image into specific folder
image.Save(@"E:\" + DateTime.Now.ToString("yyyy-MM-dd HHmmss") + ".jpeg", ImageFormat.Jpeg);
}
}
catch (Exception exc)
{
MessageBox.Show(exc.Message);
}
}
private void Home_SizeChanged(object sender, EventArgs e)
{
int pheight = this.Size.Height - 153;
pic_scan.Size = new Size(pheight - 150, pheight);
}
private void btn_start_Click(object sender, EventArgs e)
{
WebServer ws = new WebServer(SendResponse, "http://localhost:8080/index/");
ws.Run();
// Console.WriteLine("Drücken sie eine Taste um es zu schließen!");
// Console.ReadKey();
ws.Stop();
}
public static string SendResponse(HttpListenerRequest request)
{
return string.Format("<HTML><BODY>BinaryDP<br>{0}</BODY></HTML>", DateTime.Now);
}
}
}
Alles anzeigen
Class - WebServer:
using System;
using System.Net;
using System.Threading;
using System.Linq;
using System.Text;
namespace Scannerapplication
{
public class WebServer
{
private readonly HttpListener _listener = new HttpListener();
private readonly Func<HttpListenerRequest, string> _responderMethod;
public WebServer(string[] prefixes, Func<HttpListenerRequest, string> method)
{
if (!HttpListener.IsSupported)
throw new NotSupportedException(
"Die Server Version ist veraltet");
// URI prefixes are required, for example
// "http://localhost:8080/index/".
if (prefixes == null || prefixes.Length == 0)
throw new ArgumentException("prefixes");
// A responder method is required
if (method == null)
throw new ArgumentException("method");
foreach (string s in prefixes)
_listener.Prefixes.Add(s);
_responderMethod = method;
_listener.Start();
}
public WebServer(Func<HttpListenerRequest, string> method, params string[] prefixes)
: this(prefixes, method)
{ }
public void Run()
{
ThreadPool.QueueUserWorkItem((o) =>
{
Console.WriteLine("Webserver running...");
try
{
while (_listener.IsListening)
{
ThreadPool.QueueUserWorkItem((c) =>
{
var ctx = c as HttpListenerContext;
try
{
string rstr = _responderMethod(ctx.Request);
byte[] buf = Encoding.UTF8.GetBytes(rstr);
ctx.Response.ContentLength64 = buf.Length;
ctx.Response.OutputStream.Write(buf, 0, buf.Length);
}
catch { } // suppress any exceptions
finally
{
// always close the stream
ctx.Response.OutputStream.Close();
}
}, _listener.GetContext());
}
}
catch { } // suppress any exceptions
});
}
public void Stop()
{
_listener.Stop();
_listener.Close();
}
}
}
Alles anzeigen
Class - Scanner:
using System;
using System.Collections.Generic;
using System.IO;
using System.Drawing;
namespace WIATest
{
class WIAScanner
{
const string wiaFormatBMP = "{B96B3CAB-0728-11D3-9D7B-0000F81EF32E}";
class WIA_DPS_DOCUMENT_HANDLING_SELECT
{
public const uint FEEDER = 0x00000001;
public const uint FLATBED = 0x00000002;
}
class WIA_DPS_DOCUMENT_HANDLING_STATUS
{
public const uint FEED_READY = 0x00000001;
}
class WIA_PROPERTIES
{
public const uint WIA_RESERVED_FOR_NEW_PROPS = 1024;
public const uint WIA_DIP_FIRST = 2;
public const uint WIA_DPA_FIRST = WIA_DIP_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
public const uint WIA_DPC_FIRST = WIA_DPA_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
//
// Scanner only device properties (DPS)
//
public const uint WIA_DPS_FIRST = WIA_DPC_FIRST + WIA_RESERVED_FOR_NEW_PROPS;
public const uint WIA_DPS_DOCUMENT_HANDLING_STATUS = WIA_DPS_FIRST + 13;
public const uint WIA_DPS_DOCUMENT_HANDLING_SELECT = WIA_DPS_FIRST + 14;
}
/// <summary>
/// Use scanner to scan an image (with user selecting the scanner from a dialog).
/// </summary>
/// <returns>Scanned images.</returns>
public static List<Image> Scan()
{
WIA.ICommonDialog dialog = new WIA.CommonDialog();
WIA.Device device = dialog.ShowSelectDevice(WIA.WiaDeviceType.UnspecifiedDeviceType, true, false);
if (device != null)
{
return Scan(device.DeviceID);
}
else
{
throw new Exception("You must select a device for scanning.");
}
}
/// <summary>
/// Use scanner to scan an image (scanner is selected by its unique id).
/// </summary>
/// <param name="scannerName"></param>
/// <returns>Scanned images.</returns>
public static List<Image> Scan(string scannerId)
{
List<Image> images = new List<Image>();
bool hasMorePages = true;
while (hasMorePages)
{
// select the correct scanner using the provided scannerId parameter
WIA.DeviceManager manager = new WIA.DeviceManager();
WIA.Device device = null;
foreach (WIA.DeviceInfo info in manager.DeviceInfos)
{
if (info.DeviceID == scannerId)
{
// connect to scanner
device = info.Connect();
break;
}
}
// device was not found
if (device == null)
{
// enumerate available devices
string availableDevices = "";
foreach (WIA.DeviceInfo info in manager.DeviceInfos)
{
availableDevices += info.DeviceID + "\n";
}
// show error with available devices
throw new Exception("The device with provided ID could not be found. Available Devices:\n" + availableDevices);
}
WIA.Item item = device.Items[1] as WIA.Item;
try
{
// scan image
WIA.ICommonDialog wiaCommonDialog = new WIA.CommonDialog();
WIA.ImageFile image = (WIA.ImageFile)wiaCommonDialog.ShowTransfer(item, wiaFormatBMP, false);
// save to temp file
string fileName = Path.GetTempFileName();
File.Delete(fileName);
image.SaveFile(fileName);
image = null;
// add file to output list
images.Add(Image.FromFile(fileName));
}
catch (Exception exc)
{
throw exc;
}
finally
{
item = null;
//determine if there are any more pages waiting
WIA.Property documentHandlingSelect = null;
WIA.Property documentHandlingStatus = null;
foreach (WIA.Property prop in device.Properties)
{
if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_SELECT)
documentHandlingSelect = prop;
if (prop.PropertyID == WIA_PROPERTIES.WIA_DPS_DOCUMENT_HANDLING_STATUS)
documentHandlingStatus = prop;
}
// assume there are no more pages
hasMorePages = false;
// may not exist on flatbed scanner but required for feeder
if (documentHandlingSelect != null)
{
// check for document feeder
if ((Convert.ToUInt32(documentHandlingSelect.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_SELECT.FEEDER) != 0)
{
hasMorePages = ((Convert.ToUInt32(documentHandlingStatus.get_Value()) & WIA_DPS_DOCUMENT_HANDLING_STATUS.FEED_READY) != 0);
}
}
}
}
return images;
}
/// <summary>
/// Gets the list of available WIA devices.
/// </summary>
/// <returns></returns>
public static List<string> GetDevices()
{
List<string> devices = new List<string>();
WIA.DeviceManager manager = new WIA.DeviceManager();
foreach (WIA.DeviceInfo info in manager.DeviceInfos)
{
devices.Add(info.DeviceID);
}
return devices;
}
}
}
Alles anzeigen
Bedanke mich bei jeder Hilfe
Das ist natürlich übersichtlicher mit einer Config doch ich wollte im erstmal eine Basis schaffen.
Wenn ich es zeitlich schaffe ja
Du kannst einfach Abfragen welches Fahrzeug gerade angesprochen wird und dann für das x beliebige Fahrzeug die Kords anpassen
Also ja
Bin am Handy wodurch ich dir keine Vorlage bieten kann aber im Grunde kannst du ja den Befehl. createSimpleObject benutzen und das dann half auf die Kords setzen
TW_Sebastian wieso schreibst du dir nicht selbst ein Script, da gekaufte Scrips nicht die Lösung für dein Problem sein wird. 1: lernt man so nichts 2: sind gekaufte Scripts keine Basis
Es ist nicht schwer ein solches Script zu schreiben, im Prinzip erstellst du das 3D Modell über das aktuelle Kennzeichen da mit setPlate es bei dem Mod ja mich geht
Leider geht es nicht so
#include "..\script_macros.hpp"
/*
File: fn_initCop.sqf
Author: Bryan "Tonic" Boardwine
Description:
Cop Initialization file.
*/
player addRating 9999999;
if (life_blacklisted) exitWith {
["Blacklisted",false,true] call BIS_fnc_endMission;
sleep 30;
};
if ((FETCH_CONST(life_copLevel)) < 1 && (FETCH_CONST(life_adminlevel) isEqualTo 0)) exitWith {
["Notwhitelisted",false,true] call BIS_fnc_endMission;
sleep 35;
};
if(player in [cop_1]) && ((FETCH_CONST(life_copLevel)) < 10) exitWith {
["Notwhitelisted",false,true] call BIS_fnc_endMission;
sleep 35;
};
player setVariable ["rank",(FETCH_CONST(life_coplevel)),true];
Alles anzeigen
Ich werde es später testen.
Die Doofheit von mir tut weh,
Habe nicht daran gedacht das das str der error ist ?
Hey NN,
Da ich am Handy bin kann ich euch keine Logs anhängen.
Wisst ihr wieso die Cops trotz unter lvl 10 in einen Slot des Chiefs joinen können ?
Hier der Code
if ((FETCH_CONST(life_copLevel)) < 1 && (FETCH_CONST(life_adminlevel) isEqualTo 0)) exitWith {
["Notwhitelisted",false,true] call BIS_fnc_endMission;
sleep 35;
};
if(!(str(player) in ["cop_1"]) && ((FETCH_CONST(life_copLevel)) < 10) exitWith {
["noslotpermission",false,true] call BIS_fnc_endMission;
sleep 35;
};
Rufen wir es mal wieder ins Leben
Hypothese
Du hast die Condition zur Abfrage der Lizenz falsch geschrieben, da ich am Handy bin kann ich dir jetzt gerade nicht helfen.
Wie Alice Kingsleigh schon schrieb...
Einfach den Beitrag folgen.
SuFu benutzen
BlueType wer lesen kann ist klar im Vorteil, Nur das Medicsystem von ace.
Haben wir selbst entwickelt und Sehr Performance Norm gemacht.
Kannst dich bei unserem Projekt ja selbst überzeugen.
SeaLife kommt bald online
Wieso sagt immer jeder ace.
Wenn man einen Non-Modded Server haben möchte kann man so vieles Ohne ACE. Das komplette medicsystem haben wir als Script (Non-Mod).
Aber back to topic
Einfach wie o.g. Mit der DB Regeln, da ich nicht am pc bin kann ich es dir leider nicht zeigen
Das mit den Schlüssel > SuFu
Den Rest müsste man weiterentwickeln,
Beispiel: DB Abfrage auf welcher Seite das Fahrzeug ist, und wenn es auf der Seite ist aktiviere Schlüssel Script
Also auf unserem Server kann man seinen Namen nicht mehr ändern, deshalb habe ich eine Datei Namens fn_NewBe.sqf geschrieben,diese sieht so aus
/*
Author: Natic
Description: Take Care and watch !
Reclaimer: nobody is allowed to/edit this Script
*/
if (playerside != civilian) then {
if (!(life_firstSpawn)) then {
systemChat "Du bist im Anfängerschutz, weitere Informationen findest du im Informationsmenu";
player setVariable ["life_newbe", true];
sleep 1;
};
if ((life_newbe)) then {
player setVariable ["life_newbe", false];
};
if (!(life_newbe)) then {
//Code for Knockout missing
//Aggressive Handlung vom Spieler
if ((isPlayer _source) && (vehicle _source != _source)) then {
if(_part == "body" && (player getVariable["limit",true]) && playerSide in [west,independent,civilian,east]) then {
player setVariable ["limit",false];
[_source] spawn {
_driver = _this select 0;
["Da du aggressiv gehandelt hast, hast du deinen Anfängerschutz verloren", false, "fast"] spawn ESG_fnc_notify;
player setVariable ["life_newbe",false];
sleep 10;
player setVariable ["limit",true];
};
};
0 spawn
{
while {true} do
{
if (weapons player isEqualTo []) then
{
} else {
["Da du aggressiv gehandelt hast, hast du deinen Anfängerschutz verloren", false, "fast"] spawn ESG_fnc_notify;
player setVariable ["life_newbe",false];
};
};
};
};
};
Alles anzeigen
Ich hoffe es würde so funktionieren ?
Jetzt hatte ich noch vor, in der fn_playerKnockout.sqf zu schreiben
if ((player getVariable ["life_newbe",true])) exitWith { ["Du kannst den Spieler nicht niederschlagen", false, "fast"] spawn ESG_fnc_notify; };
Vielen Dank für eure Hilfe
MfG
Natic | Technic-Zone