WhyCan Forum(哇酷开发者社区)

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn

您尚未登录。

#3 Re: 全志 V3S/F1C100s/X3 » builroot编译qt疑问 » 2020-09-04 22:33:14

ls -l 命令可以看到软链接的路径.

#4 Re: 全志 V3S/F1C100s/X3 » X3 tina编译 » 2020-09-04 22:32:22

感谢分享, 我记得五年前玩WSL的时候, 编译各种问题, 然后就放弃治疗继续用虚拟机了.

ext 是用 ntfs 模拟出来的吗?

#7 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » 给大家推荐 一个不错的开源的 VC / MFC 图形编辑软件 » 2020-08-23 16:13:20

天马行空
回复: 2

源码地址: https://github.com/bajdcc/GraphEditor

本站下载: GraphEditor.zip


以下涉及操作帮助和功能讲解。

============================= 一、功能概述 =============================

1. 添加启动界面
2. 文件可保存为位图(光栅化)和矢量图(序列化)
3. 添加控制面板和工具栏
4. 添加图形列表(双击定位)
5. 图形信息显示(选中右键)
6. 图形信息编辑(选中右键)
7. 图形删除(选中右键)
8. 图形拖拽与复制(按Ctrl键)
9. 图形拉伸变形
10. 图形位置微调(按方向键)
11. 撤消和恢复功能
12. Tab次序预览(Tab键)
13. 右键直接进入选择状态
14. 设置隐藏和显示隐藏(图形菜单)
15. 响应鼠标滚动
15. 画布动态响应窗口大小变化


============================= 二、使用帮助 =============================

1. 图片只能保存为位图(*.bmp),且为无损压缩
2. 控制栏可供选择的内容:
    (1)画笔颜色、风格、粗细
    (2)画刷颜色、风格
3. 在选择模式下可以进行的操作:
    (1)选中、拖动、拉伸变形、按CTRL键复制、按方向键进行微调
    (2)右键菜单弹出信息(先选中):包括画布大小、图形操作、图形信息概况
    (3)选中之后必须按住图形周围的圆点进行变形
4. 在画图模式下可以进行的操作:
    (1)一般操作
    (2)按SHIFT键画正形(正圆、正方形、斜45度直线)
5. 附加功能:
    (1)Tab次序:控制显示在【图形】菜单中调整
    (2)隐藏:图形设置隐藏,隐藏显示在【图形】菜单中调整
    (3)自定义名称:图形设置中更改
    (4)图形列表:双击可定位图形,选中图形也会定位列表


============================= 三、代码结构 =============================

1. 概况
    (1)代码行数:约3000行(View:~1000 Graphic:~1000)
    (2)主要类名:(带*的会有技术讲解)
        * CGraphic(子类:直线类CLine,椭圆类CEllipse,矩形类CRectangle,曲线类CCurve)
        CHelpDlg(模态帮助提示界面)
        * CStartupDlg(非模态启动界面)
        ConfigDlg(模态图形编辑界面)
        GraphicMember(通用图形数据转存类)
        * CGraphicLog(操作记录类,实现撤消和恢复)
