PJLink.Client
1.0.2
dotnet add package PJLink.Client --version 1.0.2
NuGet\Install-Package PJLink.Client -Version 1.0.2
<PackageReference Include="PJLink.Client" Version="1.0.2" />
<PackageVersion Include="PJLink.Client" Version="1.0.2" />
<PackageReference Include="PJLink.Client" />
paket add PJLink.Client --version 1.0.2
#r "nuget: PJLink.Client, 1.0.2"
#:package PJLink.Client@1.0.2
#addin nuget:?package=PJLink.Client&version=1.0.2
#tool nuget:?package=PJLink.Client&version=1.0.2
PJLink.Client
A .NET client implementation of the PJLink protocol for projector control. This client specifically implements PJLink Class 1 specification, which is the most widely supported version of the protocol.
About PJLink Class 1
PJLink is a unified standard for operating and controlling data projectors and displays. Class 1 is the base specification that provides essential control features:
- Power state control and monitoring
- Input source switching and status
- Audio/Video mute control
- Error and lamp status monitoring
- Device information queries
For more information about the PJLink specification, visit PJLink Official Website.
Features
- Full implementation of PJLink Class 1 protocol
- Proper connection handling with automatic disposal
- Support for all Class 1 commands:
- Power control (on/off/status)
- Input selection (RGB, Video, Digital, Storage, Network)
- Audio/Video mute control
- Error status monitoring
- Lamp information
- Projector information (name, manufacturer, model)
- Comprehensive input source definitions following official guidelines
- Proper authentication handling for secure devices
- Automatic connection management per command
- Full async support with cancellation
Installation
dotnet add package PJLink.Client
Usage
using PJLink.Client;
// Create a client instance
using var client = new PJLinkClient("192.168.1.100", "password");
// Authenticate
var isAuthenticated = await client.AuthenticateAsync();
if (!isAuthenticated)
{
Console.WriteLine("Authentication failed");
return;
}
// Power on the projector
var status = await client.PowerOnAsync();
Console.WriteLine($"Power status: {status}");
// Switch to HDMI input
var input = await client.SetInputAsync(PJLinkCommands.Input.Source.Digital_Hdmi);
Console.WriteLine($"Current input: {input}");
// Get error status
var errorStatus = await client.GetErrorStatusAsync();
Console.WriteLine($"Error status: {errorStatus}");
Input Sources
The client supports all standard input sources defined in the PJLink Class 1 specification:
RGB (11-19)
- D-SUB
- 5 BNC
- DVI-I Analog
- SCART
- M1-DA
Video (21-29)
- Composite RCA
- Component (3 RCA)
- Component BNC
- S-Video
- D Terminal
Digital (31-39)
- DVI-I Digital
- DVI-D
- HDMI
- SDI
- DisplayPort
- Wireless HDMI
Storage (41-49)
- USB Type A
- PC Card
- CompactFlash
- SD Card
Network (51-59)
- Wired LAN (RJ-45)
- Wireless LAN
- USB Type B
- Wireless USB
- Bluetooth
Documentation
Each command follows the PJLink Class 1 protocol specification and properly handles the connection lifecycle:
- A new TCP connection is established for each command
- The connection is automatically closed after receiving the response
- Authentication is handled automatically when required
- All commands are async and support cancellation
License
This project is licensed under the MIT License - see the LICENSE file for details.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.