EDN首页   博客首页

最新日志

发表于:2008-5-11 20:50:54
标签:无标签

1

Linux(ubuntu)下的声卡驱动安装

每次装ubuntu后就忘记了驱动是如何装好的,今天就做个记号在这里。我的主板为华硕K8U-X,CPU为速龙AMD 2800+。其中声卡驱动在ubuntu8.04下默认状态下没有识别出来,于是我不得不自己手动安装,当然好多命令我也忘记了,于是我找最简单的办法来安装。
Sound devices supported by Open Sound System
这个开源的可以说万能的声卡驱动程序真不错,网址如下:
http://www.opensound.com/之后,点击左右的Download。打开网页后选择操作系统,有这么一句提示,Please select the Operting System (and package format) you are running,因为我的是ubuntu系统,而ubuntu是debian继承,于是我选择DEB包,这样就下载下来可以直接用鼠标点击安装,安装过程可能与计算机配置有关,在安装完成后重新启动系统,呵,一个正常的喇叭出现在面前。

系统分类: 软件开发   |    用户分类:    |    来源: 原创

评论(0) | 阅读(2104)
发表于:2008-4-13 20:52:53
标签:无标签

1

去除迅雷广告条和热闹推荐

1、去除迅雷顶部广告
  用记事本打开x:\Program Files\Thunder Network\Thunder\Program\gui.cfg (前面的X为你的迅雷安装盘符),将里面的“ADServer=" 和"HomePage="后面的网址删除。如果下次启动或升级后广告再次出现后,再次删除即可。
2、去除迅雷右边的热门推荐
  首先退出迅雷,用记事本打开"C:\Program Files\Thunder Network\Thunder\Profiles\UserConfig.ini(前面的X为你的迅雷安装盘符),找到[Splitter_1]项下面的Pane1_Hide,将其值改为1(原始值为0).

系统分类: 消费电子   |    用户分类:    |    来源: 整理

评论(0) | 阅读(369)
发表于:2008-1-29 21:57:00
标签:无标签

0

计划从“组态王”转到“MCGS”了。

  前段时间已经把组态王用的差不多了,可是由于组态王的服务态度不是太好,而且刚好MCGS的人上门了,今天来了个全天上门讲。收获还可以,刚好也满足我的需要用一个带触摸的屏“相当于触摸屏”,价格估计在七八千。所以计划忘记和放弃原来计划定型的组态王软件,唉,重新开始学习MCGS。不过快要放假了,今天可能就结束了工作了,元旦过节期间可以学习ARM和以太网了。

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(576)
发表于:2008-1-22 20:03:45
标签:无标签

0

同天报表处理方法

   对于同一天的不同时开机数据如何处理呢?我使用了只要在同一天开机如果有原有记录(即当天记录),则调用当天记录,并将新数据记录追加到前面的记录之后。
   对于组态来说,只有两点:
    一、检查当天记录是否存在如果存在则进行调用处理。
    二、读出上个记录的行数,并将行数赋与当前报表;
   string a1;
   string a2;
   long  status;
   a2=monthday(\\本站点\$月,\\本站点\$日);    
   a1="E:\Learn\组态\报表存储方法\"+StrFromInt(\\本站点\$年,10 )+a2+".rtl";

   status=InfoFile(a1,1,status );
   if(status==1)
   {
    ReportLoad("Report0",a1);
    \\本站点\row=ReportGetRows("Report0");
   }
   其中第5行中的路径为文件路径,在实际工程中应该是固定的。
     第6行即为组态的读文件是否存在,并通过第7行判断存在与否;
     第9行将当日报表加载;
     第10行将报表内容中的行数赋与当前报表;

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(436)
发表于:2008-1-22 20:01:33
标签:无标签

0