2. 类的讲解和技术解析(带*的会详解)
    (1)CGraphic:图形基类
        1) 基类及派生类数据成员(看名称,略)
        2) 主要静态函数
            CreateGraphic: 根据介质创建相应类并赋值
            GetIdBySelection... : 存储画笔(刷)类型的一种方式,采用位运算
            LineHitTest: 若点在直线上,那么短两边和等于第三边,以此判断
        3) 主要成员函数
            Serialize: 序列化(在子类中必须先调用父类的序列化)
            UpdateData: 类似于MFC中的UpdateData(GraphicMember充当交换介质)
            Draw: 画图
            DrawSelectedEdge: 画选中后四周的点
            * HitTest: 测试点是否在图形内部,若是,bResult为真
            * HitSizingTest: 测试点是否在图形的四周变形点上,若是,bResult为真
            GetRect: 返回图形的矩形坐标,便于重绘
        4) 宏
            选择误差:(->N:趋于N更精确)
                SELECT_MISS_LINE: 直线(->1)
                SELECT_MISS_ELLIPSE: 椭圆(->0)
                DRAG_INF_WIDTH: 拉伸圆点
            其他:
                INF_WIDTH: 图形外边框厚度
                LOG_MAX_SAVE: 最大撤消数
                图形类的类型(LINE...)
                IF_NULL_PEN: 是否是透明画笔
                IF_NULL_BRUSH: 是否是透明画刷
                Convert_To_Graphic:转换为图形类
        5) 带*讲解
            HitTest和HitSizingTest:其实就是个回调函数,用来判断点是否在图形内部
                HitSizingTest有另外两个参数 PtX PtY,是int**类型(有原因的)
                假如要让图形变形,就要改它坐标,有时要改它的A坐标的X,B坐标的Y
                那么就要保存原坐标的LONG变量指针,再间接改变它
        6) 其他内容
            操作图形的界面很特殊。可以这么想,假如所有图形就不可拖动和更改,图形
                内容变的丰富,可以响应许多消息,可以加载位图,那么这个程序就实现
                了一般商业程序UI的功能。所以,可以用设计UI的思想来设计这些类。
            一般的开源UI库有Duilib和XCGUI,涉及工厂模式,观察者模式等等模式,且
                实现控件坐标非硬性编码,界面可由ZIP加载(通过解析XML和图片),
                所以多读优秀的代码可以提升思想。
            有兴趣可以看Java的《Head First设计模式》,语言不同,但思想是互通的。
            MFC的思想不错,只是可重用性不足,安全性不足,所以现在的软件一般采用
                开源的或自己开发的界面库。
            掌握了思想,技术实现就不是问题(只是时间问题)。
    (2)CGraphicLog
        1) 枚举体: 代表操作类型,包括新增,更改,删除
        2) 结构体: GraphicOperation 包括操作类型,保存的数据对象,对应下标
            Trace函数便于调试
        3) 单词解释: Undo - 撤消,Done - 恢复
        4) 解释
            本类的实现思想略为复杂(详见代码注释)
            虽然有两个成员是CList,但实现的功能是堆栈(思考为什么)
            因为删除了对象,不能真删了它,不然怎么恢复?
            对象被更改了,得保存更改之前的备份,这是UPDATE操作(new操作)
            我又画了东西,那么Done里的东西不复存在,记录记不下了,要删
            可是会导致重复删除(思考?),怎么解决?
               “引用”思想
            ——创建时维持引用计数为1,删除时减去1,如果计数为0则删除。
    (3)CStartupDlg
        运用工具:定时器,无模态对话框,线程
        线程同步方法:事件(CEvent->HANDLE),WaitingForSingleObject


3. 其他技术解析
    (1)双缓冲位图和后台位图
            直接在屏幕DC上操作,那么每画一次,就得更新一次界面,所以会闪屏
            如果在缓冲上操作,然后BitBlt给屏幕,那只要更新一次
            后台位图的功能是:当拖拽图形A的时候,除去这个图形之外的所有图形
            全部画在X上,此时拖动A,只要将屏幕重设成X,再画改变坐标后的A,
            再加上双缓冲,就可以有效避免闪屏
            注:为了简便(累。。),有些细节没有处理,所以还是会有闪屏
            注2: 在有些BitBlt操作之前,必须先调用UpdateWindow
    (2)保存为位图
            位图:BITMAPFILEHEADER,BITMAPINFO,位图像素
            函数实现详见XXXView::OnSaveAsBitmap,方法固定


============================= 四、总体评价 =============================

1. 本人带有代码格式化的习惯(格式化直观体现美和便于阅读)
    * 推荐格式化工具(Visual Assist X)
2. 程序代码相对较长,因此会有未发现的BUG……
3. 代码注释较少,故将解释写在帮助中
4. 写此文也是为了总结MFC的主要内容
5. 不熟悉的类和方法可以查询MSDN
6. 尚未尝试的功能:多选(很复杂,相当于重新建构),旋转(像素级运算),
   (PS:尝试后倒地不起)
7. 代码更新:三周

#13 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » Qt优秀项目 midi 音乐编辑器: midieditor » 2020-01-13 17:02:39

2020-01-13_170054.png

Ubuntu Linux 下面编译和运行都非常顺利, 但是Windows下qtcreator 都打不开工程。

#15 Re: Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » Qt优秀项目 midi 音乐编辑器: midieditor » 2020-01-13 10:58:17

sudo apt-get install qt-default qtmultimedia5-dev libqt5multimediawidgets5 libqt5multimedia5-plugins libqt5multimedia5

git clone https://github.com/markusschwenk/midieditor

cd midieditor

qmake midieditor.pro

make

#16 Qt/MSVC/MINGW/C++/MFC/GTK+/Delphi/BCB » Qt优秀项目 midi 音乐编辑器: midieditor » 2020-01-13 10:55:50

天马行空
回复: 4

源码地址: https://github.com/markusschwenk/midieditor

官方网站: https://www.midieditor.org/

安装包下载地址: https://www.midieditor.org/index.php?category=download





介绍
MidiEditor是一个免费软件,提供用于编辑,记录和播放Midi数据的界面。

