• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

chroma8000 I2C 功能(请教chroma工程师)

我手上的一款电源,使用了单片机采集电流、电压、温度等参数和一些使能控制,需要通过IPMI和电脑进行通信以控制电流和数据采集.IPMI的总线为IPMB,是基于I2C的总线,IPMB的特点是write only,也就是我可以通过I2C的write命令发送控制报文,发送以后主机变为slave接受数据(由之前的从机向现在的从机write),但是chroma8000只有I2C的读写命令,并没有slave receive的模式和相关的命令,这样的话我只可以通过I2C向我的电源发write命令,假如我发read命令其实还是把电源当成slave.这里请教chroma是否有对IPMI熟悉的人,chroma8000是否能够基于IPMI进行通信.
谢谢!
全部回复(14)
正序查看
倒序查看
kiko
LV.5
2
2008-07-04 17:08
能否提供更詳細的資料給我們,或者您的規格書,我請我們R&D分析看看怎麼解決您的問題
0
回复
owen.zhao
LV.4
3
2008-07-05 22:34
这个我比较有经验,但一两句怕是说不清.

总之, 复杂的项目, 调用外部自编的程式比较保险, 我写过一个调用外部程的框架, 相当于调用外部dll, 需要的话, 我发上来.
0
回复
ringhuang
LV.4
4
2008-07-06 09:25
@owen.zhao
这个我比较有经验,但一两句怕是说不清.总之,复杂的项目,调用外部自编的程式比较保险,我写过一个调用外部程的框架,相当于调用外部dll,需要的话,我发上来.
这位哥们,能否发到我的邮箱:ringhuang213@tom.com或huangwc@watt.com.cn
谢谢!方便的话留个电话大家讨论一下,我现在已经在chroma8000上实现了,但是我觉得实现得不好.
0
回复
ringhuang
LV.4
5
2008-07-06 09:37
@kiko
能否提供更詳細的資料給我們,或者您的規格書,我請我們R&D分析看看怎麼解決您的問題
谢谢kiko的回复.IPMI的问题我已经解决,不过我还有点关于COM口(串口)的命令想请教.我发送的string需要用回车作为结束标志,但是chroma8000的write string 的命令里的string是单行的,我不能敲回车表示结束.我有注意到chroma8000里面有个settemination的命令,设置为0就为CR,就表示以回车结束,我想知道是不是我设置了termination为0(CR),我发送的每个string都会自动加上CR来作为结束标识?另外,我希望通过把我所有的string写在一个外面的文件里面(.txt),通过发送文件的方式来调用外部的文件来发送我要发送的string,这样,不管我的string需要什么格式我都可以自己在外面写.我手上有个串口调试精灵,这个工具就具有发送文件的功能,我相信实现这个功能是容易的,不知道chroma是否有意将此功能完善.
0
回复
owen.zhao
LV.4
6
2008-07-06 13:11
@ringhuang
这位哥们,能否发到我的邮箱:ringhuang213@tom.com或huangwc@watt.com.cn谢谢!方便的话留个电话大家讨论一下,我现在已经在chroma8000上实现了,但是我觉得实现得不好.
現沒搞8000了,不知新版支不支持調用自編Dll.
下圖模擬調用dll的Item, 也就是突破8000的功能限制了,遇到復雜的問題,不用深探8000的命令,用外部自編程式搞定,實現真正意義上的隻你想不到,沒有做不到的,當然自己要能寫.

好像圖要點最大才能看清.