自定义函数的使用

   在将“报表存为日期格式”和“日期控件在组态中的应用”使用后,发现有相同的程序部分,于是想到使用系统自带的自定义函数。
   于是将前两者共性的东西写成函数形式,类似于C语言中的子程序调用。
   string monthday(long month,long day)
   {
    string a3;
    string a4;
    a3=StrFromInt( month,10 );
    if(month<10)a3="0"+a3;
    a4=StrFromInt( day,10 );
    if(day<10)a4="0"+a4;
    return a3+a4;
   }
   这样反过来再将“报表存为日期格式”的程序重新写。
   STRING a1;
   string a2;
   a2=monthday(\\本站点\$月,\\本站点\$日);    
   a1="E:\Learn\组态\报表存储方法\"+StrFromInt(\\本站点\$年,10 )+a2+".rtl";
   ReportSaveAs("Report0",a1);
   同时也将“日期控件在组态中的应用”的程序重新写。
   string a1;
   a1=monthday(thisCtrl.Month,thisCtrl.Day);
   calendar=strfromint(thisCtrl.Year,10)+a1;
   呵,今天的一个收获之一。

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(432)
发表于:2008-1-22 20:00:13
标签:无标签

0

日期的历史报表调用

     在”将报表存为日期格式“与”日期控件在组态王中的应用“的基础之后完成”日期历史报表调用是非常简单的。 程序内容仅有三行如下:
     string name;
   name="E:\Learn\组态\历史报表处理+时间\"+\\本站点\calendar+".RTL";
   ReportLoad("Report1",name);

     第一行为定义字符串;
     第二行中的“路径为绝对路径”,不同路径应改为相应的路径;
     第三行中的"Report1"为报表名称;
     将开始三个内容组合起来就是一个简单的以日期为报表名,选择日期来查看历史报表的简单报表“。
     

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(359)
发表于:2008-1-22 19:57:45
标签:无标签

0

日期控件在组态王中的应用

   调用历史记录的方法非常之多,但是我认为比较理想的还是选择日期后出现历史记录;
  于是我选择了调用Windows组件"Microsoft Date and Time Picker Control 6.0;
  因为在调用历史报表没必要与外部交换数据,所以在”动画连接属性“中的属性标签中没有关联变量,只是在”事件“中有关联函数,因为在选择日期时才调用,所以需要用
    到"Change"关联函数。
    关联函数内容如下:
    void calendarchange()
    long month;
  long day;
  string a_month;
  string a_day;
  month=thisCtrl.Month;
  day=thisCtrl.Day;

  a_month=StrFromInt( month,10 );
  if(month<10)a_month="0"+a_month;
  a_day=StrFromInt( day,10 );
  if(day<10)a_day="0"+a_day;

  calendar=strfromint(thisCtrl.Year,10)+a_month+a_day;
    此处的判断方法与报表存为日期格式方法相同,仍然采用判断月份和日的天数来采取补零的方法;
    为了测试方便可以加个字符,加calendar为”内存字符串“,使用字符串输出,表达式为\\本站点\calendar;

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(403)
发表于:2008-1-22 19:55:35
标签:无标签

0

报表名存储为日期格式

    为什么要将报表名存为日期格式呢?其实我是想调用日记录时方便些。
  如何实现?
    首先随便做个按钮,在“弹起时”加入程序语言如下:
    STRING a1;
    string a3;
    string a4;
    long  month;
    long  day;
    month=\\本站点\$月;
    day= \\本站点\$日;
    a3=StrFromInt( month,10 );
    if(month<10)a3="0"+a3;
    a4=StrFromInt( day,10 );
    if(day<10)a4="0"+a4;

    a1="E:\Learn\组态\历史报表处理+时间\"+StrFromInt(\\本站点\$年,10)+a3+a4+".rtl";
      
    ReportSaveAs("Report0",a1);
   
    倒数第一行要注意的是:“Report0"为报表名称;
    倒数第二行要注意的是:此处路径为实际自己保存路径;
    为什么要加倒数第三和倒数第五行呢?如果不加会出现什么结果呢?
其实保存为日期格式的方法非常之多,不过目前我会用及感觉到还算不错的就这个。
为什么方法多呢?其实有好多日期保存命令语句将2008年1月21日保存为2008121;
                        将2008年12月1日仍保存为2008121;
这个结果是我不愿意看到的,也是不能看到的。所以有了倒三和倒五的判断语句;

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(345)
发表于:2008-1-17 22:13:13
标签:无标签

0