编辑器可以打开现有的Midi文件并修改其内容。可以创建新文件,并且用户可以通过记录来自所连接的Midi设备
(例如,数字钢琴或键盘)的Midi数据或手动创建新的音符和其他Midi事件来输入自己的作品。
以后可以使用MidiEditor轻松量化和编辑记录的数据。

#21 Re: 华芯微特 » SWM320成功移植micropython » 2020-01-11 13:40:33

牛x, 这几个文本空心字怎么生成的?

#24 Re: 全志 V3S/F1C100s/X3 » 今天确定了两件事:F1C100S的CPU频率和DRAM频率设置 » 2019-12-13 08:18:48

https://github.com/Lichee-Pi/u-boot/blob/nano-lcd800480/arch/arm/mach-sunxi/dram_suniv.c

struct dram_para suniv_dram_para = {
    .size = 32,
    .clk = 156,
    .access_mode = 1,
...
};

改成这样对吧? ====>

struct dram_para suniv_dram_para = {
    .size = 32,
    .clk = CONFIG_DRAM_CLK,
    .access_mode = 1,
...
};

犀利, 请问你是怎么发现的 ^_^

感觉这下跑Linux速度可以更快了.

#30 Re: 站务公告/网站建设 » 海外上挖坑网提示警告信息 » 2019-11-24 10:29:57

原来如此哦,还以为只有我一个人这样。

#31 Re: 全志 V3S/F1C100s/X3 » 分享Nano fc100s linux主线5.2(TF卡)+adb+lcd(800*480)+qt5的编译过程 » 2019-11-24 10:28:56

达克罗德 说:

./tools/mkimage: Can't map u-boot.img: Invalid argument
Makefile:1021: recipe for target 'u-boot.img' failed

遇到这个错误,不知道怎么回事?

没有遇到这个问题,  是不是用  Linux  编译?mac os 还是 WSL ?

#32 Re: 全志 V3S/F1C100s/X3 » 关于F1C200S开发板的联网问题 » 2019-11-24 10:23:08

如果只是临时用一下, 就用 usb gadget 虚拟出来的 ethernet, 还有串口也可以虚拟出ppp网络接入ethernet/internet

#36 Re: 全志 V3S/F1C100s/X3 » 用TF卡制作启动介质,启动荔枝派ZERO,启动不了 » 2019-11-21 10:46:22

是不是 pull 最新的代码了, 你用的是哪个仓库哪个分支?

#37 Re: 全志 V3S/F1C100s/X3 » 感谢@晕哥邀请和测试,发布一个widora tiny200 480x272 5寸电阻屏TF卡固件, 开机跑 emwin,账号root,无密码 » 2019-11-21 10:45:40

Gbear 说:

sad 没处找0201的10K电阻哇。。。。况且我也不一定焊的上。。。。

直接用烙铁粘点锡短路就好了, 很好操作。

#39 Re: DIY/综合/Arduino/写字机/3D打印机/智能小车/平衡车/四轴飞行/ » 这世界做lcd驱动IC的公司那么多,就没一个出支持屏幕旋转的芯片吗? » 2019-11-16 15:54:12

jlau 说:

主要是硬解出来的视频,软件做旋转是很慢的。软件够快的主控估计不少也集成旋转硬件

有可能, 手机视频播放随便怎么转都行。

#40 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 家里Windows电脑安装FRP客户端, 再装上VNC服务器,这样在地球上任何有网络的地方都可以操作家里的电脑了。 » 2019-11-16 15:49:16

上面问题终于解决了, 是 frpc.ini 的本地端口和vnc服务器的端口不一致造成的。


但是又有了新问题, 连vnc服务器, vncviewer提示这个错误:

"readexact socket error while reading"

然后就挂了

#41 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 家里Windows电脑安装FRP客户端, 再装上VNC服务器,这样在地球上任何有网络的地方都可以操作家里的电脑了。 » 2019-11-16 14:53:52

几台win7 的电脑都正常。

换了一台win10

我的frpc报这个错误:

C:\Users\debugdump>c:\frp_0.29.1_windows_amd64\frpc.exe -c c:\frp_0.29.1_windows_amd64\frpc.ini
2019/11/16 14:46:31 [I] [service.go:249] [e285973bf6bdfcd9] login to server success, get run id [e285973bf6bdfcd9], server udp port [0]
2019/11/16 14:46:31 [I] [proxy_manager.go:144] [e285973bf6bdfcd9] proxy added: [vnc59998]
2019/11/16 14:46:31 [I] [control.go:164] [e285973bf6bdfcd9] [vnc59998] start proxy success
2019/11/16 14:46:39 [E] [proxy.go:559] [e285973bf6bdfcd9] [vnc59998] connect to local service [127.0.0.1:59998] error: dial tcp 127.0.0.1:59998: connectex: No connection could be made because the target machine actively refused it.
2019/11/16 14:48:00 [E] [proxy.go:559] [e285973bf6bdfcd9] [vnc59998] connect to local service [127.0.0.1:59998] error: dial tcp 127.0.0.1:59998: connectex: No connection could be made because the target machine actively refused it.
2019/11/16 14:48:36 [E] [proxy.go:559] [e285973bf6bdfcd9] [vnc59998] connect to local service [127.0.0.1:59998] error: dial tcp 127.0.0.1:59998: connectex: No connection could be made because the target machine actively refused it.