500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/67/2349801215320387.gif');}" onmousewheel="return imgzoom(this);">
0
回复
ringhuang
LV.4
7
2008-07-07 18:10
@owen.zhao
現沒搞8000了,不知新版支不支持調用自編Dll.下圖模擬調用dll的Item,也就是突破8000的功能限制了,遇到復雜的問題,不用深探8000的命令,用外部自編程式搞定,實現真正意義上的隻你想不到,沒有做不到的,當然自己要能寫.好像圖要點最大才能看清.[图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/67/2349801215320387.gif');}"onmousewheel="returnimgzoom(this);">
你图里面的调用外部函数我之前做在线烧录的时候用过.我非常想知道你使用的IPMI的函数.方不方便发给我参考一下?
0
回复
kiko
LV.5
8
2008-07-08 16:35
@owen.zhao
現沒搞8000了,不知新版支不支持調用自編Dll.下圖模擬調用dll的Item,也就是突破8000的功能限制了,遇到復雜的問題,不用深探8000的命令,用外部自編程式搞定,實現真正意義上的隻你想不到,沒有做不到的,當然自己要能寫.好像圖要點最大才能看清.[图片]500){this.resized=true;this.width=500;this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}"onclick="if(!this.resized){returntrue;}else{window.open('http://u.dianyuan.com/bbs/u/67/2349801215320387.gif');}"onmousewheel="returnimgzoom(this);">
兄弟,那你現在在忙什麼? Diry,DP都離職了,你們的系統就都要靠你了;
David昨天要我幫他寫TI,TP;我現在讓我的一個兄弟來寫這些TI,TP,但是通訊電源這一塊他不是很熟悉,到時現場調試還要你的幫忙呀!
0
回复
kiko
LV.5
9
2008-07-08 16:46
@ringhuang
谢谢kiko的回复.IPMI的问题我已经解决,不过我还有点关于COM口(串口)的命令想请教.我发送的string需要用回车作为结束标志,但是chroma8000的writestring的命令里的string是单行的,我不能敲回车表示结束.我有注意到chroma8000里面有个settemination的命令,设置为0就为CR,就表示以回车结束,我想知道是不是我设置了termination为0(CR),我发送的每个string都会自动加上CR来作为结束标识?另外,我希望通过把我所有的string写在一个外面的文件里面(.txt),通过发送文件的方式来调用外部的文件来发送我要发送的string,这样,不管我的string需要什么格式我都可以自己在外面写.我手上有个串口调试精灵,这个工具就具有发送文件的功能,我相信实现这个功能是容易的,不知道chroma是否有意将此功能完善.
你是上次打電話給我的watt的小黃是吧!
聽到你的問題問題解決了說明你的功力很強呀;
你想用TXT檔案與C8000交換資料,想法是很好,不過我們目前還不支持這個功能,但是我們目前支持INI檔案格式,如果你想實現你的功能也可以使用INI文件實現,不知道關於在C8000中INI文件的控制這一塊你是否需要幫忙?以你現在的功力你看看就應該能解決這個問題!
0
回复
owen.zhao
LV.4
10
2008-07-11 12:41
@ringhuang
你图里面的调用外部函数我之前做在线烧录的时候用过.我非常想知道你使用的IPMI的函数.方不方便发给我参考一下?
所謂函數無非就是參數傳遞. 可惜8000沒有這個功能,8000這個執行外部程式,就是用命令啟動外部程式,要想與外部程式進行數擾交換,隻能用讀寫ini文件的方式.很繁瑣.
當項目很復雜的話,還是用其它語言開發工具來得快,保險.我發的圖隻是一個調用外部程式不得已的方法,隻是一個思路,具體過程還得用其它編程語言來實現,也就是不要陷在8000的各個命令裡面.
0
回复
owen.zhao
LV.4
11
2008-07-11 12:42
@kiko
兄弟,那你現在在忙什麼?Diry,DP都離職了,你們的系統就都要靠你了;David昨天要我幫他寫TI,TP;我現在讓我的一個兄弟來寫這些TI,TP,但是通訊電源這一塊他不是很熟悉,到時現場調試還要你的幫忙呀!
基本上成閒雜人員了.
0
回复
ringhuang
LV.4
12
2008-07-12 13:32
@kiko
你是上次打電話給我的watt的小黃是吧!聽到你的問題問題解決了說明你的功力很強呀;你想用TXT檔案與C8000交換資料,想法是很好,不過我們目前還不支持這個功能,但是我們目前支持INI檔案格式,如果你想實現你的功能也可以使用INI文件實現,不知道關於在C8000中INI文件的控制這一塊你是否需要幫忙?以你現在的功力你看看就應該能解決這個問題!
对,我是小黄,很感谢您的回复.你说的使用INI文件的方式我以前使用外部烧录软件的时候已经使用过了,使用这个方法是执行外部程序的时候调用INI文件.我是想我执行writers232command的时候调用外部的文件,这样不管我的string是什么格式的,我都可以通过外部的文件实现.现在我已经在chroma8000上实现了IPMI的测试,但是感觉chroma8000还是有一些局限性,比如我的IPMI有很多函数,而且存在内嵌的,但是我在写ITME的时候对于内嵌的函数还是要重复编写,而不能直接调用.我不知道是不是我对chroma8000的了解不够.
0
回复
ringhuang
LV.4
13
2008-07-12 13:35
@owen.zhao
所謂函數無非就是參數傳遞.可惜8000沒有這個功能,8000這個執行外部程式,就是用命令啟動外部程式,要想與外部程式進行數擾交換,隻能用讀寫ini文件的方式.很繁瑣.當項目很復雜的話,還是用其它語言開發工具來得快,保險.我發的圖隻是一個調用外部程式不得已的方法,隻是一個思路,具體過程還得用其它編程語言來實現,也就是不要陷在8000的各個命令裡面.
谢谢您的回复!
0
回复
kiko
LV.5
14
2008-07-14 10:16
@ringhuang
对,我是小黄,很感谢您的回复.你说的使用INI文件的方式我以前使用外部烧录软件的时候已经使用过了,使用这个方法是执行外部程序的时候调用INI文件.我是想我执行writers232command的时候调用外部的文件,这样不管我的string是什么格式的,我都可以通过外部的文件实现.现在我已经在chroma8000上实现了IPMI的测试,但是感觉chroma8000还是有一些局限性,比如我的IPMI有很多函数,而且存在内嵌的,但是我在写ITME的时候对于内嵌的函数还是要重复编写,而不能直接调用.我不知道是不是我对chroma8000的了解不够.
Chroma 8000雖然是開放式的測試系統,但是與專業的開發工具相比,它的開放性和靈活性確實還不夠,這也是我們要加強的地方;
使用INI文件將你的String 命令保存在電腦上,因為INI文件有Section 和Key word,所以你可以用TI去控制讀取你想要的命令然後發送出去;
關於有些相同的流程你需要編寫,這個在Chroma 8000中其實你也可以不用重新編寫,(不知道你會不會些匯編?)你要靈活的應用IF_THEN 和GOTO這2個命令,將你需要重復使用流程寫成一個子模塊(類似匯編中的子程序);根據不同的條件返回到不同的LABLE;這樣你就有模塊化的Item的感覺了,而且程序的長度也會縮短;當然這樣的調用隻能局限在同一個TI中,如果跨TI就無法實現了;編寫程序,仁者見仁,智者見智,沒有最好,隻有更好;
0
回复
ringhuang
LV.4
15
2008-07-17 10:34
@kiko
Chroma8000雖然是開放式的測試系統,但是與專業的開發工具相比,它的開放性和靈活性確實還不夠,這也是我們要加強的地方;使用INI文件將你的String命令保存在電腦上,因為INI文件有Section和Keyword,所以你可以用TI去控制讀取你想要的命令然後發送出去;關於有些相同的流程你需要編寫,這個在Chroma8000中其實你也可以不用重新編寫,(不知道你會不會些匯編?)你要靈活的應用IF_THEN和GOTO這2個命令,將你需要重復使用流程寫成一個子模塊(類似匯編中的子程序);根據不同的條件返回到不同的LABLE;這樣你就有模塊化的Item的感覺了,而且程序的長度也會縮短;當然這樣的調用隻能局限在同一個TI中,如果跨TI就無法實現了;編寫程序,仁者見仁,智者見智,沒有最好,隻有更好;
我想关于重复编写的问题您有点误解了.if_then和goto是chroma8000里面很常用的,但是我所知道的好象它们只能用在同一个item里面,我有很多函数,对应很多item,但是我需要这个item里面调用其他item里面我已经编写过的子函数,不知道chroma8000是不是可以实现?我的想法是对于共用的item我编写一次,在其他的item里面可以直接调用,其实问题就是能不能写子item?其实就是汇编和C之类里面的子函数功能.
0
回复