جدول المحتويات
RTSP عنوان دفق الصوت والفيديو في الوقت الحقيقي:
- شكل: rtsp://الملكية الفكرية:رقم المنفذ/الدفق
- المنفذ الافتراضي: 554
- معرف الدفق: 0 (التيار الرئيسي), 1 (تيار ثانوي)
- فمثلا, لاسترداد الدفق الفرعي من عنوان الجهاز 192.168.1.188, عنوان URL هو:
- rtsp://192.168.1.1 8 8 :554 / 1
العميل (تطبيق الجوال) يحصل على معلمات الكاميرا ويضبطها عبر بروتوكول TCP;
تعمل الكاميرا كخادم TCP, مع وجود منفذ TCP الافتراضي 8866.
تنسيق بيانات اتصال TCP:
سلسلة JSON نقية
الحصول على حالة الكاميرا:
بنية البيانات:
بنية typedef
{
شار s8DevId[64]; // معرف الجهاز, الافتراضي هو IP إذا لم يتم تعيين معرف.
u32 u32TfRecord; // حالة تسجيل بطاقة TF, 0: لا يوجد تسجيل; 1: التسجيل قيد التقدم
}JSON_DEV_STATUS_INFO_S;
أحرف الأمر:
#تعريف JS_CMD_GET_DEV_STATUS “GetDevStatus”
بافتراض أن عنوان IP الخاص بالجهاز هو 192.168.1.188, يرسل العميل بيانات JSON التالية:
{
” GetDevStatus “: { }
}
بعد أن تلقت الكاميرا البيانات بنجاح, قامت بإرجاع بيانات JSON التالية:
{
” GetDevStatus “: {
” s8DevId ” : ” 192.168.1.188 ” ,
“ u32TfRecord ” : 0
}
}
الحصول على/إعداد معلمة ترميز الفيديو:
بنية البيانات:
بنية typedef
{
u8 u8VideoEncChn; //0 : التيار الرئيسي; 1: تيار ثانوي;
u8 u8VideoCodecType; // 1:h264 ; 2:ص265
u16 u16VideoWidth; // عرض الفيديو
u16 u16VideoHeight; // ارتفاع الفيديو
u16 u8FrameRate; // معدل الإطار (1-30)
u16 u8IframeInterval; // أنا- حجم الفاصل الزمني للإطار (1-100)
u8 u8BitrateControlMode; //وضع التحكم في معدل البت: 0: CBR 1: VBR
u16 u16BitRateKps; // حجم معدل البت
شار s8VideoSizeName[256]; // قائمة القرارات المدعومة }JSON_VIDEO_ENC_PARAM_S;
أحرف الأمر:
الحصول على المعلمات:
#تعريف JS_CMD_GET_VIDEO_ENC_PARAM “getVideoEncParam”
تحديد المعلمات:
#تعريف JS_CMD_SET_VIDEO_ENC_PARAM “setVideoEncParam”
فمثلا:
يسترد العميل بيانات JSON التالية التي تحتوي على معلمات التشفير الخاصة بتدفق البت الرئيسي للكاميرا:
{
” getVideoEncParam “: {
” u8VideoEncChn “: 0
}
}
بيانات JSON التي يتم إرجاعها بواسطة الكاميرا هي كما يلي;
{
” getVideoEncParam “: {
” u8VideoEncChn “: 0,
" u8VideoCodecType " : 1,
" u16VideoWidth " : 3840,
” u16VideoHeight ” : 1080,
"u8FrameRate" : 30,
” u8IframeInterval ” : 60,
” u8BitrateControlMode ” : 0,
" u16BitRateKps " : 4096,
” s8VideoSizeName ” : ” 3840×1080,1920×540 “
}
}
يقوم العميل بتعيين معدل إطار البث الثانوي للكاميرا على 15 ومعدل البت إلى 1024 كيلو بايت بتنسيق JSON, على النحو التالي:
{
” setVideoEncParam “: {
” u8VideoEncChn “: 1,
” u8FrameRate “: 15,
” u16BitRateKps “: 1024
}
}
بعد الإعداد الناجح, ترجع الكاميرا TRUE.
الحصول على/إعداد معلمة ترميز الصوت:
بنية البيانات:
بنية typedef
{
u8 u8تمكين; //0: إبطال; 1: يُمكَِن;
u32 u32ChnNum; // 1 : مونو; 2: ستيريو
u8 u8EncodeType; //6 : AAC; 8: G711A; 9: G711U; u32 u32SampleRate; // معدل أخذ العينات: 8000, 16000, 24000, 32000, 48000
u8 u8AoutVolume; // حجم الصوت: [0–100] }JSON_VIDEO_ENC_PARAM_S;
أحرف الأمر:
الحصول على المعلمات:
#تعريف JS_CMD_GET_AUDIO_PARAM “getAudioParam”
تحديد المعلمات:
#تعريف JS_CMD_SET_AUDIO_PARAM “setAudioParam”
فمثلا:
يسترد العميل بيانات JSON التالية لمعلمات تشفير صوت الكاميرا:
{
” getAudioParam “: { }
}
بيانات JSON التي يتم إرجاعها بواسطة الكاميرا هي كما يلي;
{
” getAudioParam “: {
” u8Enable “: 1,
" u32ChnNum " : 1,
" u8EncodeType " : 8,
" u32SampleRate " : 8000,
" u8AoutVolume " : 80,
}
}
الإعدادات من جانب العميل لترميز صوت الكاميرا هي AAC, ستيريو, ومعدل أخذ العينات 48 كيلو هرتز. بيانات JSON هي كما يلي:
{
” setAudioParam “: {
" u32ChnNum " : 2,
" u8EncodeType " : 6,
" u32SampleRate " : 48000
}
}
بعد الإعداد الناجح, ترجع الكاميرا TRUE.
الحصول على/إعداد معلمة صورة الفيديو:
بنية البيانات:
بنية typedef
{
u8 u8VideoIspChn; //قناة مزود خدمة الإنترنت; [0-4]
u8 u8 السطوع; // سطوع: [0~100]
u8 u8 التباين; // نسبة التباين: [0~100]
u8 u8Hue; // اللونية: [0~100]
u8 u8التشبع; // مستوى التشبع: [0~100]
u8 u8الحدة; // حدة: [0~100]
}JSON_IMAGE_PARAM_S;
أحرف الأمر:
الحصول على المعلمات:
#تعريف JS_CMD_GET_IMAGE_PARAM “getImageParam”
تحديد المعلمات:
#تعريف JS_CMD_SET_IMAGE_PARAM “setImageParam”
فمثلا:
يسترد العميل بيانات JSON التالية لمعلمات الصورة للقناة 0 من مزود خدمة الإنترنت للكاميرا:
{
” getImageParam “: {
“ u8VideoIspChn ” : 0
}
}
بيانات JSON التي يتم إرجاعها بواسطة الكاميرا هي كما يلي;
{
” getImageParam “: {
” u8VideoIspChn “: 0,
" u8 السطوع " : 50,
" u8التباين " : 50,
"u8Hue" : 50,
"u8التشبع" : 50,
" u8 الحدة " : 50
}
}
إعداد بيانات JSON من جانب العميل لسطوع الكاميرا هو 53, التباين هو 60, والتشبع هو 56 على النحو التالي:
{
” setImageParam “: {
“ u8VideoIspChn ” : 0,
" u8 السطوع " : 53,
" u8التباين " : 60,
"u8التشبع" : 56
}
}
بعد الإعداد الناجح, ترجع الكاميرا TRUE.
استرجاع معلومات بطاقة TF;
بنية البيانات:
بنية typedef
{
u32 u32 الحجم الإجمالي; // الحجم الإجمالي بالميجابايت
u32 u32UsedSize; // وحدة القدرة المستخدمة (MB)
u32 u32 الحجم المتاح; // السعة المتاحة بالميجابايت
}JSON_SD_CARD_INFO_S;
الحصول على المعلمات:
#تعريف JS_CMD_GET_SD_CARD_INFO “getSdCardInfo”
فمثلا:
يسترد العميل بيانات JSON التالية فيما يتعلق بمعلومات بطاقة TF الخاصة بالكاميرا:
{
” getSdCardInfo “: { }
}
بيانات JSON التي يتم إرجاعها بواسطة الكاميرا هي كما يلي;
{
” getSdCardInfo “: {
” u32TotalSize “: 31254,
" u32 الحجم المستخدم " : 20000,
” u32AvailableSize ” : 11254
}
}
تكوين تسجيل بطاقة TF:
بنية البيانات:
بنية typedef
{
u8 u8AutoRecordEnable; //1: تمكين التسجيل; 0: تعطيل التسجيل
u8 u8RecordStrChn; // اختيار دفق التسجيل: 0: الدفق الأساسي; 1: تيار ثانوي
u8 u8PreRecordSeconds; // وقت التسجيل المسبق [0-10] في ثواني
u16 u16RecordSecondsPerFile; // مدة ملف تسجيل واحد [10-1000] ثواني
}JSON_RECORD_CONTROL_PARAM_S;
الحصول على المعلمات:
#حدد JS_CMD_GET_RECORD_CONTROL_PARAM “getRecordControlParam”
تحديد المعلمات:
#تعريف JS_CMD_SET_RECORD_CONTROL_PARAM “setRecordControlParam”
فمثلا:
يسترد العميل بيانات JSON التالية فيما يتعلق بتكوين تسجيل بطاقة TF الخاصة بالكاميرا:
{
” getRecordControlParam “: { }
}
بيانات JSON التي يتم إرجاعها بواسطة الكاميرا هي كما يلي;
{
” getRecordControlParam “: {
” u8AutoRecordEnable “: 1,
" u8RecordStrChn " : 0,
” u8PrecordSeconds ” : 0,
” u16RecordSecondsPerFile ” : 300
}
}
تكوين IP للشبكة السلكية:
بنية البيانات:
بنية typedef
{
u8 u8DhcpEnable; // 0: رقم تعريف حاسوب ثابت; 1: DHCP;
شار s8IP[16]; //عنوان IP
شار s8SubMask[16]; // قناع الشبكة الفرعية
شار s8GateWay[16]; // بوابة IP
شار s8Dns[16]; //عنوان DNS
}JSON_NET_PARAM_S;
الحصول على المعلمات:
#تعريف JS_CMD_GET_NET_IP_PARAM “getNetIpParam”
تحديد المعلمات:
#تعريف JS_CMD_SET_NET_IP_PARAM “setNetIpParam”
فمثلا:
يسترد العميل معلومات IP الخاصة بالكاميرا باستخدام بيانات JSON على النحو التالي:
{
” getNetIpParam “: { }
}
بيانات JSON التي يتم إرجاعها بواسطة الكاميرا هي كما يلي;
{
” getNetIpParam “: {
” u8DhcpEnable “: 0,
” s8IP ” : ” 192.168.1.188 ” ,
” s8SubMask ” : ” 255.255.255.0 ” ,
” s8GateWay ” : ” 192.168.1.1 ” ,
” s8Dns ” : ” 192.168.1.1 “
}
}
تم تكوين العميل بعنوان IP الخاص بالكاميرا كـ 192.168.3.10, البوابة كما 192.168.3.1, وDNS كما 192.168.3.1. بيانات JSON هي كما يلي:
{
” setNetIpParam “: {
” s8IP ” : ” 192.168.3.10 ” ,
” s8GateWay ” : ” 192.168.3.1 ” ,
” s8Dns ” : ” 192.168.3.1 “
}
}
بعد الإعداد الناجح, الكاميرا لا تقوم بإرجاع أي بيانات, ويحتاج العميل إلى إعادة الاتصال بالجهاز باستخدام عنوان IP الجديد.
تكوين معلمة WiFi:
يسترد العميل/التطبيق قائمة بمعرفات SSID الخاصة بأجهزة التوجيه التي يعثر عليها الجهاز.
{
“getAPSsidList” :{ }
}
سيقوم الجهاز بإرجاع قائمة بمعرفات SSID: حدد مسار SSID من القائمة للاتصال به.
قم بتكوين شبكة Wi-Fi بجهازك للعمل في وضع STA:
{
“setWifiSsidParam”:{
“u8Mode”: 0,
“s8Ss”: ” yrsx8888 “,
“s8PassWd”: “987545598400
}
}
قم بتكوين شبكة Wi-Fi الخاصة بالجهاز للعمل في وضع نقطة الاتصال AP:
{
“setWifiSsidParam”:{
“u8Mode”: 1
}
}
احصل على حالة Wi-Fi للجهاز:
{
“getWifiSsidParam” : { }
}
مزامنة الوقت:
بنية البيانات:
بنية typedef
{
u8 u8TimeZone; // قيمة المنطقة الزمنية RT_TIMEZONE_E
شار s8DateTime[64]; // تنسيق الوقت: “2019-06-12_12:56:59_3”
}JSON_DATE_TIME_INFO_S;
تعريف قيمة المنطقة الزمنية:
تعداد typedef
{
RT_TIMEZONE_InternationalDateLineWest = 0, /* التوقيت العالمي المنسق-12:00 */
RT_TIMEZONE_MidwayIslandساموا = 1, /* التوقيت العالمي المنسق-11:00 */
RT_TIMEZONE_هاواي = 2, /* التوقيت العالمي المنسق-10:00 */
RT_TIMEZONE_ألاسكا = 3, /* التوقيت العالمي المنسق-9:00 */
RT_TIMEZONE_تيجوانا كاليفورنيا = 4, /* التوقيت العالمي المنسق-8:00 */
RT_TIMEZONE_PacificTimeUSCanada = 5, /* التوقيت العالمي المنسق-8:00 */
RT_TIMEZONE_MountainTimeUSCanada = 6, /* التوقيت العالمي المنسق-7:00 */
RT_TIMEZONE_تشيهواهوالاباز مازاتلان = 7, /* التوقيت العالمي المنسق-7:00 */
RT_TIMEZONE_أريزونا = 8, /* التوقيت العالمي المنسق-7:00 */
RT_TIMEZONE_ساسكاتشوان = 9, /* التوقيت العالمي المنسق-7:00 */
RT_TIMEZONE_GuaddlajaraMexicoCityMonterrey = 10, /* التوقيت العالمي المنسق-6:00 */
RT_TIMEZONE_CentralTimeUSCanada = 11, /* التوقيت العالمي المنسق-6:00 */
RT_TIMEZONE_CentralAmerica = 12, /* التوقيت العالمي المنسق-6:00 */
RT_TIMEZONE_BogotaLimaQuito = 13, /* التوقيت العالمي المنسق-5:00 */
RT_TIMEZONE_EasternTimeUSCanada = 14, /* التوقيت العالمي المنسق-5:00 */
RT_TIMEZONE_IndianaEast = 15, /* التوقيت العالمي المنسق-5:00 */
RT_TIMEZONE_كراكاس = 16, /* التوقيت العالمي المنسق-4:30 */
RT_TIMEZONE_AtlanticTimeCanada = 17, /* التوقيت العالمي المنسق-4:00 */
RT_TIMEZONE_GeorgetownLapazSanJuan = 18, /* التوقيت العالمي المنسق-4:00 */
RT_TIMEZONE_سانتياغو = 19, /* التوقيت العالمي المنسق-4:00 */
RT_TIMEZONE_NenfoundLand = 20, /* التوقيت العالمي-3:30 */
RT_TIMEZONE_برازيليا = 21, /* التوقيت العالمي-3:00 */
RT_TIMEZONE_بوينس آيرس جورجنتاون = 22, /* التوقيت العالمي-3:00 */
RT_TIMEZONE_جرينلاند = 23, /* التوقيت العالمي-3:00 */
RT_TIMEZONE_MidAtlantic = 24, /* التوقيت العالمي المنسق-2:00 */
RT_TIMEZONE_CapeVerdeIs = 25, /* التوقيت العالمي المنسق-1:00 (جمهورية الرأس الأخضر) */
RT_TIMEZONE_جزر الأزور = 26, /* التوقيت العالمي المنسق-1:00 (جزر الأزور) */
RT_TIMEZONE_GreenwichMeanTimeDublinEdinburghLisbonLondon = 27, /* التوقيت العالمي-0:00 */
RT_TIMEZONE_الدار البيضاء = 28, /* التوقيت العالمي-0:00 */
RT_TIMEZONE_مونروفيا = 29, /* التوقيت العالمي-0:00 */
RT_TIMEZONE_أمستردام، برلين، بيرن، روما، ستوكهولم، فيينا = 30, /* التوقيت العالمي المنسق+1:00 */
RT_TIMEZONE_Belgradeبراتيسلافابودابستليوبليانابراغ = 31, /* التوقيت العالمي المنسق+1:00 */
RT_TIMEZONE_بروكسلكوبنهاجنمدريدباريس = 32, /* التوقيت العالمي المنسق+1:00 */
RT_TIMEZONE_SarajevoSkopjeWarsawZagreb = 33, /* التوقيت العالمي المنسق+1:00 */
RT_TIMEZONE_WestCentralAfrica = 34, /* التوقيت العالمي المنسق+1:00 */
RT_TIMEZONE_Rareبريتوريا = 35, /* التوقيت العالمي المنسق+2:00 */
RT_TIMEZONE_هلسنكيKyivRigaSofiaTallinnفيلنيوس = 36, /* التوقيت العالمي المنسق+2:00 */
RT_TIMEZONE_القاهرة = 37, /* التوقيت العالمي المنسق+2:00 */
RT_TIMEZONE_مينسك = 38, /* التوقيت العالمي المنسق+2:00 */
RT_TIMEZONE_أثينا، بوخارست، اسطنبول = 39, /* التوقيت العالمي المنسق+2:00 */
RT_TIMEZONE_القدس = 40, /* التوقيت العالمي المنسق+2:00 */
RT_TIMEZONE_بغداد = 41, /* التوقيت العالمي المنسق+3:00 */
RT_TIMEZONE_Tbilisi = 42, /* التوقيت العالمي المنسق+3:00 */
RT_TIMEZONE_KuwaitRiyadh = 43, /* التوقيت العالمي المنسق+3:00 */
RT_TIMEZONE_موسكوسانت بطرسبرجفولجوجراد = 44, /* التوقيت العالمي المنسق+3:00 */
RT_TIMEZONE_نيروبي = 45, /* التوقيت العالمي المنسق+3:00 */
RT_TIMEZONE_طهران = 46, /* التوقيت العالمي المنسق+3:30 */
RT_TIMEZONE_AbuDhabiمسقط = 47, /* التوقيت العالمي المنسق+4:00 */
RT_TIMEZONE_باكويريفان = 48, /* التوقيت العالمي المنسق+4:00 */
RT_TIMEZONE_كابول = 49, /* التوقيت العالمي المنسق+4:30 */
RT_TIMEZONE_طشقند = 50, /* التوقيت العالمي المنسق+5:00 */
RT_TIMEZONE_إيكاترينبرج = 51, /* التوقيت العالمي المنسق+5:00 */
RT_TIMEZONE_إسلام آباد كراتشي = 52, /* التوقيت العالمي المنسق+5:00 */
RT_TIMEZONE_تشينايكولكاتامومباينيودلهي = 53, /* التوقيت العالمي المنسق+5:30 */
RT_TIMEZONE_كاتماندو = 54, /* التوقيت العالمي المنسق+5:45 */
RT_TIMEZONE_ألماتينوفوسيبيرسك = 55, /* التوقيت العالمي المنسق+6:00 */
RT_TIMEZONE_أستانادكا = 56, /* التوقيت العالمي المنسق+6:00 */
RT_TIMEZONE_رانجون = 57, /* التوقيت العالمي المنسق+6:30 */
RT_TIMEZONE_كراسنويارسك = 58, /* التوقيت العالمي المنسق+7:00 */
RT_TIMEZONE_بانكوك، هانوي، جاكرتا = 59, /* التوقيت العالمي المنسق+7:00 */
RT_TIMEZONE_BeijingChongqingHongKongUrumqi = 60, /* التوقيت العالمي المنسق+8:00 */
RT_TIMEZONE_كوالالمبورسنغافورة = 61, /* التوقيت العالمي المنسق+8:00 */
RT_TIMEZONE_بيرث = 62, /* التوقيت العالمي المنسق+8:00 */
RT_TIMEZONE_تايبيه = 63, /* التوقيت العالمي المنسق+8:00 */
RT_TIMEZONE_ايركوتسكأولانباتار = 64, /* التوقيت العالمي المنسق+8:00 */
RT_TIMEZONE_أوساكا، سابورو طوكيو = 65, /* التوقيت العالمي المنسق+9:00 */
RT_TIMEZONE_سيول = 66, /* التوقيت العالمي المنسق+9:00 */
RT_TIMEZONE_ياكوتسك = 67, /* التوقيت العالمي المنسق+9:00 */
RT_TIMEZONE_أديلايد = 68, /* التوقيت العالمي المنسق+9:30 */
RT_TIMEZONE_بريسبان = 69, /* التوقيت العالمي المنسق+10:00 */
RT_TIMEZONE_فلاديفوستوك = 70, /* التوقيت العالمي المنسق+10:00 */
RT_TIMEZONE_GuamMoresby = 71, /* التوقيت العالمي المنسق+10:00 */
RT_TIMEZONE_هوبارت = 72, /* التوقيت العالمي المنسق+10:00 */
RT_TIMEZONE_CanberraMelbourneSydney = 73, /* التوقيت العالمي المنسق+10:00 */
RT_TIMEZONE_MagadanSolomonNewCaledonia = 74, /* التوقيت العالمي +11:00 */
RT_TIMEZONE_أوكلاند ولينغتون = 75, /* التوقيت العالمي المنسق+12:00 */
RT_TIMEZONE_FijiKamchatkaMarshallIs = 76, /* التوقيت العالمي المنسق+12:00 */
RT_TIMEZONE_نوكوالوفا = 77, /* التوقيت العالمي المنسق+13:00 */
RT_TIMEZONE_BUTT
}RT_TIMEZONE_E;
الحصول على المعلمات:
#حدد JS_CMD_GET_DEV_DATE_TIME “GetDevDateTime”
تحديد المعلمات:
#حدد JS_CMD_SET_DEV_DATE_TIME “setDevDateTime”
احصل على بيانات JSON لوقت الجهاز :
{
” GetDevDateTime ” : {}
}
يقوم الجهاز بإرجاع بيانات JSON:
{
” GetDevDateTime ” : {
"u8TimeZone" : 60,
“s8DateTime” : “2020-03-06_12:56:59_3”
}
}
تقوم بيانات JSON بتعيين وقت الجهاز إلى الخميس, مارس 12, 2020, في 3:38:30 مساء:
{
” setDevDateTime ” : {
“s8DateTime” : “2020-03-12_15:38:30_4”
}
}
عاد الجهاز TRUE بعد الإعداد الناجح.
إدارة المعدات:
بيانات JSON لإعادة تشغيل الجهاز:
{
” setSysControlParam ” : {
"u8Restart" : 1
}
}
بيانات JSON لاستعادة إعدادات المصنع:
{
” setSysControlParam ” : {
"u8ResetDefault" : 1
}
}
تنسيق بيانات بطاقة SD JSON:
{
” setSysControlParam ” : {
"u8FormatSdCard" : 1
}
}
التحكم بتز:
بنية البيانات:
بنية typedef
{
u8 u8Cmd; // رمز الأمر PTZ_CONTROL_CODE
u8 u8 السرعة; // سرعة (1-64)
u8 u8Data1; // محجوز; سيتم استخدام هذا في المواقف المحددة مسبقًا.
u8 u8Data2; // محجوز, سيتم استخدام هذا لأوامر PTZ الخاصة.
}JSON_PTZ_CONTROL_S;
تعداد PTZ_CONTROL_CODE
{
PTZ_STOP = 0, // توقف
PTZ_UP=1, // فوق
PTZ_DOWN=2, // تحت
PTZ_LEFT=3, // اليسار
PTZ_RIGHT=4, // حق
PTZ_LEFT_UP=5, // أعلى اليسار
PTZ_LEFT_DOWN=6, // أسفل اليسار
PTZ_RIGHT_UP=7, // أعلى اليمين
PTZ_RIGHT_DOWN=8, // 8 : أسفل اليمين
PTZ_ZOOM_IN=9, // 9 : تكبير
PTZ_ZOOM_OUT=10, // 10: التكبير = 10, // 10 : التكبير = 10
PTZ_FOCUS_NEAR=11, // 11 : التركيز على القريب
PTZ_FOCUS_FAR=12, // 12 : التركيز على البعيد
PTZ_IRIS_ADD=13, // 13 : زيادة الفتحة
PTZ_IRIS_REDUCE=14, // 14 : تم تقليل الفتحة
PTZ_GOTO_POINT = 15, // 15 : استدعاء بت مسبقا
PTZ_CLEAR_POINT = 16, // 16 : مسح بت مسبقا
PTZ_PERSET_POINT = 17, // 17 : تعيين بت مسبقا
PTZ_AUTO_RUN = 18, // 18 : المسح التلقائي الأفقي
};
التحكم بتز:
#تعريف JS_CMD_PTZ_CONTROL “PtzControlCmd”
أوامر JSON التي تسيطر عليها Ptz:
- التحرك إلى الأسفل بسرعة 30:
{
” PtzControlCmd “: {
” u8Cmd “: 2,
” u8Speed ” : 30
}
}
- 1. ضبط موضع محدد مسبقًا 2:
{
” PtzControlCmd “: {
” u8Cmd “: 17,
" u8Speed " : 30,
" u8Data1 " : 2
}
}
البحث عن ملف بطاقة TF:
( 1) الأمر بالبحث عن جميع ملفات الفيديو خلال فترة زمنية محددة في نفس اليوم:
{
“searchRecordFileList”:{
“u32 سنة”:2020, // سنة
“u8Month”:7, // شهر
“u8Day”:14, // يوم
“u8StartHour”:0, // وقت البدء بالساعات
“u8StartMinute”:0, // وقت البدء بالدقائق
“u8EndHour”:23, // وقت الانتهاء بالساعات
“u8EndMinute”:59, // نهاية الوقت في دقائق
“u8EncChn”:0, // 0 هي القيمة الافتراضية.
“u8RecordTye”:0, // نوع الملف: 0: جميع الملفات, 1: التسجيل المجدول; 2: تسجيل التنبيه; 3: الصور;
“u32StartIdx”:0, // الرقم التسلسلي لملف البداية
“u32العدد المتوقع”: 10 // عدد الملفات التي تم إرجاعها حسب الطلب, حاليا الحد الأقصى للقيمة هو 32.
}
}
البيانات التي يتم إرجاعها بواسطة الجهاز:
{
“searchRecordFileList”: {
“u32RecordFileTotalCount”: 7, // إجمالي عدد الملفات التي تم البحث عنها خلال هذه الفترة الزمنية
“stRecordFileList”: [ // اسم الملف مع المسار, حجم الملف]
“/dev/disk/0/part0/rec-pic/20200714/0/000_180149_0_0300_2.mp4”, 251649649, “/dev/disk/0/part0/rec-pic/20200714/0/001_180644_0_0169_256.mp4”, 144935215, “/dev/disk/0/part0/rec-pic/20200714/0/002_181001_0_0300_2.mp4”, 251650689, “/dev/disk/0/part0/rec-pic/20200714/0/003_181458_0_0300_2.mp4”, 251657016, “/dev/disk/0/part0/rec-pic/20200714/0/004_181958_0_0300_2.mp4”, 301449467, “/dev/disk/0/part0/rec-pic/20200714/0/005_182458_0_0000_256.mp4”, 37801991, “/dev/disk/0/part0/rec-pic/20200714/0/006_182642_0_0244_256.mp4”, 200069913
]
}
}
التقط صورة JPG يدويًا:
أرسل الأمر التالي إلى الجهاز.
{
“ManualSnapJpg”:{
}
}
تم العودة بنجاح:
{
“ManualSnapJpg”: حقيقي
}
يقوم التحكم PWM بضبط سطوع LED:
احصل على قيمة PWM الحالية:
{
“getPwmParam”:{
“u32PwmChn”: 0
}
}
تم العودة بنجاح:
{
“getPwmParam”:{
“u32PwmChn”:0,
“u8Enable”:1,
“u8DutyValue”:20
}
}
- اضبط قيمة PWM:
{
“setPwmParam”:{
“u32PwmChn”: 0,
“u8Enable”: 1,
“u8DutyValue”: 60
}
}
تم العودة بنجاح:
{
“setPwmParam”:حقيقي
}
ملحوظة : u32PwmChn الافتراضي هو 0 ولا ينبغي تغييرها بشكل تعسفي. u8Enable له قيمة 0/1, أين 0 تعطيل إخراج PWM و 1 تمكن إخراج PWM. u8DutyValue لديه نطاق قيمة 0-100.
17. الحصول على/إعداد نص OSD:
(1) الحصول على قناة الفيديو المحددة, معلمات نص OSD:
{“getVideoOsdTextInfo”:{
“u8IspChn”:0,
“u8TextIdx”:1
}}
تم العودة بنجاح:
{
“getVideoOsdTextInfo”:{
“u8IspChn”:0, // قناة فيديو 0, أملأ 0 لكاميرا واحدة
“u8TextIdx”:1, // رقم مربع نص OSD, دعم مربعات النص المتعددة.
“u8Enable”:0, // يُمكَِن, 0: لا تعرض; 1: عرض
“u16XRatioBase50000”:40000, // الإحداثيات النسبية للوضع الأفقي, بقيمة قصوى 50000.
“u16YRatioBase50000”:1600, // الإحداثيات النسبية للوضع الرأسي, بقيمة قصوى 50000.
“u8FgTransparency”:10, // الشفافية الأمامية [0-255]
“u8BgTransparency”:255, // قيمة شفافية الخلفية [0-255]
“u8SizeType”:1, // حجم النص, مدى القيمة [0-3]
“u32TextColor_BGRA8888”:4294967295, // قيمة لون النص ARGB888
“aszText”:”” // يعرض مربع النص سلسلة المحتوى
}
}
(2) قم بتعيين قناة الفيديو المحددة, معلمات نص OSD:
{
“setVideoOsdTextInfo”:{
“u8IspChn”:0,
“u8TextIdx”:1,
“u8Enable”:1,
“u16XRatioBase50000”:40000,
“u16YRatioBase50000”:1600,
“u8FgTransparency”:10,
“u8BgTransparency”:255,
“u8SizeType”:1,
“u32TextColor_BGRA8888”:4294967295,
“aszText”:”اختبار 11111222233334444″
}
}
تم العودة بنجاح:
{
“setVideoOsdTextInfo”:حقيقي
}
CVBS HDMI إلى تشفير IP
CVBS إلى Ethernet IP Encoder مستقر في إشارة ضعيفة, قفل إشارة منخفضة
CVBS HDMI إلى تشفير IP
CVBS HDMI إلى تشفير IP

طرح سؤال
شكرًا لردكم ✨