BABY4
This commit is contained in:
parent
02238e9403
commit
4dd023a350
145
config/device/max-256-120,U=120,M=PWI,S=(256 6002).txt
Normal file
145
config/device/max-256-120,U=120,M=PWI,S=(256 6002).txt
Normal file
@ -0,0 +1,145 @@
|
|||||||
|
[Root]
|
||||||
|
VersionDriverOEMPA=1.3.0.1
|
||||||
|
CycleCount=1
|
||||||
|
EnableFMC=1
|
||||||
|
FMCElementStart=0
|
||||||
|
FMCElementStop=255
|
||||||
|
FMCElementStep=1
|
||||||
|
DisableUSB3=1
|
||||||
|
AscanBitSize=14Bits
|
||||||
|
Enable256=0
|
||||||
|
|
||||||
|
SWEncoder1Resolution=1
|
||||||
|
TriggerMode=Internal
|
||||||
|
Encoder1A=DigitalInput01
|
||||||
|
Encoder1B=DigitalInput02
|
||||||
|
Encoder1Type=Quadrature4Edges
|
||||||
|
RequestIO=OnCycleOnly
|
||||||
|
|
||||||
|
[Cycle:0]
|
||||||
|
GainDigital=0.000000 dB
|
||||||
|
BeamCorrection=0.0 dB
|
||||||
|
Start=0.000000 us
|
||||||
|
Range=120.000000 us
|
||||||
|
TimeSlot=5003.800000 us
|
||||||
|
PointFactor=2
|
||||||
|
CompressionType=Decimation
|
||||||
|
Rectification=Signed
|
||||||
|
FilterIndex=0
|
||||||
|
GainAnalog=40.000000 dB
|
||||||
|
GateCount=0
|
||||||
|
|
||||||
|
[Cycle:0\Pulser]
|
||||||
|
WedgeDelay=0.0 us
|
||||||
|
Element.count=256
|
||||||
|
Element_0=0;1;2;3;4;5;6;7
|
||||||
|
Element_8=8;9;10;11;12;13;14;15
|
||||||
|
Element_16=16;17;18;19;20;21;22;23
|
||||||
|
Element_24=24;25;26;27;28;29;30;31
|
||||||
|
Element_32=32;33;34;35;36;37;38;39
|
||||||
|
Element_40=40;41;42;43;44;45;46;47
|
||||||
|
Element_48=48;49;50;51;52;53;54;55
|
||||||
|
Element_56=56;57;58;59;60;61;62;63
|
||||||
|
Element_64=64;65;66;67;68;69;70;71
|
||||||
|
Element_72=72;73;74;75;76;77;78;79
|
||||||
|
Element_80=80;81;82;83;84;85;86;87
|
||||||
|
Element_88=88;89;90;91;92;93;94;95
|
||||||
|
Element_96=96;97;98;99;100;101;102;103
|
||||||
|
Element_104=104;105;106;107;108;109;110;111
|
||||||
|
Element_112=112;113;114;115;116;117;118;119
|
||||||
|
Element_120=120;121;122;123;124;125;126;127
|
||||||
|
Element_128=128;129;130;131;132;133;134;135
|
||||||
|
Element_136=136;137;138;139;140;141;142;143
|
||||||
|
Element_144=144;145;146;147;148;149;150;151
|
||||||
|
Element_152=152;153;154;155;156;157;158;159
|
||||||
|
Element_160=160;161;162;163;164;165;166;167
|
||||||
|
Element_168=168;169;170;171;172;173;174;175
|
||||||
|
Element_176=176;177;178;179;180;181;182;183
|
||||||
|
Element_184=184;185;186;187;188;189;190;191
|
||||||
|
Element_192=192;193;194;195;196;197;198;199
|
||||||
|
Element_200=200;201;202;203;204;205;206;207
|
||||||
|
Element_208=208;209;210;211;212;213;214;215
|
||||||
|
Element_216=216;217;218;219;220;221;222;223
|
||||||
|
Element_224=224;225;226;227;228;229;230;231
|
||||||
|
Element_232=232;233;234;235;236;237;238;239
|
||||||
|
Element_240=240;241;242;243;244;245;246;247
|
||||||
|
Element_248=248;249;250;251;252;253;254;255
|
||||||
|
Delay.count=256;1
|
||||||
|
Delay_0=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_8=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_16=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_24=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_32=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_40=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_48=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_56=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_64=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_72=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_80=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_88=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_96=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_104=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_112=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_120=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_128=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_136=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_144=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_152=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_160=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_168=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_176=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_184=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_192=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_200=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_208=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_216=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_224=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_232=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_240=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Delay_248=0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000;0.000000 us
|
||||||
|
Width.count=256
|
||||||
|
Width_0=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_8=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_16=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_24=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_32=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_40=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_48=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_56=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_64=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_72=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_80=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_88=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_96=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_104=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_112=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_120=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_128=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_136=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_144=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_152=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_160=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_168=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_176=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_184=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_192=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_200=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_208=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_216=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_224=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_232=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_240=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
Width_248=0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000;0.100000 us
|
||||||
|
|
||||||
|
[Cycle:0\Receiver]
|
||||||
|
WedgeDelay=0.0 us
|
||||||
|
Element.count=1
|
||||||
|
Element=0
|
||||||
|
Focusing=Standard
|
||||||
|
Delay.count=1;1
|
||||||
|
Delay=0.0 us
|
||||||
|
Gain.count=1
|
||||||
|
Gain=0.0 dB
|
||||||
|
FocalTimeOfFlight.count=1
|
||||||
|
FocalTimeOfFlight=0.0 us
|
||||||
|
|
||||||
1
config/imaging/baby4.json
Normal file
1
config/imaging/baby4.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"t_end": 2026, "t_start": 1714, "v2": 1524, "dct_center": 1086, "dct_bandwidth": 915, "f_rows": 6002, "beta": 40, "tgc": 0, "g1": 23, "g2": 27, "g3": 34, "g4": 24, "g5": 23, "g6": 30, "g7": 27, "g8": 51}
|
||||||
@ -24,7 +24,7 @@ def gen_pwi(dist_mat: cp.ndarray, dev_cfg=DeviceConfig()):
|
|||||||
def pwi_(mat_in):
|
def pwi_(mat_in):
|
||||||
return mat_in[col_idx, row_idx].sum(axis=2).T[:, :last_available_index]
|
return mat_in[col_idx, row_idx].sum(axis=2).T[:, :last_available_index]
|
||||||
|
|
||||||
return pwi_, row_idx
|
return pwi_, row_idx, last_available_index
|
||||||
|
|
||||||
|
|
||||||
class TFM:
|
class TFM:
|
||||||
|
|||||||
@ -41,8 +41,8 @@ class SoftwareConfig:
|
|||||||
p.mkdir(exist_ok=True, parents=True)
|
p.mkdir(exist_ok=True, parents=True)
|
||||||
return p
|
return p
|
||||||
|
|
||||||
video_height: int = 1920
|
video_height: int = 1080
|
||||||
video_width: int = 1080
|
video_width: int = 960
|
||||||
|
|
||||||
live_ip: str = '11.6.1.71'
|
live_ip: str = '11.6.1.71'
|
||||||
live_push_port: int = 5555
|
live_push_port: int = 5555
|
||||||
|
|||||||
@ -9,7 +9,7 @@ from flandre.beamformer.dist import direct_dist
|
|||||||
from flandre.config import C
|
from flandre.config import C
|
||||||
from flandre.nodes.Node import Node
|
from flandre.nodes.Node import Node
|
||||||
from flandre.utils.Config import DeviceConfig
|
from flandre.utils.Config import DeviceConfig
|
||||||
from flandre.utils.Msg import ImageArgMsg, Msg, BeamformerMsg, RfMatMsg, RfFrameMsg
|
from flandre.utils.Msg import ImageArgMsg, Msg, BeamformerMsg, RfMatMsg, RfFrameMsg, MaxMsg
|
||||||
from flandre.utils.RfMat import RfMat
|
from flandre.utils.RfMat import RfMat
|
||||||
from flandre.utils.RfMeta import RfSequenceMeta
|
from flandre.utils.RfMeta import RfSequenceMeta
|
||||||
|
|
||||||
@ -40,16 +40,17 @@ class Beamformer(Node):
|
|||||||
.argrelextrema()
|
.argrelextrema()
|
||||||
.conv_guass(b=arg.beta * 0.01)
|
.conv_guass(b=arg.beta * 0.01)
|
||||||
.crop_center(arg.t_start, arg.t_end)
|
.crop_center(arg.t_start, arg.t_end)
|
||||||
.time_gain_compensation([
|
# .time_gain_compensation([
|
||||||
( (1 - arg.g1 * (1.0 / 128))** 2),
|
# ( (1 - arg.g1 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g2 * (1.0 / 128))** 2),
|
# ( (1 - arg.g2 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g3 * (1.0 / 128))** 2),
|
# ( (1 - arg.g3 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g4 * (1.0 / 128))** 2),
|
# ( (1 - arg.g4 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g5 * (1.0 / 128))** 2),
|
# ( (1 - arg.g5 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g6 * (1.0 / 128))** 2),
|
# ( (1 - arg.g6 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g7 * (1.0 / 128))** 2),
|
# ( (1 - arg.g7 * (1.0 / 128))** 2),
|
||||||
( (1 - arg.g8 * (1.0 / 128))** 2),
|
# ( (1 - arg.g8 * (1.0 / 128))** 2),
|
||||||
])
|
# ])
|
||||||
|
.time_gain_compensation_global((1 - arg.g8 * (1.0 / 128)) ** 2)
|
||||||
.rotate90()
|
.rotate90()
|
||||||
.grey()
|
.grey()
|
||||||
.cpu()
|
.cpu()
|
||||||
@ -62,7 +63,8 @@ class Beamformer(Node):
|
|||||||
|
|
||||||
def loop(self):
|
def loop(self):
|
||||||
dc = DeviceConfig()
|
dc = DeviceConfig()
|
||||||
pwi, _ = gen_pwi(direct_dist(dc), dc)
|
pwi, _, mm = gen_pwi(direct_dist(dc), dc)
|
||||||
|
self.send(MaxMsg(mm.item()))
|
||||||
last_v2 = 5900
|
last_v2 = 5900
|
||||||
last_f_rows = 0
|
last_f_rows = 0
|
||||||
while True:
|
while True:
|
||||||
@ -86,7 +88,8 @@ class Beamformer(Node):
|
|||||||
last_v2 = arg_msg.v2
|
last_v2 = arg_msg.v2
|
||||||
last_f_rows = arg_msg.f_rows
|
last_f_rows = arg_msg.f_rows
|
||||||
dc = DeviceConfig(v2=arg_msg.v2, rows=arg_msg.f_rows)
|
dc = DeviceConfig(v2=arg_msg.v2, rows=arg_msg.f_rows)
|
||||||
pwi, _ = gen_pwi(direct_dist(dc), dc)
|
pwi, _, m = gen_pwi(direct_dist(dc), dc)
|
||||||
|
self.send(MaxMsg(m.item()))
|
||||||
try:
|
try:
|
||||||
if mat.seq_meta.mode == RfSequenceMeta.RfSequenceMode.PWI:
|
if mat.seq_meta.mode == RfSequenceMeta.RfSequenceMode.PWI:
|
||||||
self.process_pwi(mat, arg_msg, pwi)
|
self.process_pwi(mat, arg_msg, pwi)
|
||||||
|
|||||||
@ -42,10 +42,10 @@ class ImageFFMPEG(Node):
|
|||||||
|
|
||||||
'-pix_fmt', 'yuv420p',
|
'-pix_fmt', 'yuv420p',
|
||||||
# '-vcodec', 'libx264',
|
# '-vcodec', 'libx264',
|
||||||
# '-b:v', '40M',
|
'-b:v', '20M',
|
||||||
'-f', 'flv',
|
'-f', 'flv',
|
||||||
# 'rtmp://q1hyb.as/live/bscan',
|
'rtmp://q1hyb.as/live/bscan',
|
||||||
'rtmp://11.2.1.21/live/bscan',
|
# 'rtmp://11.2.1.21/live/bscan',
|
||||||
# '-f', 'mpegts',
|
# '-f', 'mpegts',
|
||||||
# 'srt://localhost:10080?streamid=#!::r=live/livestream,m=publish'
|
# 'srt://localhost:10080?streamid=#!::r=live/livestream,m=publish'
|
||||||
],
|
],
|
||||||
@ -72,5 +72,6 @@ class ImageFFMPEG(Node):
|
|||||||
lasttime = currenttime
|
lasttime = currenttime
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
ImageFFMPEG()()
|
ImageFFMPEG()()
|
||||||
|
|||||||
@ -20,7 +20,7 @@ from flandre.utils.Msg import KillMsg, Msg, ImageArgMsg, SeqIdMinMax, MoveAxisMs
|
|||||||
SetSeqMetaMsg, SetPlayMode, DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, SetDeviceEnabledMsg, \
|
SetSeqMetaMsg, SetPlayMode, DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, SetDeviceEnabledMsg, \
|
||||||
SetDeviceConnectedMsg, DeviceConfigListMsg, SetDeviceConfigMsg, SetRecordMsg, RobotRtsiMsg, RecordFrameMsg, \
|
SetDeviceConnectedMsg, DeviceConfigListMsg, SetDeviceConfigMsg, SetRecordMsg, RobotRtsiMsg, RecordFrameMsg, \
|
||||||
SeqIdList, SetWindowVisibleMsg, SetSidMsg, ImagingConfigNameListMsg, DeviceZero, DeviceSwitchMsg, \
|
SeqIdList, SetWindowVisibleMsg, SetSidMsg, ImagingConfigNameListMsg, DeviceZero, DeviceSwitchMsg, \
|
||||||
SetDeviceSwitchMsg, SeqMetaMsg, RefreshDeviceMsg
|
SetDeviceSwitchMsg, SeqMetaMsg, RefreshDeviceMsg, MaxMsg
|
||||||
from flandre.utils.RfMeta import RfSequenceMeta
|
from flandre.utils.RfMeta import RfSequenceMeta
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -341,19 +341,24 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
else:
|
else:
|
||||||
QMessageBox.warning(None, 'hint', 'Commit is empty!!')
|
QMessageBox.warning(None, 'hint', 'Commit is empty!!')
|
||||||
|
|
||||||
def update_max(self, m):
|
def update_max_2(self, m):
|
||||||
self.s_t_start.setMaximum(m)
|
self.s_t_start.setMaximum(m)
|
||||||
self.s_t_end.setMaximum(m)
|
self.s_t_end.setMaximum(m)
|
||||||
self.s_dct_center.setMaximum(m)
|
|
||||||
self.s_dct_bandwidth.setMaximum(m)
|
|
||||||
self.s_f_rows.setMaximum(m)
|
|
||||||
|
|
||||||
self.sp_crop_center.setMaximum(m)
|
self.sp_crop_center.setMaximum(m)
|
||||||
self.sp_crop_width.setMaximum(m)
|
self.sp_crop_width.setMaximum(m)
|
||||||
self.sp_dct_center.setMaximum(m)
|
|
||||||
self.sp_dct_bandwidth.setMaximum(m)
|
|
||||||
|
def update_max(self, m):
|
||||||
|
self.s_f_rows.setMaximum(m)
|
||||||
self.sp_f_rows.setMaximum(m)
|
self.sp_f_rows.setMaximum(m)
|
||||||
|
|
||||||
|
self.s_dct_center.setMaximum(m)
|
||||||
|
self.s_dct_bandwidth.setMaximum(m)
|
||||||
|
|
||||||
|
self.sp_dct_center.setMaximum(m)
|
||||||
|
self.sp_dct_bandwidth.setMaximum(m)
|
||||||
def on_zmq_event(self, msg: QByteArray):
|
def on_zmq_event(self, msg: QByteArray):
|
||||||
try:
|
try:
|
||||||
msg = Msg.decode_msg(msg.data())
|
msg = Msg.decode_msg(msg.data())
|
||||||
@ -463,7 +468,8 @@ class Adv(QMainWindow, Ui_MainWindow):
|
|||||||
self.ln_frx.display(f"{msg.force[3] / 100:.2f}")
|
self.ln_frx.display(f"{msg.force[3] / 100:.2f}")
|
||||||
self.ln_fry.display(f"{msg.force[4] / 100:.2f}")
|
self.ln_fry.display(f"{msg.force[4] / 100:.2f}")
|
||||||
self.ln_frz.display(f"{msg.force[5] / 100:.2f}")
|
self.ln_frz.display(f"{msg.force[5] / 100:.2f}")
|
||||||
|
elif isinstance(msg, MaxMsg):
|
||||||
|
self.update_max_2(msg.value)
|
||||||
elif isinstance(msg, RecordFrameMsg):
|
elif isinstance(msg, RecordFrameMsg):
|
||||||
|
|
||||||
self.record_frame_cnt += 1
|
self.record_frame_cnt += 1
|
||||||
@ -641,7 +647,7 @@ class MainUI(Node):
|
|||||||
PlaybackSeqListMsg, SetSeqMetaMsg, SeqIdList, SetWindowVisibleMsg, SetSidMsg,
|
PlaybackSeqListMsg, SetSeqMetaMsg, SeqIdList, SetWindowVisibleMsg, SetSidMsg,
|
||||||
DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, DeviceConfigListMsg,
|
DeviceConnectedMsg, DeviceEnabledMsg, DeviceOnlineMsg, DeviceConfigListMsg,
|
||||||
RobotRtsiMsg, DeviceSwitchMsg,
|
RobotRtsiMsg, DeviceSwitchMsg,
|
||||||
RecordFrameMsg, SeqMetaMsg]
|
RecordFrameMsg, SeqMetaMsg, MaxMsg]
|
||||||
|
|
||||||
def __init__(self, level=logging.INFO):
|
def __init__(self, level=logging.INFO):
|
||||||
super().__init__(level=level)
|
super().__init__(level=level)
|
||||||
|
|||||||
@ -8,14 +8,14 @@ from mido import Message
|
|||||||
from mido.backends.rtmidi import Input, Output
|
from mido.backends.rtmidi import Input, Output
|
||||||
|
|
||||||
from flandre.nodes.Node import Node
|
from flandre.nodes.Node import Node
|
||||||
from flandre.utils.Msg import KillMsg, MidiMsg, Msg, ImageArgMsg, SetSeqMetaMsg, SetSidMsg
|
from flandre.utils.Msg import KillMsg, MidiMsg, Msg, ImageArgMsg, SetSeqMetaMsg, SetSidMsg, MaxMsg
|
||||||
from flandre.utils.RfMeta import RfSequenceMeta
|
from flandre.utils.RfMeta import RfSequenceMeta
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
class Midi(Node):
|
class Midi(Node):
|
||||||
topics = [ImageArgMsg, SetSeqMetaMsg]
|
topics = [ImageArgMsg, SetSeqMetaMsg, MaxMsg]
|
||||||
|
|
||||||
def __init__(self, level=logging.INFO):
|
def __init__(self, level=logging.INFO):
|
||||||
super(Midi, self).__init__(level=level)
|
super(Midi, self).__init__(level=level)
|
||||||
@ -71,6 +71,7 @@ class Midi(Node):
|
|||||||
self.isa.send(MidiMsg(type='note_on', note=d['note'], velocity=d['velocity']).encode_msg())
|
self.isa.send(MidiMsg(type='note_on', note=d['note'], velocity=d['velocity']).encode_msg())
|
||||||
case 'note_off':
|
case 'note_off':
|
||||||
self.isa.send(MidiMsg(type='note_off', note=d['note'], velocity=d['velocity']).encode_msg())
|
self.isa.send(MidiMsg(type='note_off', note=d['note'], velocity=d['velocity']).encode_msg())
|
||||||
|
|
||||||
def loop(self):
|
def loop(self):
|
||||||
isb = self.c.ctx.socket(zmq.PULL)
|
isb = self.c.ctx.socket(zmq.PULL)
|
||||||
isb.connect("inproc://midi")
|
isb.connect("inproc://midi")
|
||||||
@ -108,9 +109,11 @@ class Midi(Node):
|
|||||||
case 2:
|
case 2:
|
||||||
self.arg.v2 = sorted((500, self.arg.v2 + msg.value * 10, 7000))[1]
|
self.arg.v2 = sorted((500, self.arg.v2 + msg.value * 10, 7000))[1]
|
||||||
case 3:
|
case 3:
|
||||||
self.arg.dct_center = sorted((500, self.arg.dct_center + msg.value * 10, self.m_dct_center))[1]
|
self.arg.dct_center = \
|
||||||
|
sorted((500, self.arg.dct_center + msg.value * 10, self.m_dct_center))[1]
|
||||||
case 4:
|
case 4:
|
||||||
self.arg.dct_bandwidth = sorted((500, self.arg.dct_bandwidth + msg.value * 10, self.m_dct_bandwidth))[1]
|
self.arg.dct_bandwidth = \
|
||||||
|
sorted((500, self.arg.dct_bandwidth + msg.value * 10, self.m_dct_bandwidth))[1]
|
||||||
case 5:
|
case 5:
|
||||||
self.arg.f_rows = sorted((500, self.arg.f_rows + msg.value * 10, self.m_f_rows))[1]
|
self.arg.f_rows = sorted((500, self.arg.f_rows + msg.value * 10, self.m_f_rows))[1]
|
||||||
case 6:
|
case 6:
|
||||||
@ -135,8 +138,10 @@ class Midi(Node):
|
|||||||
elif isinstance(msg, SetSeqMetaMsg):
|
elif isinstance(msg, SetSeqMetaMsg):
|
||||||
seq_meta = RfSequenceMeta.from_name(msg.name)
|
seq_meta = RfSequenceMeta.from_name(msg.name)
|
||||||
mmax_shape0 = max(seq_meta.shape)
|
mmax_shape0 = max(seq_meta.shape)
|
||||||
self.m_t_start = mmax_shape0
|
|
||||||
self.m_t_end = mmax_shape0
|
|
||||||
self.m_dct_center = mmax_shape0
|
self.m_dct_center = mmax_shape0
|
||||||
self.m_dct_bandwidth = mmax_shape0
|
self.m_dct_bandwidth = mmax_shape0
|
||||||
self.m_f_rows = mmax_shape0
|
self.m_f_rows = mmax_shape0
|
||||||
|
elif isinstance(msg, MaxMsg):
|
||||||
|
mmax_shape0 = msg.value
|
||||||
|
self.m_t_start = mmax_shape0
|
||||||
|
self.m_t_end = mmax_shape0
|
||||||
|
|||||||
@ -60,7 +60,7 @@ class Node:
|
|||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
self.setup()
|
self.setup()
|
||||||
if not self.broker:
|
if not self.broker:
|
||||||
time.sleep(1)
|
time.sleep(2)
|
||||||
self.send(NodeOnlineMsg(self.__class__.__name__))
|
self.send(NodeOnlineMsg(self.__class__.__name__))
|
||||||
# input('asdasd')
|
# input('asdasd')
|
||||||
msg = self.recv()
|
msg = self.recv()
|
||||||
|
|||||||
@ -482,9 +482,11 @@ class Ui_MainWindow(object):
|
|||||||
self.label_8.setObjectName("label_8")
|
self.label_8.setObjectName("label_8")
|
||||||
self.gridLayout_4.addWidget(self.label_8, 1, 0, 1, 1)
|
self.gridLayout_4.addWidget(self.label_8, 1, 0, 1, 1)
|
||||||
self.sp_g6 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g6 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g6.setMaximum(127)
|
||||||
self.sp_g6.setObjectName("sp_g6")
|
self.sp_g6.setObjectName("sp_g6")
|
||||||
self.gridLayout_4.addWidget(self.sp_g6, 6, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g6, 6, 2, 1, 1)
|
||||||
self.sp_g4 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g4 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g4.setMaximum(127)
|
||||||
self.sp_g4.setObjectName("sp_g4")
|
self.sp_g4.setObjectName("sp_g4")
|
||||||
self.gridLayout_4.addWidget(self.sp_g4, 4, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g4, 4, 2, 1, 1)
|
||||||
self.s_g7 = QtWidgets.QSlider(parent=self.centralwidget)
|
self.s_g7 = QtWidgets.QSlider(parent=self.centralwidget)
|
||||||
@ -492,12 +494,14 @@ class Ui_MainWindow(object):
|
|||||||
self.s_g7.setObjectName("s_g7")
|
self.s_g7.setObjectName("s_g7")
|
||||||
self.gridLayout_4.addWidget(self.s_g7, 7, 1, 1, 1)
|
self.gridLayout_4.addWidget(self.s_g7, 7, 1, 1, 1)
|
||||||
self.sp_g2 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g2 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g2.setMaximum(127)
|
||||||
self.sp_g2.setObjectName("sp_g2")
|
self.sp_g2.setObjectName("sp_g2")
|
||||||
self.gridLayout_4.addWidget(self.sp_g2, 2, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g2, 2, 2, 1, 1)
|
||||||
self.label_10 = QtWidgets.QLabel(parent=self.centralwidget)
|
self.label_10 = QtWidgets.QLabel(parent=self.centralwidget)
|
||||||
self.label_10.setObjectName("label_10")
|
self.label_10.setObjectName("label_10")
|
||||||
self.gridLayout_4.addWidget(self.label_10, 3, 0, 1, 1)
|
self.gridLayout_4.addWidget(self.label_10, 3, 0, 1, 1)
|
||||||
self.sp_g3 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g3 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g3.setMaximum(127)
|
||||||
self.sp_g3.setObjectName("sp_g3")
|
self.sp_g3.setObjectName("sp_g3")
|
||||||
self.gridLayout_4.addWidget(self.sp_g3, 3, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g3, 3, 2, 1, 1)
|
||||||
self.s_g6 = QtWidgets.QSlider(parent=self.centralwidget)
|
self.s_g6 = QtWidgets.QSlider(parent=self.centralwidget)
|
||||||
@ -516,12 +520,15 @@ class Ui_MainWindow(object):
|
|||||||
self.s_g4.setObjectName("s_g4")
|
self.s_g4.setObjectName("s_g4")
|
||||||
self.gridLayout_4.addWidget(self.s_g4, 4, 1, 1, 1)
|
self.gridLayout_4.addWidget(self.s_g4, 4, 1, 1, 1)
|
||||||
self.sp_g7 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g7 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g7.setMaximum(127)
|
||||||
self.sp_g7.setObjectName("sp_g7")
|
self.sp_g7.setObjectName("sp_g7")
|
||||||
self.gridLayout_4.addWidget(self.sp_g7, 7, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g7, 7, 2, 1, 1)
|
||||||
self.sp_g1 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g1 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g1.setMaximum(127)
|
||||||
self.sp_g1.setObjectName("sp_g1")
|
self.sp_g1.setObjectName("sp_g1")
|
||||||
self.gridLayout_4.addWidget(self.sp_g1, 1, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g1, 1, 2, 1, 1)
|
||||||
self.sp_g5 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g5 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g5.setMaximum(127)
|
||||||
self.sp_g5.setObjectName("sp_g5")
|
self.sp_g5.setObjectName("sp_g5")
|
||||||
self.gridLayout_4.addWidget(self.sp_g5, 5, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g5, 5, 2, 1, 1)
|
||||||
self.s_g2 = QtWidgets.QSlider(parent=self.centralwidget)
|
self.s_g2 = QtWidgets.QSlider(parent=self.centralwidget)
|
||||||
@ -540,6 +547,7 @@ class Ui_MainWindow(object):
|
|||||||
self.label_37.setObjectName("label_37")
|
self.label_37.setObjectName("label_37")
|
||||||
self.gridLayout_4.addWidget(self.label_37, 8, 0, 1, 1)
|
self.gridLayout_4.addWidget(self.label_37, 8, 0, 1, 1)
|
||||||
self.sp_g8 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
self.sp_g8 = QtWidgets.QSpinBox(parent=self.centralwidget)
|
||||||
|
self.sp_g8.setMaximum(127)
|
||||||
self.sp_g8.setObjectName("sp_g8")
|
self.sp_g8.setObjectName("sp_g8")
|
||||||
self.gridLayout_4.addWidget(self.sp_g8, 8, 2, 1, 1)
|
self.gridLayout_4.addWidget(self.sp_g8, 8, 2, 1, 1)
|
||||||
self.gridLayout.addLayout(self.gridLayout_4, 3, 1, 1, 1)
|
self.gridLayout.addLayout(self.gridLayout_4, 3, 1, 1, 1)
|
||||||
|
|||||||
@ -931,10 +931,18 @@ border-radius: 7px;
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="2">
|
<item row="6" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g6"/>
|
<widget class="QSpinBox" name="sp_g6">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="4" column="2">
|
<item row="4" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g4"/>
|
<widget class="QSpinBox" name="sp_g4">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="1">
|
<item row="7" column="1">
|
||||||
<widget class="QSlider" name="s_g7">
|
<widget class="QSlider" name="s_g7">
|
||||||
@ -944,7 +952,11 @@ border-radius: 7px;
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="2">
|
<item row="2" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g2"/>
|
<widget class="QSpinBox" name="sp_g2">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="3" column="0">
|
||||||
<widget class="QLabel" name="label_10">
|
<widget class="QLabel" name="label_10">
|
||||||
@ -954,7 +966,11 @@ border-radius: 7px;
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="2">
|
<item row="3" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g3"/>
|
<widget class="QSpinBox" name="sp_g3">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="6" column="1">
|
<item row="6" column="1">
|
||||||
<widget class="QSlider" name="s_g6">
|
<widget class="QSlider" name="s_g6">
|
||||||
@ -985,13 +1001,25 @@ border-radius: 7px;
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="7" column="2">
|
<item row="7" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g7"/>
|
<widget class="QSpinBox" name="sp_g7">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="2">
|
<item row="1" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g1"/>
|
<widget class="QSpinBox" name="sp_g1">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="5" column="2">
|
<item row="5" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g5"/>
|
<widget class="QSpinBox" name="sp_g5">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="QSlider" name="s_g2">
|
<widget class="QSlider" name="s_g2">
|
||||||
@ -1022,7 +1050,11 @@ border-radius: 7px;
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="8" column="2">
|
<item row="8" column="2">
|
||||||
<widget class="QSpinBox" name="sp_g8"/>
|
<widget class="QSpinBox" name="sp_g8">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>127</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
@ -19,6 +19,8 @@ class BG(Enum):
|
|||||||
NodeOnlineMsg = auto()
|
NodeOnlineMsg = auto()
|
||||||
KillMsg = auto()
|
KillMsg = auto()
|
||||||
StrMsg = auto()
|
StrMsg = auto()
|
||||||
|
IntMsg = auto()
|
||||||
|
MaxMsg = auto()
|
||||||
MoveAxisMsg = auto()
|
MoveAxisMsg = auto()
|
||||||
ImageArgMsg = auto()
|
ImageArgMsg = auto()
|
||||||
SetSeqMetaMsg = auto()
|
SetSeqMetaMsg = auto()
|
||||||
@ -145,6 +147,9 @@ class NodeOnlineMsg(Msg):
|
|||||||
class StrMsg(Msg):
|
class StrMsg(Msg):
|
||||||
value: str = ''
|
value: str = ''
|
||||||
|
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class IntMsg(Msg):
|
||||||
|
value: int = 0
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class KeyPressMsg(StrMsg):
|
class KeyPressMsg(StrMsg):
|
||||||
@ -182,6 +187,8 @@ class DeviceConnectedMsg(BoolMsg):
|
|||||||
class DeviceOnlineMsg(BoolMsg):
|
class DeviceOnlineMsg(BoolMsg):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
class MaxMsg(IntMsg):
|
||||||
|
pass
|
||||||
|
|
||||||
@dataclasses.dataclass
|
@dataclasses.dataclass
|
||||||
class SetRecordMsg(Msg):
|
class SetRecordMsg(Msg):
|
||||||
|
|||||||
@ -384,6 +384,16 @@ class RfMat:
|
|||||||
ssss += block
|
ssss += block
|
||||||
return self
|
return self
|
||||||
|
|
||||||
|
def time_gain_compensation_global(self, scale: float):
|
||||||
|
self.m = self.m.astype(np.float32)
|
||||||
|
h = self.m.shape[-1]
|
||||||
|
mmax = self.m.max()
|
||||||
|
s2 = self.m
|
||||||
|
new_max = mmax * scale
|
||||||
|
s2[s2 > new_max] = new_max
|
||||||
|
self.m = s2 * (mmax / new_max)
|
||||||
|
return self
|
||||||
|
|
||||||
def time_gain_compensation_linear_max(self, scale: float, mmax: int | None = None, start: int = 0):
|
def time_gain_compensation_linear_max(self, scale: float, mmax: int | None = None, start: int = 0):
|
||||||
if scale == 0:
|
if scale == 0:
|
||||||
return self
|
return self
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user