11 changed files with 885 additions and 45 deletions
-
3.vscode/settings.json
-
2CMakeLists.txt
-
22README.md
-
73mainwindow.cpp
-
2mainwindow.h
-
200mainwindow.ui
-
314src/camera_light_src_timing_controller/clst_controler.cpp
-
86src/camera_light_src_timing_controller/clst_controler.hpp
-
57src/camera_light_src_timing_controller/clst_controler_sig_type.cpp
-
169src/camera_light_src_timing_controller/clst_controler_sig_type.hpp
-
2zaf_protocol
@ -1,17 +1,7 @@ |
|||
``` |
|||
Timecode测试 |
|||
端口:19903 |
|||
协议:UDP |
|||
消息 :01 00 00 00 05 02 08 00 |
|||
解析结果:08:25:00:01 |
|||
|
|||
xync测试 |
|||
端口:13014 |
|||
协议:UDP |
|||
消息 : |
|||
F0 00 20 00 00 00 00 FF 00 00 F0 42 17 00 00 00 E1 FF FF FF 01 00 00 00 78 00 00 00 00 00 00 00 E6 00 00 00 00 00 00 00 00 00 00 00 80 00 00 00 00 00 00 00 |
|||
|
|||
|
|||
|
|||
|
|||
``` |
|||
TODO: |
|||
1. 显示FPGA版本号 |
|||
2. 显示STM32版本号 |
|||
3. 显示PC软件版本号 |
|||
4. 修改窗口名称 |
|||
``` |
@ -0,0 +1,57 @@ |
|||
#include "clst_controler_sig_type.hpp"
|
|||
|
|||
using namespace iflytop; |
|||
using namespace clst; |
|||
|
|||
map<string, ExtTriggerSrcType::EnumType_t> ExtTriggerSrcType::emap = { |
|||
{"OPTOCOUPLER_INPUT", OPTOCOUPLER_INPUT}, //
|
|||
{"DIFF_INPUT", DIFF_INPUT}, //
|
|||
}; |
|||
|
|||
map<string, TriggerEdge::EnumType_t> TriggerEdge::emap = { |
|||
{"RISING", RISING}, //
|
|||
{"FALLING", FALLING}, //
|
|||
{"BOTH", BOTH} //
|
|||
}; |
|||
|
|||
map<string, SigProcessMode::EnumType_t> SigProcessMode::emap = { |
|||
{"TRIGGER_MODE", TRIGGER_MODE}, //
|
|||
{"TRANSPARENT_MODE", TRANSPARENT_MODE}, //
|
|||
{"BIND_MODE", BIND_MODE} //
|
|||
|
|||
}; |
|||
|
|||
map<string, InternalSig::EnumType_t> InternalSig::emap = { |
|||
{"LOGIC0", LOGIC0}, //
|
|||
{"LOGIC1", LOGIC1}, //
|
|||
|
|||
{"INTERNAL_TRIGGER", INTERNAL_TRIGGER}, //
|
|||
{"INTERNAL_TRIGGER_I1", INTERNAL_TRIGGER_I1}, //
|
|||
{"INTERNAL_TRIGGER_I2", INTERNAL_TRIGGER_I2}, //
|
|||
{"INTERNAL_TRIGGER_I3", INTERNAL_TRIGGER_I3}, //
|
|||
{"INTERNAL_TRIGGER_I4", INTERNAL_TRIGGER_I4}, //
|
|||
|
|||
{"EXT_TRIGGER_1", EXT_TRIGGER_1}, //
|
|||
{"EXT_TRIGGER_1_I1", EXT_TRIGGER_1_I1}, //
|
|||
{"EXT_TRIGGER_1_I2", EXT_TRIGGER_1_I2}, //
|
|||
{"EXT_TRIGGER_1_I3", EXT_TRIGGER_1_I3}, //
|
|||
{"EXT_TRIGGER_1_I4", EXT_TRIGGER_1_I4}, //
|
|||
|
|||
{"EXT_TRIGGER_2", EXT_TRIGGER_2}, //
|
|||
{"EXT_TRIGGER_2_I1", EXT_TRIGGER_2_I1}, //
|
|||
{"EXT_TRIGGER_2_I2", EXT_TRIGGER_2_I2}, //
|
|||
{"EXT_TRIGGER_2_I3", EXT_TRIGGER_2_I3}, //
|
|||
{"EXT_TRIGGER_2_I4", EXT_TRIGGER_2_I4}, //
|
|||
|
|||
{"EXT_TRIGGER_3", EXT_TRIGGER_3}, //
|
|||
{"EXT_TRIGGER_3_I1", EXT_TRIGGER_3_I1}, //
|
|||
{"EXT_TRIGGER_3_I2", EXT_TRIGGER_3_I2}, //
|
|||
{"EXT_TRIGGER_3_I3", EXT_TRIGGER_3_I3}, //
|
|||
{"EXT_TRIGGER_3_I4", EXT_TRIGGER_3_I4}, //
|
|||
|
|||
{"EXT_TRIGGER_4", EXT_TRIGGER_4}, //
|
|||
{"EXT_TRIGGER_4_I1", EXT_TRIGGER_4_I1}, //
|
|||
{"EXT_TRIGGER_4_I2", EXT_TRIGGER_4_I2}, //
|
|||
{"EXT_TRIGGER_4_I3", EXT_TRIGGER_4_I3}, //
|
|||
{"EXT_TRIGGER_4_I4", EXT_TRIGGER_4_I4}, //
|
|||
}; |
@ -0,0 +1,169 @@ |
|||
#pragma once
|
|||
#include <fstream>
|
|||
#include <functional>
|
|||
#include <iostream>
|
|||
#include <list>
|
|||
#include <map>
|
|||
#include <memory>
|
|||
#include <mutex>
|
|||
#include <set>
|
|||
#include <sstream>
|
|||
#include <string>
|
|||
#include <thread>
|
|||
#include <vector>
|
|||
|
|||
#include "zaf_protocol/zaf_protocol.h"
|
|||
|
|||
namespace iflytop { |
|||
namespace clst { |
|||
using namespace std; |
|||
|
|||
class ExtTriggerSrcType { |
|||
public: |
|||
typedef enum { |
|||
OPTOCOUPLER_INPUT = 0, // 光耦输入
|
|||
DIFF_INPUT = 1, // 差分输入
|
|||
} EnumType_t; |
|||
|
|||
private: |
|||
static map<string, EnumType_t> emap; |
|||
|
|||
public: |
|||
EnumType_t val; |
|||
|
|||
ExtTriggerSrcType() { val = OPTOCOUPLER_INPUT; } |
|||
ExtTriggerSrcType(EnumType_t e) { val = e; } |
|||
ExtTriggerSrcType(uint32_t e) { val = (EnumType_t)e; } |
|||
ExtTriggerSrcType(string string) { emap.find(string) != emap.end() ? val = emap[string] : val = OPTOCOUPLER_INPUT; } |
|||
string toString() { return toString(val); } |
|||
string toString(EnumType_t ein) { |
|||
for (auto &item : emap) { |
|||
if (item.second == ein) return item.first; |
|||
} |
|||
return "unkown"; |
|||
} |
|||
uint32_t getVal() { return val; } |
|||
operator uint32_t() { return val; } |
|||
}; |
|||
|
|||
class TriggerEdge { |
|||
public: |
|||
typedef enum { |
|||
RISING = 0, // 上升沿触发
|
|||
FALLING = 1, // 下降沿触发
|
|||
BOTH = 2, // 上升沿和下降沿触发
|
|||
} EnumType_t; |
|||
|
|||
private: |
|||
static map<string, EnumType_t> emap; |
|||
|
|||
public: |
|||
EnumType_t val; |
|||
|
|||
TriggerEdge() { val = RISING; } |
|||
TriggerEdge(EnumType_t e) { val = e; } |
|||
TriggerEdge(uint32_t e) { val = (EnumType_t)e; } |
|||
TriggerEdge(string string) { emap.find(string) != emap.end() ? val = emap[string] : val = RISING; } |
|||
string toString() { return toString(val); } |
|||
string toString(EnumType_t ein) { |
|||
for (auto &item : emap) { |
|||
if (item.second == ein) return item.first; |
|||
} |
|||
return "unkown"; |
|||
} |
|||
uint32_t getVal() { return val; } |
|||
operator uint32_t() { return val; } |
|||
}; |
|||
|
|||
class SigProcessMode { |
|||
public: |
|||
typedef enum { |
|||
TRIGGER_MODE = 0, // 触发模式
|
|||
TRANSPARENT_MODE = 1, // 透传模式
|
|||
BIND_MODE = 2 // 绑定模式
|
|||
} EnumType_t; |
|||
|
|||
private: |
|||
static map<string, EnumType_t> emap; |
|||
|
|||
public: |
|||
EnumType_t val; |
|||
|
|||
SigProcessMode() { val = TRIGGER_MODE; } |
|||
SigProcessMode(EnumType_t e) { val = e; } |
|||
SigProcessMode(uint32_t e) { val = (EnumType_t)e; } |
|||
SigProcessMode(string string) { emap.find(string) != emap.end() ? val = emap[string] : val = TRIGGER_MODE; } |
|||
string toString() { return toString(val); } |
|||
string toString(EnumType_t ein) { |
|||
for (auto &item : emap) { |
|||
if (item.second == ein) return item.first; |
|||
} |
|||
return "unkown"; |
|||
} |
|||
uint32_t getVal() { return val; } |
|||
operator uint32_t() { return val; } |
|||
}; |
|||
|
|||
class InternalSig { |
|||
public: |
|||
typedef enum { |
|||
|
|||
LOGIC0 = 0, |
|||
LOGIC1 = 1, |
|||
|
|||
INTERNAL_TRIGGER = 2, |
|||
INTERNAL_TRIGGER_I1 = 3, |
|||
INTERNAL_TRIGGER_I2 = 4, |
|||
INTERNAL_TRIGGER_I3 = 5, |
|||
INTERNAL_TRIGGER_I4 = 6, |
|||
|
|||
EXT_TRIGGER_1 = 7, |
|||
EXT_TRIGGER_1_I1 = 8, |
|||
EXT_TRIGGER_1_I2 = 9, |
|||
EXT_TRIGGER_1_I3 = 10, |
|||
EXT_TRIGGER_1_I4 = 11, |
|||
|
|||
EXT_TRIGGER_2 = 12, |
|||
EXT_TRIGGER_2_I1 = 13, |
|||
EXT_TRIGGER_2_I2 = 14, |
|||
EXT_TRIGGER_2_I3 = 15, |
|||
EXT_TRIGGER_2_I4 = 16, |
|||
|
|||
EXT_TRIGGER_3 = 17, |
|||
EXT_TRIGGER_3_I1 = 18, |
|||
EXT_TRIGGER_3_I2 = 19, |
|||
EXT_TRIGGER_3_I3 = 20, |
|||
EXT_TRIGGER_3_I4 = 21, |
|||
|
|||
EXT_TRIGGER_4 = 22, |
|||
EXT_TRIGGER_4_I1 = 23, |
|||
EXT_TRIGGER_4_I2 = 24, |
|||
EXT_TRIGGER_4_I3 = 25, |
|||
EXT_TRIGGER_4_I4 = 26, |
|||
|
|||
} EnumType_t; |
|||
|
|||
private: |
|||
static map<string, EnumType_t> emap; |
|||
|
|||
public: |
|||
EnumType_t val; |
|||
|
|||
InternalSig() { val = LOGIC0; } |
|||
InternalSig(EnumType_t e) { val = e; } |
|||
InternalSig(uint32_t e) { val = (EnumType_t)e; } |
|||
InternalSig(string string) { emap.find(string) != emap.end() ? val = emap[string] : val = LOGIC0; } |
|||
string toString() { return toString(val); } |
|||
string toString(EnumType_t ein) { |
|||
for (auto &item : emap) { |
|||
if (item.second == ein) return item.first; |
|||
} |
|||
return "unkown"; |
|||
} |
|||
|
|||
uint32_t getVal() { return val; } |
|||
operator uint32_t() { return val; } |
|||
}; |
|||
|
|||
} // namespace clst
|
|||
} // namespace iflytop
|
@ -1 +1 @@ |
|||
Subproject commit 19d549a123f6dcf6e1a47b012a64bf659740638d |
|||
Subproject commit d29b00371520aea2566aa09cba2384e3e937a908 |
Write
Preview
Loading…
Cancel
Save
Reference in new issue