回复:(philo)[讨论]挑战!今天一家牛公司给的c语言...
3。有一个程序,包括三部分,有三个人配合开发。
第一个是中断的服务程序,其涉及复杂的地层硬件驱动,每次能够从硬件得到一个字节的信息;
第二部分是主程序,其也非常复杂,主程序的运作命令来自中断服务程序,每次获取一个字节;
第三部分是你要写得程序,用于衔接主程序何种断服务程序,其含三个子程序:
A。资源初始化程序:他有主程序在启动时调用,完成你所使用得资源的初始化;
B。数据暂存子程序:它供中断程序调用,用于处理聪硬件获取的数据;
C。数据获取子程序:它供主程序调用,以便主程序能够获取来自硬件的数据;
注意:为简化端口,三部分所有的程序将简单放在一个文件中进行编译。
java版的,c语言忘记了,没有调试过的,基本上这样写应该没有错。
public class CConnectService {
static final int MAX_SIZE = 30000;
static byte[] buff;
static int p = 0;
//数据暂存子程序
public static boolean addDataFromHardWear(byte b) throws InterruptedException{
if(p > MAX_SIZE){
return false;
} else {
buff[p] = b;
p++;
}
return true;
}
//资源初始化程序
public static void init(){
buff = new byte[30000];
p = 0;
}
//数据获取子程序
public static byte getData() throws InterruptedException{
byte returnValue = 0;
if(p == 0){
//doNothing
} else {
returnValue = buff[p];
p--;
}
return returnValue;
}
}