Megosztás:


Eszközkarbantartás

Fontos

A modern nyomtatási platform a Windows előnyben részesített eszköze a nyomtatókkal való kommunikációnak. Azt javasoljuk, hogy a Microsoft IPP postafiók osztály meghajtóját a Nyomtatótámogatási alkalmazásokkal (PSA) együtt használja a nyomtatási élmény testreszabása érdekében a nyomtatóeszközök fejlesztése során a Windows 10 és 11 rendszerekben.

További információ: Print Support App v1 és v2 tervezési útmutató.

A Windows 8.1 és újabb verzióiban eszközkarbantartási funkciót vezetnek be.

Ez a funkció kétirányú kommunikációt (Bidi) használ annak érdekében, hogy eszközkarbantartási parancsokat küldjön egy UWP-eszközalkalmazásból vagy egy nyomtatóbővítményből a nyomtatási alrendszerbe. Parancsokat küldhet például a nyomtatóeszközre a tintafúvókák tisztításához.

A portmonitor a szállító által biztosított Bidi-bővítményfájlokkal együttműködve lefordítja ezeket a Bidi-kéréseket eszköz- és protokollspecifikus parancsokra, majd továbbítja őket a nyomtatóeszközre. Az eszközkarbantartási feladat úgy történik, hogy Bidi "Set" lekérdezéseket küld a nyomtatóeszközre, és az eszköz Bidi-válasza jelzi, hogy a művelet sikeres volt-e vagy nem sikerült.

Az új aszinkron felület, amely segít a funkció megvalósításában, XML-adatokat vesz fel egy sztringparaméter és egy visszahívási objektum formájában.

Mivel az interfész aszinkron, a hívónak nem kell várnia a válaszra. A Bidi-művelet befejezése után a rendszer meghívja a visszahívási objektumot.

Az új felületek

Az eszközkarbantartási funkció implementálásához a következő interfészek lettek bevezetve a Windowsban (kódnév: "Kék").

IPrinterBidiSetRequestCallback

IPrinterExtensionAsyncOperation

IPrinterQueue2

Eszközkarbantartási munkamenet kezdeményezése

Az eszközkarbantartási munkamenet elindításához először XML-adatként kell létrehoznia a parancssztringet. Ezután létre kell hoznia a visszahívási objektum egy példányát, amely az aszinkron Bidi-művelet befejezése után lesz meghívva.

A művelet befejezése után a rendszer meghívja a visszahívási objektumot az IPrinterBidiSetRequestCallback::Completed metóduson, amely megadja a művelet HRESULT értékét. Ezután elemezheti ezt a HRESULT értéket, és végrehajthat minden más szükséges feladatot.

Az alábbi C#-kódrészlet bemutatja, hogyan lehet eszközkarbantartási feladatot kiadni egy UWP-eszközalkalmazásból.

//
// Declare a global constant that will be used
// to determine whether method calls were successful
//
const int S_OK = 0;
 
class BidiSendAsyncDemo
{
    //
    // Create a queue object and also
    // create the command string
    //
    void PerformDeviceMaintenance(
        IPrinterQueue2 queue,
        string bidiRequestInXml
        )
    {
        BidiSetResultCallback callBack = new BidiSetResultCallback();

        IPrinterExtensionAsyncOperation asyncOperation =
          queue.SendBidiSetRequestAsync(bidiRequestInXml, callBack);
    }
}

/// <summary>
/// This class represents the callback object
/// </summary>
public class BidiSetResultCallback :
    IPrinterBidiSetRequestCallback
{
    void Completed(
        string bidiResponse,
        int hr
        )
    {
        if (S_OK == hr)
        {
            // parse and interpret 'bidiResponse'
        }
    }
} 

Az eszközkarbantartást az UWP-eszközalkalmazások támogatják, miután az alkalmazás a három belépési pont bármelyikén keresztül meghívásra kerül.

IPrinterBidiSetRequestCallback

IPrinterExtensionAsyncOperation

IPrinterQueue2