组态软件报表使用心得!

   做组态软件的报表,我的目的和想要实现的功能:
   每次由称重传感器计出重量后(包括好几个变量),将值写到报表中。同时将当时的时间及日期存储到对应的报表记录位置。下次开机仍然能显示并从上次开始,在一个可视的窗口内只显示最新最近的几条记录。
   使用组态软件做了一天没有太大收获,有一点点收获是来自西安亚控的技术工程师(尹),但是到最后亚控的人也对我态度不友好了。
   我对报表的理解:在初始程序运行开始,先将报表画面加载(目的:建立报表),其次将上次的记录读到当前报表(ReportLoad函数),之后可以对根据需要对报表进行添加记录(ReportSetCellvalue函数),最后在程序语言的退出时将记录存入(ReportSaveas函数)
   注:报表画面加载是通过运行系统时同时加载主画面和报表记录画面。
       Reportload函数在程序命令语言启动时加载,ReportSaveas函数在程序命令语言退出时执行。
  
唉,可是加载时总是成功不了,到现在也不成功。

   技术支持给我的方案是:在程序命令语言运行中不断地执行
ReportSaveas函数,在每次到报表画面显示界面时,执行Reportload函数。
  
我对这种方案态度是否定的,最后造成了技术支持说我挑刺,还很不客气。我来分析这个过程和弊端,首先程序运行过程中不断执行
ReportSaveas函数,其一占用系统时间,其二不符合设计,其三,扫描时间的长短对系统影响特别大。先抛开其一和其二只说其三。如果每隔200ms,一般再快的存储操作都可以显示到报表显示界面上,可是当你一旦改成2000ms,这时就会丢掉一些数据。
   她的方案不同意使用,可是我自己的想法和方案在启动加载时不知道为什么执行不了,只有用一个按钮去触发就可以成功。期待明天解决吧!
      

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(596)
发表于:2008-1-16 21:33:13
标签:无标签

0

组态软件小技巧,减少点数的方法之一(组态王)

    刚才写了好多好多,可是突然间firefox死掉了,气死人,现在一下也想不起来太多了。
    思路:用一个整型或者长整型或字节分成位,每一个位来代表一个点,这样只占一个组态的一个点。如PLC的输出,用一个整型代表16位,就是16个输出点。
    方法:用组态自带的内部函数,Bit(变量,位),将整型拆成离散型。
    测试:
      1、定义一个内部变量,整型。如variable;
      2、画一个矩形,用填充属性;
      3、在填充属性的条件表达式中输入Bit(变量,位),如Bit(variable,1);
      4、在下面的填充颜色中,修改0为“红色”,1为“绿色”;

      5、再写一个字符,动画连接中选择“模拟输入”和“模拟输出”,变量为         variable;
      6、然后在运行软件,在变量中输入1,绿色亮,再改为0,红色亮。

    测试完成。
    如果有兴趣可以进行更有趣的测试,把刚才的矩形复制8个,依次改成Bit(variable,2); Bit(variable,3); Bit(variable,4); Bit(variable,5);至8。
    然后输入1,2,4,8,16,32,64,128测试是否正常。

    输出测试完成,输入测试更有趣。
    把刚才画的8个矩形复制,当作按钮输入。刚才的属性可以不改变,然后再新增加动画连接“按下时”,在按下时中填加语句。
    第一个按钮添加如下:
    if(variable&1)variable=variable&254;
    else          variable=varialbe|1;
    第二个按钮添加如下:
    if(variable&2)variable=variable&253;
    else          variable=varialbe|2;
    等,依次增加八个,之后再测试。发现输入输出功能皆己实现。
  
   这个组态软件唯一的缺陷是,不能写十六进制,如0x10,写十进制有时候不太会写,1、2、4、还好算,后来就不好算了。
    因为这个工作是在办公室完成的,所以在家只能凭记忆写了,不过绝对可靠,如有疑问,请写出。或者有更好的方法请出。

    今天心得:无意从函数手册中发现一个函数Bitset,这个功能可以省略掉我前面一句复杂的语句,
    if(variable&1)variable=variable&254;
    else          variable=varialbe|1;
    用如下替换:
    if(variable&1)Bitset(variable,1,0);
    else          Bitset(variable,1,1);
    这样当数字较大时避免了用十进制难以计算和表达!

系统分类: 工业控制   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(437)
2下一页总共 , 当前 /