Próbuję pobrać aplikację node.js do interakcji z czytnikiem linii papilarnych .NET SDK o nazwie U.are.U. Pakiet SDK udostępnia biblioteki .dll (win32 i x64), Java i .NET. Zdecydowałem się użyć .NET do prostego użycia, mając wszystkie interfejsy gotowe do użycia i wszystko.Czytnik linii papilarnych na węźle.js do .NET SDK
Obecny problem, przed którym stoję, polega na wywołaniu funkcji .NET i zachowaniu asynchronicznej natury node.js. Przepływ aplikacji (na przykładzie .NET) jest dość prosty, 3 wywołania biblioteki i odcisk palca jest wykonywany.
private IEnumerable<Fmd> CaptureAndExtractFmd()
{
while (!reset)
{
DataResult<Fmd> resultConversion;
try
{
if (count >= 8)
{
SendMessage("Enrollment was unsuccessful. Please try again.");
count = 0;
break;
}
Fid fid = null;
if (!_sender.CaptureFinger(ref fid))
break;
if (fid == null)
continue;
count++;
resultConversion = FeatureExtraction.CreateFmdFromFid(fid, Constants.Formats.Fmd.ANSI);
SendMessage("A finger was captured. \r\nCount: " + (count));
if (resultConversion.ResultCode != Constants.ResultCode.DP_SUCCESS)
break;
}
catch (Exception)
{
break;
}
yield return resultConversion.Data;
}
}
Jak mogę to zmienić, aby mogła być użyta w pliku node.js, zamiast programu .NET gui?
Należy również zauważyć, że plik node.js nie zawsze będzie wywoływał funkcję w programie .NET w celu odebrania funkcji. Część identyfikacyjna programu dzieje się asynchronicznie i jest wyłączona, gdy ktoś kładzie palec na czytniku linii papilarnych, co oznacza, że część node.js nie ma pojęcia, kiedy to się stanie. Tak więc nie mogę polegać na ciągłym pytaniu o dane z części .NET, musi wywoływać wywołania zwrotne na node.js bez pytania. W zasadzie jest to komunikacja dwukierunkowa, nie tylko na żądanie, ponieważ żądanie użycia serwera sieciowego byłoby znacznie łatwiejsze.
Znalazłem bibliotekę node.js, która może zamknąć lukę między .NET i node.js o nazwie edge.js, czy może to być pomocne?
Zasadniczo edge.js może działać wraz z node-webkit (które będę żeglugowego moją aplikację), mogę zadzwonić API węzeł bezpośrednio w stronę, więc mogę zaktualizować DOM W zależności od wyniku z biblioteki. Potrzebuję być w stanie zarejestrować zadanie asynchroniczne, które może powiadomić CAN z wewnątrz CLR do odpowiednika node.js przez wyemitowanie zdarzenia lub wywołanie wywołania zwrotnego!
Według autora edge.js można to zrobić łatwo https://github.com/tjanczuk/edge/issues/54#issuecomment-17967082 ja po prostu nie mają wystarczająco dużo umiejętności .NET to zrobić (z pełnego modułu rozwiniętego) ze wszystkich wywołań zwrotnych.
Czy możesz wyjaśnić, dlaczego przesuwasz się tutaj za pomocą pliku node.js? – vittore
Używam węzła webkit, który może wysyłać "przeglądarkę" wraz z węzłem.js wewnątrz i mogę wywoływać węzły API bezpośrednio z tagów skryptów, między nimi jest płynny mostek, a ponieważ będę łączyć ze sobą każdą aplikację (styl P2P), to musi być – pocesar
Możesz chcieć rzucić okiem na Reactive.NET (Rx.NET). Używałem go wcześniej, aby wywoływać wywołania zwrotne, gdy coś się wydarzy, co jest możliwe dzięki koncepcji subskrypcji, podobnie jak w przypadku zdarzeń. – Chris