fixed bug in range() function
git-svn-id: http://picoc.googlecode.com/svn/trunk@145 21eae674-98b7-11dd-bd71-f92a316d2d60
This commit is contained in:
parent
c36368c431
commit
52f5346cd7
|
@ -13,13 +13,13 @@ void PrintInteger(struct ParseState *Parser, struct Value *ReturnValue, struct V
|
||||||
#ifdef UNIX_HOST
|
#ifdef UNIX_HOST
|
||||||
void Random(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs)
|
void Random(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs)
|
||||||
{
|
{
|
||||||
ReturnValue->Val->Integer = rand();
|
ReturnValue->Val->Integer = random();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int SomeVar = 42;
|
static int SomeVar = 42;
|
||||||
static int SomeArray[4];
|
static int SomeArray[4];
|
||||||
static int Blobcnt = 0, Blobx1 = 0, Blobx2 = 0, Bloby1 = 0, Bloby2 = 0;
|
static int Blobcnt, Blobx1, Blobx2, Bloby1, Bloby2;
|
||||||
void PlatformLibraryInit()
|
void PlatformLibraryInit()
|
||||||
{
|
{
|
||||||
struct ValueType *IntArrayType;
|
struct ValueType *IntArrayType;
|
||||||
|
@ -45,13 +45,9 @@ extern unsigned int vblob(unsigned char *, unsigned char *, unsigned int);
|
||||||
extern unsigned int vpix(unsigned char *, unsigned int, unsigned int);
|
extern unsigned int vpix(unsigned char *, unsigned int, unsigned int);
|
||||||
extern void init_colors();
|
extern void init_colors();
|
||||||
extern void vhist(unsigned char *);
|
extern void vhist(unsigned char *);
|
||||||
|
|
||||||
extern void vmean(unsigned char *);
|
extern void vmean(unsigned char *);
|
||||||
|
|
||||||
extern void color_segment(unsigned char *);
|
extern void color_segment(unsigned char *);
|
||||||
|
|
||||||
extern void edge_detect(unsigned char *, unsigned char *, int);
|
extern void edge_detect(unsigned char *, unsigned char *, int);
|
||||||
|
|
||||||
extern void i2cwrite(unsigned char, unsigned char *, unsigned int, int);
|
extern void i2cwrite(unsigned char, unsigned char *, unsigned int, int);
|
||||||
extern void i2cread(unsigned char, unsigned char *, unsigned int, int);
|
extern void i2cread(unsigned char, unsigned char *, unsigned int, int);
|
||||||
|
|
||||||
|
@ -61,12 +57,9 @@ extern int sonar_data[];
|
||||||
extern int imgWidth, imgHeight, frame_diff_flag;
|
extern int imgWidth, imgHeight, frame_diff_flag;
|
||||||
|
|
||||||
extern unsigned int ymax[], ymin[], umax[], umin[], vmax[], vmin[];
|
extern unsigned int ymax[], ymin[], umax[], umin[], vmax[], vmin[];
|
||||||
|
|
||||||
extern unsigned int blobx1[], blobx2[], bloby1[], bloby2[], blobcnt[], blobix[];
|
extern unsigned int blobx1[], blobx2[], bloby1[], bloby2[], blobcnt[], blobix[];
|
||||||
|
|
||||||
extern unsigned int hist0[], hist1[], hist2[], mean[];
|
extern unsigned int hist0[], hist1[], hist2[], mean[];
|
||||||
|
|
||||||
|
|
||||||
void Csignal(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs) // check for kbhit, return t or nil
|
void Csignal(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs) // check for kbhit, return t or nil
|
||||||
{
|
{
|
||||||
unsigned char ch;
|
unsigned char ch;
|
||||||
|
@ -257,13 +250,12 @@ void Cwritei2c(struct ParseState *Parser, struct Value *ReturnValue, struct Valu
|
||||||
|
|
||||||
void Cblob(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs) // search for blob by color, index; return center point X,Y and width Z
|
void Cblob(struct ParseState *Parser, struct Value *ReturnValue, struct Value **Param, int NumArgs) // search for blob by color, index; return center point X,Y and width Z
|
||||||
{
|
{
|
||||||
int ix, iblob;
|
int ix, iblob, numblob;
|
||||||
|
|
||||||
ix = Param[0]->Val->Integer;
|
ix = Param[0]->Val->Integer;
|
||||||
iblob = Param[1]->Val->Integer;
|
iblob = Param[1]->Val->Integer;
|
||||||
|
|
||||||
if (iblob == 0)
|
numblob = vblob((unsigned char *)FRAME_BUF, (unsigned char *)FRAME_BUF3, ix);
|
||||||
vblob((unsigned char *)FRAME_BUF, (unsigned char *)FRAME_BUF3, ix);
|
|
||||||
|
|
||||||
if (blobcnt[iblob] == 0) {
|
if (blobcnt[iblob] == 0) {
|
||||||
Blobcnt = 0;
|
Blobcnt = 0;
|
||||||
|
@ -274,7 +266,7 @@ void Cblob(struct ParseState *Parser, struct Value *ReturnValue, struct Value **
|
||||||
Bloby1 = bloby1[iblob];
|
Bloby1 = bloby1[iblob];
|
||||||
Bloby2 = bloby2[iblob];
|
Bloby2 = bloby2[iblob];
|
||||||
}
|
}
|
||||||
ReturnValue->Val->Integer = blobcnt[iblob];
|
ReturnValue->Val->Integer = numblob;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* list of all library functions and their prototypes */
|
/* list of all library functions and their prototypes */
|
||||||
|
@ -292,7 +284,7 @@ struct LibraryFunction PlatformLibrary[] =
|
||||||
{ Cservo2, "void servo2(int, int)" },
|
{ Cservo2, "void servo2(int, int)" },
|
||||||
{ Claser, "void laser(int)" },
|
{ Claser, "void laser(int)" },
|
||||||
{ Csonar, "void sonar(int)" },
|
{ Csonar, "void sonar(int)" },
|
||||||
{ Crange, "void range(int)" },
|
{ Crange, "int range()" },
|
||||||
{ Ccolor, "void color(int, int, int, int, int, int, int)" },
|
{ Ccolor, "void color(int, int, int, int, int, int, int)" },
|
||||||
{ Cblob, "int blob(int, int)" },
|
{ Cblob, "int blob(int, int)" },
|
||||||
{ Cimgcap, "void imgcap()" },
|
{ Cimgcap, "void imgcap()" },
|
||||||
|
|
Loading…
Reference in a new issue