WizFi250-CSI(C Script Interpreter) för rapid prototyping, DIY, IoT-startup eller studenter. (2 / 6 steg)
Steg 2: WizFi250-CSI.h
Alla funktioner, struktur och statiska värden definieras i "WizFi250-CSI.h".
Så behöver din skriptfil endast ska innefatta "WizFi250-CSI.h".
Du behöver inte innehålla en annan header-filer som stdio.h, string.h eller socket.h.
Genom att hänvisa till denna "WizFi250-CSI.h", kan du skriva din egen ansökan (C skriptfil).
Mest generella funktioner är baserade på "Standardbiblioteket för C".
int atoi(char *);
int atol(char *);
int printf (char *,...);
int scanf (char *,...);
void * memcpy (void *, void *, int);
int strlen(char *);
..........................................
Socket funktioner bygger på BSD sockets API.
int socket (heltal, heltal, heltal);
int ansluta (int, struct sockaddr *, osignerade långa);
int recv (int, void *, osignerade långa, int);
int recvfrom (int, void *, osignerade långa, int, struct sockaddr *, osignerade långa *);
int skicka (int, void *, osignerade långa, int);
..........................................
De flesta hårdvara-funktioner av WizFi250 är baserade på Arduino stil.
void pinMode (int gpio, typen int);
void pinut (int gpio, int värde);
int pinIn(int);
int analogRead(int);
void delay_ms (osignerade långa millisekunder);
..........................................
Snälla, se den under full "WizFi250-CSI.h".
< p > / * < br > * den här filen ingår i projektet WizFi250-CSI(C Script Interpreter)
* Genom att hänvisa till denna header-fil, kan du skriva en C-skriptfil WizFi250-CSI.
*
* Detta publiceras under "Nya BSD licens".
* < en href = "http://www.opensource.org/licenses/bsd-license.php" rel = "nofollow" > http://www.opensource.org/licenses/bsd-license.ph...</a>
*
* Copyright (C) 2015 Steve Kim (ssekim
*
* Den WizFi250-CSI är baserad på picoc projektet.
* < en href = "https://github.com/zsaleeba/picoc" rel = "nofollow" > http://www.opensource.org/licenses/bsd-license.ph...</a>
* Copyright (c) 2009-2011, Zik Saleeba
* Alla rättigheter reserverade.
*
* Återdistribution och användning i källformat och binärt format, med eller utan
* ändring, är tillåtna under förutsättning att följande villkor är
* träffade:
*
** Vid vidaredistribution av källkod måste innehålla copyrightanmärkningen ovan
* märka, denna lista med villkor och följande friskrivningsklausul.
*
** Återdistribution i binär form måste återge ovanstående meddelande om copyright
* märka, denna lista med villkor och följande friskrivningsklausul i
* i dokumentationen och/eller annat material som medföljer den
* distribution.
*
** Varken namnet på Zik Saleeba eller namnen på dess
* bidragsgivare kan användas för att stödja eller främja produkter som härrör
* från denna programvara utan särskilt skriftligt tillstånd.
*
* DENNA PROGRAMVARA TILLHANDAHÅLLES AV UPPHOVSRÄTTSINNEHAVARNA OCH BIDRAGSGIVARE
* "SOM ÄR" OCH ALLA UTTRYCKLIGA ELLER UNDERFÖRSTÅDDA GARANTIER, INKLUSIVE, MEN INTE
* BEGRÄNSAT TILL, UNDERFÖRSTÅDDA GARANTIER FÖR SÄLJBARHET OCH LÄMPLIGHET FÖR
* ETT SÄRSKILT ÄNDAMÅL SALUFÖRBARHET. UNDER INGA OMSTÄNDIGHETER SKALL UPPHOVSRÄTTEN
* ÄGARE ELLER BIDRAGSGIVARE HÅLLAS ANSVARIGA FÖR NÅGON DIREKT, INDIREKT, TILLFÄLLIG,
* SÄRSKILDA, FÖREDÖMLIGA ELLER FÖLJDRIKTIGA SKADOR (INKLUSIVE, MEN INTE
* BEGRÄNSAT TILL ANSKAFFNING AV ERSÄTTNINGSVAROR ELLER TJÄNSTER; FÖRLUST AV ANVÄNDNING,
* DATA ELLER VINST; ELLER AVBROTT I VERKSAMHETEN) EMELLERTID ORSAKADE OCH PÅ ALLA
* TEORI GÄLLANDE ANSVARSSKYLDIGHET, VARE SIG I KONTRAKT, STRIKT ANSVAR ELLER ÅTALBAR HANDLING
* (INKLUSIVE FÖRSUMLIGHET ELLER ANNAT) SOM UPPSTÅR PÅ NÅGOT SÄTT AV ANVÄNDNING
* AV DENNA PROGRAMVARA INFORMERATS ÄVEN OM OM MÖJLIGHETEN AV SÅDANA SKADOR.
* < /p >< p > / WizFi250-CSI(C Script Interpreter) Header-fil för alla < /p >< p > / / baserat på "ctype.h" av C standard bibliotek
int isalnum(int);
int isalpha(int);
int isblank(int);
int iscntrl(int);
int isdigit(int);
int isgraph(int);
int islower(int);
int isprint(int);
int ispunct(int);
int isspace(int);
int isupper(int);
int isxdigit(int);
int tolower(int);
int toupper(int); < /p >< p > / / baserat på "stdbool.h" av C standard bibliotek
TypeDef int bool;
#define sant 1
#define falska 0 < /p >< p > / / baserat på "stdio.h"
int puts(char *);
char * gets(char *);
int getchar();
int printf (char *,...);
int sprintf (char *, char *,...);
int snprintf (char *, int, char *,...);
int scanf (char *,...);
int sscanf (char *, char *,...);
int vprintf (char *, va_list);
int vsprintf (char *, char *, va_list);
int vsnprintf (char *, int, char *, va_list);
int vscanf (char *, va_list);
int vsscanf (char *, char *, va_list); < /p >< p > / / baserat på "stdlib.h" av standardbiblioteket för C
#define NULL-0 < /p >< p > int atoi(char *);
int atol(char *);
int strtol (char *, char *, int);
int strtoul (char *, char *, int);
void * malloc(int);
void * calloc(int,int);
void * realloc (void *, int);
void free(void *);
int rand();
void srand(int);
void abort();
void exit(int);
char * getenv(char *);
int abs(int);
int labs(int); < /p >< p > / / baserat på "string.h" av C standard bibliotek
void * memcpy (void *, void *, int);
void * memmove (void *, void *, int);
void * memchr (char *, int, int);
int memcmp (void *, void *, int);
void * memset (void *, int, int);
char * strcat (char *, char *);
char * strncat (char *, char *, int);
char * strchr (char *, int);
char * strrchr (char *, int);
int strcmp (char *, char *);
int strncmp (char *, char *, int);
int strcoll (char *, char *);
char * strcpy (char *, char *);
char * strncpy (char *, char *, int);
char * strerror(int);
int strlen(char *);
int strspn (char *, char *);
int strcspn (char *, char *);
char * strpbrk (char *, char *);
char * strstr (char *, char *);
char * strtok (char *, char *);
int strxfrm (char *, char *, int); < /p >< p > / / baserat på "time.h" av standardbiblioteket för C
TypeDef int tid;
TypeDef int clock_t; < /p >< p > struct tm
{
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
}; < /p >< p > char * asctime(struct tm *);
char * ctime(int *);
struct tm * gmtime(int *);
struct tm * localtime(int *);
int mktime (struct tm * ptm);
int strftime (char *, int, char *, struct tm *); < /p >< p > / / baserat på "sockets.h" av lwIP
#define AF_UNSPEC_networkLibrary 0
#define AF_INET_networkLibrary 2
#define SOCK_STREAM_networkLibrary 1
#define SOCK_DGRAM_networkLibrary 2
#define SOCK_RAW_networkLibrary 3
#define IPPROTO_IP_networkLibrary 0
#define IPPROTO_TCP_networkLibrary 6
#define IPPROTO_UDP_networkLibrary 17 < /p >< p > #define O_NONBLOCK_networkLibrary 1
#define F_GETFL_networkLibrary 3
#define F_SETFL_networkLibrary 4 < /p >< p > #define EAGAIN_networkLibrary 11 < /p >< p > #define MSG_PEEK_networkLibrary 0x01
#define MSG_DONTWAIT_networkLibrary 0x08 < /p >< p > struct in_addr {
osignerade långa s_addr;
}; < /p >< p > struct sockaddr_in {
unsigned char sin_len;
unsigned char sin_family;
osignerad korta sin_port;
struct in_addr sin_addr;
char sin_zero [8].
} sockaddr_in; < /p >< p > typedef struct fd_set {
unsigned char fd_bits [(8+7)/8];
} fd_set; < /p >< p > int acceptera (int, struct sockaddr *, osignerade långa *);
int bind (int, struct sockaddr *, osignerade långa);
int avstängning (heltal, heltal);
int getpeername (int, struct sockaddr *, osignerade långa *);
int getsockname (int, struct sockaddr *, osignerade långa *);
int getsockopt (heltal, heltal, heltal, void *, osignerade långa *);
int setsockopt (heltal, heltal, heltal, void *, osignerade långa);
int close(int);
int ansluta (int, struct sockaddr *, osignerade långa);
int lyssna (heltal, heltal);
int recv (int, void *, osignerade långa, int);
int recvfrom (int, void *, osignerade långa, int, struct sockaddr *, osignerade långa *);
int skicka (int, void *, osignerade långa, int);
int sendto (int, void *, osignerade långa, int, struct sockaddr *, osignerade långa);
int socket (heltal, heltal, heltal);
int Välj (int, fd_set *, fd_set *, fd_set *, struct timeval *);
int fcntl (int, heltal, heltal);
int inet_addr(char *);
osignerade kort htons (unsigned short); < /p >< p > / / när det gäller WizFi250-WiFi
/**
* Går ett Wi-Fi-nätverk
* ssid: en null-avslutad sträng som innehåller SSID-namnet på nätverket för att ansluta till
* auth_type: Autentiseringstyp:
* Öppna - öppna säkerhet
* wep - WEP-säkerhet
* wpa2_tkip - WPA2 säkerhet med hjälp av TKIP cipher
* wpa2_aes - WPA2 säkerhet med AES cipher
* wpa2 - säkerhet WPA2 med AES eller TKIP chiffer
* wpa_aes - WPA-säkerhet med hjälp av AES cipher
* wpa_tkip - WPA-säkerhet med hjälp av TKIP chiffer
* viktigt: trygghet nyckel
* ip: sträng IP adress snöre (om 0, DHCP används.)
* nätmask: sträng netamsk snöre
* gateway: sträng gateway adress snöre
* 0(Success), others(Fail)
*/
int wifi_join (char * ssid, char * auth_type, char-tangenten, char * ip, char * nätmask, char-gateway); < /p >< p > / **
* Disassociates från ett trådlöst nätverk.
* Ingen
*/
int wifi_leave(); < /p >< p > / / när det gäller WizFi250-hårdvara
/**
* Initialises en GPIO pin
* gpio: gpio pin som bör påbörjas
* GPIO1, GPIO6, GPIO7, GPIO8, GPIO9, GPIO12(LED), GPIO13(LED), GPIO14
* Skriv: en struktur som innehåller konfigurationen krävs gpio
0: INPUT_PULL_UP: ingång med en inre pull-up resistor - använda med enheter som aktivt driver signalen låg - e.g. knapp ansluten till marken
1: INPUT_PULL_DOWN: ingång med en inre nedrullningsbara motståndet - använda med enheter som aktivt driver signalen hög - e.g. knapp ansluten till en makt järnväg
2: INPUT_HIGH_IMPEDANCE: ingång - måste alltid vara driven, antingen aktivt eller genom en extern pullup motstånd
3: OUTPUT_PUSH_PULL: utdata aktivt drivande hög och aktivt drivna låg - inte måste vara ansluten till andra aktiva utgångar - e.g. ledde produktion
4: OUTPUT_OPEN_DRAIN_NO_PULL: utgång aktivt drivna låg men är hög impedans när det som hög - kan anslutas till andra öppna-avlopp/öppen-collector utgångar. Behöver en extern pull-up resistor
5: OUTPUT_OPEN_DRAIN_PULL_UP: utgång aktivt drivna låg och dras hög med ett inre motstånd när satt hög - kan anslutas till andra öppna-avlopp/öppen-collector utgångar.
* Ingen
*/
void pinMode (int gpio, int typ); < /p >< p > / **
* Anger en GPIO utgångsstiftet låg eller hög
* gpio: gpio pin vilket bör ställas in
* GPIO1, GPIO6, GPIO7, GPIO8, GPIO9, GPIO12, GPIO13, GPIO14
* värde: 0(low) eller 1(high)
* Ingen
*/
Annullera pinut (int gpio, int värde); < /p >< p > / **
* Få tillståndet för en ingångsstift GPIO
* gpio: gpio stiftet som bör läsas
* GPIO1, GPIO6, GPIO7, GPIO8, GPIO9, GPIO12, GPIO13, GPIO14
* 0(low) eller 1(high)
*/
int pinIn(int); < /p >< p > / **
* Överföra data på en UART gränssnitt
* uart: UART gränssnitt. UART1, UART2.
* data: pekaren till början av data
* storlek: antal byte sända
* Ingen
*/
void uart_tx (int uart, unsigned char * data, int storlek); < /p >< p > / **
* Tar ett enda prov från en ADC-gränssnitt
* adc: gränssnittet bör vara provtagna
AD1 (för närvarande WizFi250-CSI stödet en ADC)
* en variabel som kommer att få provet (0 ~ 4095)
*/
int analogRead(int adc); < /p >< p > / **
* Ta emot data på en UART gränssnitt
* uart: UART gränssnitt. UART1, UART2.
* data: pekare till bufferten som kommer att lagra inkommande data
* storlek: antal byte som ska ta emot
* Antal mottagna byte
*/
int uart_rx (int uart, unsigned char * data, int storlek); < /p >< p > / **
* Sova för en given period
* millisekunder: dags att sova i millisekunder
* Ingen
*/
void delay_ms (osignerade långa millisekunder); < /p >