网上搜了一下, 说是这个问题:

“因为目标机器主动拒绝它,所以无法进行连接。”。检查客户端和服务端端口是否一致。

#43 Re: 全志 V3S/F1C100s/X3 » 全志违反gplv2许可 » 2019-11-15 09:16:08

貌似很有道理, 脱离实际的法律会阻碍进步。

#45 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 家里Windows电脑安装FRP客户端, 再装上VNC服务器,这样在地球上任何有网络的地方都可以操作家里的电脑了。 » 2019-11-12 17:04:39

因为一楼那个开机脚本, 今天调了很久, 有一台电脑上面偶尔可以启动 frp, 大部分时间是不会启动。

跟踪才发现原来网络未就绪的时候 frp 会出错退出, 所以要给点延时就好了:

WScript.Sleep 5000

set ws=WScript.CreateObject("WScript.Shell") 
ws.Run "c:\frp\frpc.exe -c c:\frp\frpc.ini",0, True

#46 Re: 全志 V3S/F1C100s/X3 » licheePi zero 获取不到设备树方式驱动spi的clk怎么办? » 2019-11-12 14:48:44

感觉不应该是 !np 这个地方问题, 如果是这里问题, 应该早发现了。

#47 Re: 全志 V3S/F1C100s/X3 » v3s内核启动卡在文件系统挂载(cannot open root device) » 2019-11-12 14:37:03

太一酱鸭 说:

有进展,把nand驱动想办法搞进去了内核

请问是怎么操作的?

#48 Re: 全志 V3S/F1C100s/X3 » 在F1C100S上根据RT-THREAD和XBOOT移植了480x272的液晶驱动上去 » 2019-11-12 09:02:31

642242855 说:

这个的 XBOOT在哪 ,怎么下载

你是要XBOOT 的代码, 还是楼主修改过的 RTT + XBOOT 代码?

#49 Re: 全志 V3S/F1C100s/X3 » 全志芯片的OV5640摄像头寄存器问题? » 2019-11-12 09:01:31

twi_stop()407 - [i2c3] i2c state(0x00000000) isn't idle(0xf8)

感觉 i2c3 状态出问题了, 寄存器指示他不处于空闲 ? 如果接 i2c0/1会是这样吗?

#50 Re: VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 家里Windows电脑安装FRP客户端, 再装上VNC服务器,这样在地球上任何有网络的地方都可以操作家里的电脑了。 » 2019-11-12 08:59:33

kekemuyu 说:

话说frp使用go写的,所以很早就知道了这个工具,但还是需要云主机实现中转,所以没有p2p方案方便流畅,毕竟不是每个人有云主机

这个确实是的, 配合昨天晕哥发的 88元一年的小水管, 也凑合能用 https://whycan.cn/t_3163.html#p27292

P2P 方案是指 teamviewer或者向日葵那些吗?

#52 VMWare/Linux/Ubuntu/Fedora/CentOS/U-BOOT » 家里Windows电脑安装FRP客户端, 再装上VNC服务器,这样在地球上任何有网络的地方都可以操作家里的电脑了。 » 2019-11-12 08:23:21

天马行空
回复: 18

1. 服务器安装设置参考: https://whycan.cn/t_2696.html#p21592

2. 查看你电脑配置, 下载对应的32bit/64bit Windows 软件: https://github.com/fatedier/frp/releases , 然后解压缩.

3. 客户端配置文件 C:\frp\frpc.ini

[common]
server_addr = 你的互联网服务器域名或IP地址
server_port = 67

[vnc59009]
type = tcp
local_ip = 127.0.0.1
local_port = 5900
remote_port = 59009

然后执行: c:\frp\frpc.exe -c c:\frp\frpc.ini

4. 下载并安装 tigervnc 远程控制软件。 不建议使用 realvnc, tightvnc, 因为realvnc 收费,tightvnc 连上去出错。

5. 用 vncview.exe 远程连接

6. 开机脚本 frpc.vbs:

set ws=WScript.CreateObject("WScript.Shell") 
ws.Run "d:\frpc.exe -c d:\frpc_net.ini",0

按 WIN + R 组合键打开启动文件夹, 拷贝上面的 frpc.vbs 文件进去

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB