สารบัญ
ที่อยู่สตรีมเสียงและวิดีโอแบบเรียลไทม์ 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 หากไม่มีการตั้งค่า ID.
u32 u32Tfบันทึก; // สถานะการบันทึกของการ์ด TF, 0: ไม่มีการบันทึก; 1: อยู่ระหว่างการบันทึก
}JSON_DEV_STATUS_INFO_S;
อักขระคำสั่ง:
#กำหนด JS_CMD _ GET_DEV_STATUS “รับสถานะ DevStatus”
สมมติว่าที่อยู่ IP ของอุปกรณ์คือ 192.168.1.188, ลูกค้าส่งข้อมูล JSON ต่อไปนี้:
{
” รับสถานะ DevStatus “: { }
}
หลังจากที่กล้องได้รับข้อมูลเรียบร้อยแล้ว, มันส่งคืนข้อมูล JSON ต่อไปนี้:
{
” รับสถานะ DevStatus “: {
” s8DevId ” : ” 192.168.1.188 ” ,
“ u32Tfบันทึก ” : 0
}
}
การได้มา/การตั้งค่าพารามิเตอร์การเข้ารหัสวิดีโอ:
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u8 u8VideoEncChn; //0 : กระแสหลัก; 1: กระแสรอง;
u8 u8VideoCodecType; // 1:H264 ; 2:หน้า 265
u16 u16ความกว้างวิดีโอ; // ความกว้างของวิดีโอ
u16 u16ความสูงของวิดีโอ; // ความสูงของวิดีโอ
u16 u8FrameRate; // อัตราเฟรม (1-30)
u16 u8Iframeช่วง; // ผม- ขนาดช่วงเฟรม (1-100)
u8 u8BitrateControlMode; //โหมดควบคุมบิตเรต: 0: CBR 1: VBR
u16 u16BitRateKps; // ขนาดบิตเรต
ถ่าน s8VideoSizeName[256]; // รายการความละเอียดที่รองรับ }JSON_VIDEO_ENC_PARAM_S;
อักขระคำสั่ง:
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_VIDEO_ENC_PARAM “รับ VideoEncParam”
การตั้งค่าพารามิเตอร์:
#กำหนด JS_CMD_SET_VIDEO_ENC_PARAM “setVideoEncParam”
ตัวอย่างเช่น:
ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้ซึ่งมีพารามิเตอร์การเข้ารหัสของบิตสตรีมหลักของกล้อง:
{
” รับ VideoEncParam “: {
” u8VideoEncChn “: 0
}
}
ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;
{
” รับ VideoEncParam “: {
” u8VideoEncChn “: 0,
“ u8VideoCodecType ” : 1,
“ u16ความกว้างวิดีโอ ” : 3840,
” u16ความสูงของวิดีโอ ” : 1080,
“ u8FrameRate ” : 30,
” u8IframeInterval ” : 60,
” u8BitrateControlMode ” : 0,
“ u16BitRateKps ” : 4096,
” s8VideoSizeName ” : ” 3840×1080,1920×540 “
}
}
ไคลเอนต์ตั้งค่าอัตราเฟรมสตรีมรองของกล้องเป็น 15 และบิตเรตเป็น 1024K ในรูปแบบ JSON, ดังต่อไปนี้:
{
” setVideoEncParam “: {
” u8VideoEncChn “: 1,
” u8FrameRate “: 15,
” u16BitRateKps “: 1024
}
}
หลังจากตั้งค่าสำเร็จแล้ว, กล้องส่งคืน TRUE.
การได้มา/การตั้งค่าพารามิเตอร์การเข้ารหัสเสียง:
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u8 u8เปิดใช้งาน; //0: ปิดการใช้งาน; 1: เปิดใช้งาน;
u32 u32ChnNum; // 1 : โมโน; 2: ระบบเสียงสเตอริโอ
u8 u8ประเภทการเข้ารหัส; //6 : AAC; 8: G711A; 9: G711U; u32 u32อัตราตัวอย่าง; // อัตราการสุ่มตัวอย่าง: 8000, 16000, 24000, 32000, 48000
u8 u8Aoutปริมาณ; // ขนาดวอลุ่ม: [0–100] }JSON_VIDEO_ENC_PARAM_S;
อักขระคำสั่ง:
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_AUDIO_PARAM “getAudioParam.getAudioParam”
การตั้งค่าพารามิเตอร์:
#กำหนด JS_CMD_SET_AUDIO_PARAM “ตั้งค่า AudioParam”
ตัวอย่างเช่น:
ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้ของพารามิเตอร์การเข้ารหัสเสียงของกล้อง:
{
” getAudioParam.getAudioParam “: { }
}
ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;
{
” getAudioParam.getAudioParam “: {
” u8เปิดใช้งาน “: 1,
“ u32ChnNum ” : 1,
“ u8EncodeType ” : 8,
“ u32อัตราตัวอย่าง ” : 8000,
“ u8Aoutปริมาณ ” : 80,
}
}
การตั้งค่าฝั่งไคลเอ็นต์สำหรับการเข้ารหัสเสียงของกล้องคือ AAC, ระบบเสียงสเตอริโอ, และอัตราการสุ่มตัวอย่าง 48kHz. ข้อมูล JSON มีดังนี้:
{
” ตั้งค่า AudioParam “: {
“ u32ChnNum ” : 2,
“ u8EncodeType ” : 6,
“ u32อัตราตัวอย่าง ” : 48000
}
}
หลังจากตั้งค่าสำเร็จแล้ว, กล้องส่งคืน TRUE.
การได้มา/การตั้งค่าพารามิเตอร์ภาพวิดีโอ:
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u8 u8VideoIspChn; //ช่องไอเอสพี; [0-4]
u8 u8ความสว่าง; // ความสว่าง: [0~100]
u8 u8คอนทราสต์; // อัตราความคมชัด: [0~100]
u8 u8ฮิว; // รงค์: [0~100]
u8 u8ความอิ่มตัว; // ระดับความอิ่มตัว: [0~100]
u8 u8ความคมชัด; // ความคม: [0~100]
}JSON_IMAGE_PARAM_S;
อักขระคำสั่ง:
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_IMAGE_PARAM “รับ ImageParam”
การตั้งค่าพารามิเตอร์:
#กำหนด JS_CMD_SET_IMAGE_PARAM “ตั้งค่า ImageParam”
ตัวอย่างเช่น:
ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้ของพารามิเตอร์รูปภาพสำหรับช่อง 0 ของ ISP ของกล้อง:
{
” รับ ImageParam “: {
“ u8VideoIspChn ” : 0
}
}
ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;
{
” รับ ImageParam “: {
” u8VideoIspChn “: 0,
“ u8 ความสว่าง ” : 50,
“ u8คอนทราสต์ ” : 50,
“u8เว้” : 50,
“ u8ความอิ่มตัว ” : 50,
“ u8ความคมชัด ” : 50
}
}
การตั้งค่าข้อมูล JSON ฝั่งไคลเอ็นต์สำหรับความสว่างของกล้องคือ 53, ความคมชัดคือ 60, และความอิ่มตัวก็คือ 56 เป็นดังนี้:
{
” ตั้งค่า ImageParam “: {
“ u8VideoIspChn ” : 0,
“ u8 ความสว่าง ” : 53,
“ u8คอนทราสต์ ” : 60,
“ u8ความอิ่มตัว ” : 56
}
}
หลังจากตั้งค่าสำเร็จแล้ว, กล้องส่งคืน TRUE.
การดึงข้อมูลบัตร TF;
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u32 u32ขนาดรวม; // ขนาดรวมเป็น MB
u32 u32ขนาดมือสอง; // หน่วยความจุที่ใช้แล้ว (MB)
u32 u32ขนาดที่มีจำหน่าย; // ความจุที่มีหน่วยเป็น MB
}JSON_SD_CARD_INFO_S;
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_SD_CARD_INFO “getSdCardInfo”
ตัวอย่างเช่น:
ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้เกี่ยวกับข้อมูลการ์ด TF ของกล้อง:
{
” getSdCardInfo “: { }
}
ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;
{
” getSdCardInfo “: {
” u32ขนาดรวม “: 31254,
“ u32ขนาดมือสอง ” : 20000,
” u32ขนาดที่มีจำหน่าย ” : 11254
}
}
การกำหนดค่าการบันทึกการ์ด TF:
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u8 u8บันทึกอัตโนมัติเปิดใช้งาน; //1: เปิดใช้งานการบันทึก; 0: ปิดการใช้งานการบันทึก
u8 u8RecordStrChn; // การเลือกสตรีมการบันทึก: 0: กระแสหลัก; 1: กระแสรอง
u8 u8PreRecordวินาที; // เวลาบันทึกล่วงหน้า [0-10] ในไม่กี่วินาที
u16 u16บันทึกวินาทีต่อไฟล์; // ระยะเวลาของไฟล์บันทึกเดียว [10-1000] วินาที
}JSON_RECORD_CONTROL_PARAM_S;
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_RECORD_CONTROL_PARAM “getRecordControlParam.getRecordControlParam”
การตั้งค่าพารามิเตอร์:
#กำหนด JS_CMD_SET_RECORD_CONTROL_PARAM “setRecordControlParam”
ตัวอย่างเช่น:
ไคลเอนต์ดึงข้อมูล JSON ต่อไปนี้เกี่ยวกับการกำหนดค่าการบันทึกการ์ด TF ของกล้อง:
{
” getRecordControlParam.getRecordControlParam “: { }
}
ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;
{
” getRecordControlParam.getRecordControlParam “: {
” u8เปิดใช้งานบันทึกอัตโนมัติ “: 1,
“ u8RecordStrChn ” : 0,
” u8PrecordSeconds ” : 0,
” u16บันทึกวินาทีต่อไฟล์ ” : 300
}
}
การกำหนดค่า IP เครือข่ายแบบมีสาย:
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u8 u8Dhcpเปิดใช้งาน; // 0: IP แบบคงที่; 1: DHCP;
ถ่าน s8IP[16]; //ที่อยู่ IP
ถ่าน s8SubMask[16]; // ซับเน็ตมาสก์
ถ่าน s8GateWay[16]; // ไอพีเกตเวย์
ถ่าน s8Dns[16]; //ที่อยู่ DNS
}JSON_NET_PARAM_S;
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_NET_IP_PARAM “getNetIpParam.getNetIpParam”
การตั้งค่าพารามิเตอร์:
#กำหนด JS_CMD_SET_NET_IP_PARAM “setNetIpParam”
ตัวอย่างเช่น:
ไคลเอนต์ดึงข้อมูล IP ของกล้องโดยใช้ข้อมูล JSON ดังต่อไปนี้:
{
” getNetIpParam.getNetIpParam “: { }
}
ข้อมูล JSON ที่ส่งคืนโดยกล้องมีดังนี้;
{
” getNetIpParam.getNetIpParam “: {
” u8Dhcpเปิดใช้งาน “: 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 ของเราเตอร์ที่อุปกรณ์พบ.
{
“รับ APSsidList” :{ }
}
อุปกรณ์จะส่งคืนรายการ SSID: เลือก SSID เส้นทางจากรายการที่จะเชื่อมต่อ.
กำหนดค่า Wi-Fi ของอุปกรณ์ให้ทำงานในโหมด STA:
{
“setWifiSsidParam”:{
“u8โหมด”: 0,
“s8Ss”: ” ปี 8888 “,
“s8PassWd”: “987545598400
}
}
กำหนดค่า Wi-Fi ของอุปกรณ์ให้ทำงานในโหมดฮอตสปอต AP:
{
“setWifiSsidParam”:{
“u8โหมด”: 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 enum
{
RT_TIMEZONE_InternationalDateLineWest = 0, /* UTC-12:00 */
RT_TIMEZONE_MidwayIslandSamoa = 1, /* UTC-11:00 */
RT_TIMEZONE_ฮาวาย = 2, /* UTC-10:00 */
RT_TIMEZONE_Alaska = 3, /* UTC-9:00 */
RT_TIMEZONE_Tijuanaแคลิฟอร์เนีย = 4, /* UTC-8:00 */
RT_TIMEZONE_PacificTimeUSแคนาดา = 5, /* UTC-8:00 */
RT_TIMEZONE_MountainTimeUSแคนาดา = 6, /* UTC-7:00 */
RT_TIMEZONE_ชิวาวาลาปาซมาซัตลัน = 7, /* UTC-7:00 */
RT_TIMEZONE_แอริโซนา = 8, /* UTC-7:00 */
RT_TIMEZONE_ซัสแคตเชวัน = 9, /* UTC-7:00 */
RT_TIMEZONE_Guaddlajaraเม็กซิโกซิตี้มอนเตร์เรย์ = 10, /* UTC-6:00 */
RT_TIMEZONE_CentralTimeUSแคนาดา = 11, /* UTC-6:00 */
RT_TIMEZONE_CentralAmerica = 12, /* UTC-6:00 */
RT_TIMEZONE_BogotaLimaกีโต = 13, /* UTC-5:00 */
RT_TIMEZONE_EasternTimeสหรัฐฯแคนาดา = 14, /* UTC-5:00 */
RT_TIMEZONE_IndianaEast = 15, /* UTC-5:00 */
RT_TIMEZONE_คารากัส = 16, /* UTC-4:30 */
RT_TIMEZONE_AtlanticTimeCanada = 17, /* UTC-4:00 */
RT_TIMEZONE_จอร์จทาวน์ลาปาซซานฮวน = 18, /* UTC-4:00 */
RT_TIMEZONE_ซานติอาโก = 19, /* UTC-4:00 */
RT_TIMEZONE_NenfoundLand = 20, /* UTC-3:30 */
RT_TIMEZONE_บราซิเลีย = 21, /* UTC-3:00 */
RT_TIMEZONE_บัวโนสไอเรสจอร์จทาวน์ = 22, /* UTC-3:00 */
RT_TIMEZONE_กรีนแลนด์ = 23, /* UTC-3:00 */
RT_TIMEZONE_มิดแอตแลนติก = 24, /* UTC-2:00 */
RT_TIMEZONE_CapeVerdeIs = 25, /* UTC-1:00 (สาธารณรัฐเคปเวิร์ด) */
RT_TIMEZONE_อะโซเรส = 26, /* UTC-1:00 (อะซอเรส) */
RT_TIMEZONE_GreenwichMeanTimeดับลินเอดินบะระลิสบอนลอนดอน= 27, /* เวลาสากลเชิงพิกัด-0:00 */
RT_TIMEZONE_คาซาบลังกา = 28, /* เวลาสากลเชิงพิกัด-0:00 */
RT_TIMEZONE_มอนโรเวีย = 29, /* เวลาสากลเชิงพิกัด-0:00 */
RT_TIMEZONE_อัมสเตอร์ดัมเบอร์ลินเบิร์นโรมสตอกโฮล์มเวียนนา = 30, /* UTC+1:00 */
RT_TIMEZONE_เบลเกรดบราติสลาวาบูดาเปสต์ลูบลิยานาปราก = 31, /* UTC+1:00 */
RT_TIMEZONE_Brusselsโคเปนเฮเกนมาดริดปารีส = 32, /* UTC+1:00 */
RT_TIMEZONE_ซาราเยโวสโกเปียวอร์ซอซาเกร็บ = 33, /* UTC+1:00 */
RT_TIMEZONE_WestCentralAfrica = 34, /* UTC+1:00 */
RT_TIMEZONE_Rareพริทอเรีย = 35, /* เวลาสากลเชิงพิกัด+2:00 */
RT_TIMEZONE_Helsinkiเคียฟริกาโซเฟียทาลลินน์วิลนีอุส = 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_ทบิลิซี = 42, /* เวลาสากลเชิงพิกัด+3:00 */
RT_TIMEZONE_คูเวตริยาด = 43, /* เวลาสากลเชิงพิกัด+3:00 */
RT_TIMEZONE_Moscowเซนต์ปีเตอร์สเบิร์กโวลโกกราด = 44, /* เวลาสากลเชิงพิกัด+3:00 */
RT_TIMEZONE_ไนโรบี = 45, /* เวลาสากลเชิงพิกัด+3:00 */
RT_TIMEZONE_เตหะราน = 46, /* เวลาสากลเชิงพิกัด+3:30 */
RT_TIMEZONE_อาบูดาบีมัสกัต = 47, /* UTC+4:00 */
RT_TIMEZONE_Bakuเยเรวาน = 48, /* UTC+4:00 */
RT_TIMEZONE_คาบูล = 49, /* UTC+4:30 */
RT_TIMEZONE_ทาชเคนต์ = 50, /* UTC+5:00 */
RT_TIMEZONE_เอคาเทรินเบิร์ก = 51, /* UTC+5:00 */
RT_TIMEZONE_อิสลามาบัดการาจี = 52, /* UTC+5:00 */
RT_TIMEZONE_เชนไนโกลกาตามุมไบนิวเดลี = 53, /* UTC+5:30 */
RT_TIMEZONE_กาฐมา ณ ฑุ = 54, /* UTC+5:45 */
RT_TIMEZONE_อัลมาตีโนโวซีบีสค์ = 55, /* UTC+6:00 */
RT_TIMEZONE_AstanaDhaka = 56, /* UTC+6:00 */
RT_TIMEZONE_ย่างกุ้ง = 57, /* UTC+6:30 */
RT_TIMEZONE_ครัสโนยาสค์ = 58, /* UTC+7:00 */
RT_TIMEZONE_กรุงเทพฯฮานอยจาการ์ตา= 59, /* UTC+7:00 */
RT_TIMEZONE_ปักกิ่งฉงชิ่งฮ่องกงอุรุมชี = 60, /* UTC+8:00 */
RT_TIMEZONE_กัวลาลัมเปอร์สิงคโปร์ = 61, /* UTC+8:00 */
RT_TIMEZONE_เพิร์ธ = 62, /* UTC+8:00 */
RT_TIMEZONE_ไทเป = 63, /* UTC+8:00 */
RT_TIMEZONE_IrkutskUlaanBataar = 64, /* UTC+8:00 */
RT_TIMEZONE_โอซาก้าซัปโปโรโตเกียว = 65, /* UTC+9:00 */
RT_TIMEZONE_โซล = 66, /* UTC+9:00 */
RT_TIMEZONE_Yakutsk = 67, /* UTC+9:00 */
RT_TIMEZONE_แอดิเลด = 68, /* UTC+9:30 */
RT_TIMEZONE_บริสเบน = 69, /* UTC+10:00 */
RT_TIMEZONE_วลาดิวอสต็อก = 70, /* UTC+10:00 */
RT_TIMEZONE_กวมมอร์สบี = 71, /* UTC+10:00 */
RT_TIMEZONE_โฮบาร์ต = 72, /* UTC+10:00 */
RT_TIMEZONE_แคนเบอร์ราเมลเบิร์นซิดนีย์ = 73, /* UTC+10:00 */
RT_TIMEZONE_มากาดานโซโลมอนนิวแคลิโดเนีย = 74, /* UTC+11:00 */
RT_TIMEZONE_โอ๊คแลนด์เวลลิงตัน = 75, /* UTC+12:00 */
RT_TIMEZONE_Fijiคัมชัตกามาร์แชลล์= 76, /* UTC+12:00 */
RT_TIMEZONE_นูคูอาโลฟา = 77, /* UTC+13:00 */
RT_TIMEZONE_BUTT
}RT_TIMEZONE_E;
รับพารามิเตอร์:
#กำหนด JS_CMD_GET_DEV_DATE_TIME “รับDevDateTime”
การตั้งค่าพารามิเตอร์:
#กำหนด JS_CMD_SET_DEV_DATE_TIME “setDevDateTime”
รับข้อมูล JSON เวลาของอุปกรณ์ :
{
” รับDevDateTime ” : {}
}
อุปกรณ์ส่งคืนข้อมูล JSON:
{
” รับDevDateTime ” : {
“u8ไทม์โซน” : 60,
“s8DateTime” : “2020-03-06_12:56:59_3”
}
}
ข้อมูล JSON ตั้งเวลาอุปกรณ์เป็นวันพฤหัสบดี, มีนาคม 12, 2020, ที่ 3:38:30 PM:
{
” setDevDateTime ” : {
“s8DateTime” : “2020-03-12_15:38:30_4”
}
}
อุปกรณ์ส่งคืน TRUE เมื่อตั้งค่าสำเร็จ.
การจัดการอุปกรณ์:
ข้อมูล JSON สำหรับการรีสตาร์ทอุปกรณ์:
{
” setSysControlParam ” : {
“u8รีสตาร์ท” : 1
}
}
ข้อมูล JSON สำหรับการกู้คืนการตั้งค่าจากโรงงาน:
{
” setSysControlParam ” : {
“u8รีเซ็ตค่าเริ่มต้น” : 1
}
}
การจัดรูปแบบข้อมูล JSON ของการ์ด SD:
{
” setSysControlParam ” : {
“u8FormatSdCard” : 1
}
}
การควบคุม PTZ:
โครงสร้างข้อมูล:
โครงสร้าง typedef
{
u8 u8Cmd; // รหัสคำสั่ง PTZ_CONTROL_CODE
u8 u8Speed; // ความเร็ว (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 : สแกนอัตโนมัติแนวนอน
};
การควบคุม PTZ:
#กำหนด JS_CMD_PTZ_CONTROL “PtzControlCmd”
คำสั่ง JSON ควบคุมโดย Ptz:
- เคลื่อนตัวลงมาด้วยความเร็ว. 30:
{
” PtzControlCmd “: {
” u8Cmd “: 2,
” u8ความเร็ว ” : 30
}
}
- 1. กำหนดตำแหน่งที่กำหนดไว้ล่วงหน้า 2:
{
” PtzControlCmd “: {
” u8Cmd “: 17,
“ u8สปีด ” : 30,
“ u8Data1 ” : 2
}
}
ค้นหาไฟล์บัตร TF:
( 1) คำสั่งให้ค้นหาไฟล์วิดีโอทั้งหมดภายในระยะเวลาที่กำหนดในวันเดียวกัน:
{
“searchRecordFileList”:{
“U32ปี”:2020, // ปี
“คุณ8เดือน”: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 ด้วยตนเอง:
ส่งคำสั่งต่อไปนี้ไปยังอุปกรณ์.
{
“คู่มือSnapJpg”:{
}
}
กลับสำเร็จแล้ว:
{
“คู่มือSnapJpg”: จริง
}
การควบคุม PWM ปรับความสว่าง LED:
รับค่า PWM ปัจจุบัน:
{
“getPwmParam”:{
“u32PwmChn”: 0
}
}
กลับสำเร็จแล้ว:
{
“getPwmParam”:{
“u32PwmChn”:0,
“u8เปิดใช้งาน”:1,
“u8DutyValue”:20
}
}
- ตั้งค่า PWM:
{
“setPwmParam”:{
“u32PwmChn”: 0,
“u8เปิดใช้งาน”: 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, รองรับกล่องข้อความหลายกล่อง.
“u8เปิดใช้งาน”:0, // เปิดใช้งาน, 0: อย่าแสดง; 1: แสดง
“u16XRatioBase50000”:40000, // พิกัดสัมพัทธ์ของตำแหน่งแนวนอน, ด้วยมูลค่าสูงสุดที่ 50000.
“U16YRatioBase50000”:1600, // พิกัดสัมพัทธ์ของตำแหน่งแนวตั้ง, ด้วยมูลค่าสูงสุดที่ 50000.
“u8Fgความโปร่งใส”:10, // ความโปร่งใสเบื้องหน้า [0-255]
“u8Bgความโปร่งใส”:255, // ค่าความโปร่งใสของพื้นหลัง [0-255]
“u8SizeType”:1, // ขนาดข้อความ, ช่วงค่า [0-3]
“u32TextColor_BGRA8888”:4294967295, // สีข้อความค่า ARGB888
“aszText”:”” // กล่องข้อความจะแสดงสตริงเนื้อหา
}
}
(2) ตั้งค่าช่องวิดีโอที่ระบุ, พารามิเตอร์ข้อความ OSD:
{
“setVideoOsdTextInfo”:{
“u8IspChn”:0,
“u8TextIdx”:1,
“u8เปิดใช้งาน”:1,
“u16XRatioBase50000”:40000,
“U16YRatioBase50000”:1600,
“u8Fgความโปร่งใส”:10,
“u8Bgความโปร่งใส”:255,
“u8SizeType”:1,
“u32TextColor_BGRA8888”:4294967295,
“aszText”:”ทดสอบ 11111222233334444″
}
}
กลับสำเร็จแล้ว:
{
“setVideoOsdTextInfo”:จริง
}
CVBS HDMI ถึง IP encoder
ตัวเข้ารหัส CVBS เป็น Ethernet IP มีความเสถียรในการพิสูจน์สัญญาณอ่อน, ล็อคสัญญาณต่ำ
CVBS HDMI ถึง IP encoder
CVBS HDMI ถึง IP encoder

ถามคำถาม
ข้อความของคุณถูกส่งแล้ว