TVT Device SDK
![Written in TypeScript](https://img.shields.io/github/languages/top/2BAD/tvt)
A modern TypeScript SDK for TVT CCTV devices, providing a clean and type-safe interface for device management, monitoring, and control. This project is the result of extensive research and reverse engineering of TVT (Tongwei Video Technology) CCTV systems.
🌟 Features
- Type-Safe API: Full TypeScript support with comprehensive type definitions
- Lazy Loading: Efficient resource management with on-demand library loading
- Error Handling: Robust error handling with detailed error messages
- Logging: Built-in debug logging for easier troubleshooting
- Documentation: Extensive JSDoc documentation for all methods
- Cross-Platform: Compatible with Node.js on Linux systems
📦 Installation
npm install tvt
🚀 Quick Start
import { Device } from 'tvt'
const device = new Device('192.168.1.100', 9008)
device.login('admin', 'password')
const info = device.info
console.log(`Connected to ${info.deviceName}`)
device.saveSnapshot(0, '/path/to/snapshot.jpg')
device.dispose()
🔧 Core Features
Device Management
- Device discovery
- Connection management
- Authentication
- Device information retrieval
Security Features
- Alarm management
- Manual alarm triggering
- Event monitoring
Media Operations
- Snapshot capture
- Live stream management
- Video recording
📚 API Reference
Device Class
The main interface for interacting with TVT devices.
class Device {
constructor(ip: string, port?: number, settings?: Settings)
login(user: string, pass: string): boolean
logout(): boolean
triggerAlarm(value: boolean): boolean
saveSnapshot(channel: number, filePath: string): boolean
}
See API Documentation for detailed method descriptions.
🛠️ Development
Prerequisites
- Node.js 18 or higher
- Linux operating system
Building from Source
git clone https://github.com/yourusername/tvt.git
cd tvt
npm install
npm run build
Running Tests
npm test
📁 Project Structure
tvt/
├── bin/ # Precompiled SDK libraries
├── docs/ # Documentation and examples
├── proto/ # Protocol definitions and dissectors
└── source/ # TypeScript implementation
├── lib/ # Core SDK implementation
├── helpers/ # Utility functions
└── types/ # TypeScript type definitions
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
Development Guidelines
- Follow TypeScript best practices
- Include tests for new features
- Update documentation as needed
- Follow the existing code style
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
⚠️ Disclaimer
This project is not officially associated with TVT Digital Technology Co., Ltd. It is an independent implementation based on research and reverse engineering. Use at your own risk.
🙏 Acknowledgments
- TVT Digital Technology for their CCTV systems
- The open-source community for various tools and libraries used in this project
- Contributors who have helped improve this SDK
📬 Support
- Create an issue for bug reports or feature requests