Example #1
0
void cmd_ls (uint32_t cluster)
{
	uart_puts_P("\r\n|------------------------------------------------------|");
	uart_puts_P("\r\n|Filename         | Cluster  |  Attrib  |   Filesize   |");
	uart_puts_P("\r\n|------------------------------------------------------|\r\n");

	for (uint8_t element = 1; element < 240; ++element)
	{
		struct fs_entry entry;
		entry.cluster = fat_read_dir_ent(cluster, element,
				&entry.size, &entry.attrib, (unsigned char *)entry.name);
		if (entry.cluster == 0xffff) break;
		uart_puts_P("| ");
		uart_puts(setlen(entry.name, 15, 0x20));
		uart_puts_P(" | ");
		uart_puts(setlen(num2str(entry.cluster, 16), 8, 0x20));
		uart_puts_P(" | ");
		uart_puts(setlen(num2str(entry.attrib, 16), 8, 0x20));
		uart_puts_P(" | ");
		uart_puts(setlen(num2str(entry.size, 16), 12, 0x20));
		uart_puts_P(" | ");
		uart_puts("\r\n");
	}

	uart_puts_P("|------------------------------------------------------|\r\n");
}
Example #2
0
naRef naStr_fromdata(naRef dst, const char* data, int len)
{
    if(!IS_STR(dst)) return naNil();
    setlen(PTR(dst).str, len);
    memcpy(DATA(PTR(dst).str), data, len);
    return dst;
}
Example #3
0
naRef naStr_fromdata(naRef dst, char* data, int len)
{
    if(!IS_STR(dst)) return naNil();
    setlen(dst.ref.ptr.str, len);
    memcpy(dst.ref.ptr.str->data, data, len);
    return dst;
}
Example #4
0
naRef naStr_fromnum(naRef dest, double num)
{
    struct naStr* dst = PTR(dest).str;
    unsigned char buf[DIGITS+8];
    setlen(dst, fromnum(num, buf));
    memcpy(DATA(dst), buf, LEN(dst));
    return dest;
}
Example #5
0
naRef naStr_fromnum(naRef dest, double num)
{
    struct naStr* dst = dest.ref.ptr.str;
    unsigned char buf[DIGITS+8];
    setlen(dst, fromnum(num, buf));
    memcpy(dst->data, buf, dst->len);
    return dest;
}
Example #6
0
naRef naStr_substr(naRef dest, naRef str, int start, int len)
{
    struct naStr* dst = PTR(dest).str;
    struct naStr* s = PTR(str).str;
    if(!(IS_STR(dest)&&IS_STR(str))) return naNil();
    if(start + len > LEN(s)) return naNil();
    setlen(dst, len);
    memcpy(DATA(dst), DATA(s) + start, len);
    return dest;
}
Example #7
0
naRef naStr_substr(naRef dest, naRef str, int start, int len)
{
    struct naStr* dst = dest.ref.ptr.str;
    struct naStr* s = str.ref.ptr.str;
    if(!(IS_STR(dest)&&IS_STR(str))) return naNil();
    if(start + len > s->len) { dst->len = 0; dst->data = 0; return naNil(); }
    setlen(dst, len);
    memcpy(dst->data, s->data + start, len);
    return dest;
}
Example #8
0
naRef naStr_concat(naRef dest, naRef s1, naRef s2)
{
    struct naStr* dst = PTR(dest).str;
    struct naStr* a = PTR(s1).str;
    struct naStr* b = PTR(s2).str;
    if(!(IS_STR(s1)&&IS_STR(s2)&&IS_STR(dest))) return naNil();
    setlen(dst, LEN(a) + LEN(b));
    memcpy(DATA(dst), DATA(a), LEN(a));
    memcpy(DATA(dst) + LEN(a), DATA(b), LEN(b));
    return dest;
}
Example #9
0
naRef naStr_concat(naRef dest, naRef s1, naRef s2)
{
    struct naStr* dst = dest.ref.ptr.str;
    struct naStr* a = s1.ref.ptr.str;
    struct naStr* b = s2.ref.ptr.str;
    if(!(IS_STR(s1)&&IS_STR(s2)&&IS_STR(dest))) return naNil();
    setlen(dst, a->len + b->len);
    memcpy(dst->data, a->data, a->len);
    memcpy(dst->data + a->len, b->data, b->len);
    return dest;
}
Example #10
0
naRef naStr_buf(naRef dst, int len)
{
    setlen(PTR(dst).str, len);
    naBZero(DATA(PTR(dst).str), len);
    return dst;
}
int  SetUnit(void * ulist,int id,pItem ilist, int pos ,int next ,int tag,DBtype type)
{
    if(!ulist || !ilist || pos <0 || pos >20000 ) {
        debug("parameter error");
        return ERR ;
    }
    /* SU_CASE(Type1,id,Type2,ulist,ilist,pos,next,tag)*/
    switch(type)
    {
    case bool_type:
        SU_CASE(Rbool_unit,id,bool,ulist,ilist,pos,next,tag);
    case char_type:
        SU_CASE(Rchar_unit,id,char,ulist,ilist,pos,next,tag);
    case int_type:
        SU_CASE(Rint_unit ,id,int,ulist,ilist,pos,next,tag);
    case float_type:
        SU_CASE(Rfloat_unit,id,float,ulist,ilist,pos,next,tag);
    case double_type:
        SU_CASE(Rdouble_unit,id,double,ulist,ilist,pos,next,tag);
    case Date_type:
    {
        RDate_unit *_ulist = (RDate_unit *)ulist;
        RDate_unit *_unit  = (RDate_unit *)(&_ulist[id]);
        Date * dst       = &(_unit->data);
        Date * src       = (Date*)(ilist[pos].pdata);
        DateCpy(dst,src) ;
        _unit->pos        = pos;
        _unit->pnext      = next;
        _unit->tag        = tag==0?0:1;
        break;
    }
    case DateTime_type:
    {
        RDateTime_unit * _ulist= (RDateTime_unit *)ulist;
        RDateTime_unit * _unit = (RDateTime_unit *)(&_ulist[id]);
        DateTime * dst        = &(_unit->data);
        DateTime * src        = (DateTime*)(ilist[pos].pdata);
        DateTimeCpy(dst,src);
        _unit->pos             = pos;
        _unit->pnext           = next;
        _unit->tag             = tag==0?0:1;
        break;
    }
    case Interger_type:
        SU_CASE(RInterger_unit,id,Interger,ulist,ilist,pos,next,tag);
    case Long_type:
        SU_CASE(RLong_unit,id,Long,ulist,ilist,pos,next,tag);
    case Single_type:
        SU_CASE(RSingle_unit,id,Single,ulist,ilist,pos,next,tag);
    case Byte_type:
        SU_CASE(RByte_unit,id,Byte,ulist,ilist,pos,next,tag);
    case varchar_type:
        SU_CASE(Rvarchar_unit,id,varchar,ulist,ilist,pos,next,tag);
    case string_type:
    {
        const long slen = (long)(ilist[pos].len) ;
        char * string   = DBcalloc(slen+2,sizeof(char));
        setlen(string,slen);
        Rstring_unit *_ulist = (Rstring_unit *)ulist;
        Rstring_unit *_unit  = (Rstring_unit *)(&_ulist[id]);

        _unit->data      = string;
        _unit->pos       = pos;
        _unit->pnext     = next;
        _unit->tag       = tag==0?0:1;

        string          = (char*)(&string[2]);
        memcpy(string,(void*)(ilist[pos].pdata),slen);
        break ;
    }
    default:
        debug("undefine type");
        return ERR;
    }

    return OK;
}
Example #12
0
naRef naStr_buf(naRef dst, int len)
{
    setlen(dst.ref.ptr.str, len);
    naBZero(dst.ref.ptr.str->data, len);
    return dst;
}
Example #13
0
void normalize( LWFVector a )
{
   setlen( a, 1.0f );
}